본문 바로가기

Reversing/Debugging Tech

gdbserver 디버깅


따로 ida에서 제공하는 dbgsrv에서 쓸만한게 없다면 gdbserver를 올려서 디버깅 해야한다.
서버에 gdbserver를 static으로 서버 환경에 맞게 컴파일하거나 이미 컴파일 된 파일을 다운 받아서 올리고 

"sudo ./gdbserver 127.0.0.1:port ./binary" 이렇게 실행하면 된다. port부분에 1337, 7777처럼 포트 번호를 넣으면 된다. (해당 포트포워딩은 외부로 해 둬야 한다.)

가끔씩 sudo를 안해서 ida에서 오류가 날 때가 있으니 해주는게 좋다.

그리고 ida로 debugger를 Remote GDB debbuger로 설정하고 Debugger - Process Options에서 Application, Input file을 서버에서의 파일 위치로 잡고, Parameters는 인자, Hostname에 서버 주소를, Port에 아까 열은 포트를 입력하면 된다.

그러면 디버깅을 할 수 있다.

그런데 가끔씩

이런 에러가 날 때가 있다. ("Single-stepping a thread failed; possibly stub does not support single-stepping Try disabling the single-step functionality in debugger-specific options.")

이 때는 Debugger - Debugger Options - Set specific options - Use stepping support 옵션에 체크를 해제해주면 정상적으로 디버깅 할 수 있다.

'Reversing > Debugging Tech' 카테고리의 다른 글

OS 동적 디버깅(vmware)  (1) 2016.06.22
16bit DOS Debugging  (0) 2016.02.03
IDA Linux Remote Debugging  (0) 2015.09.19