효투의 세상 로딩중...
효투의 세상 로딩중...
반응형

 

안드로이드 동적 디버깅 도구 대표적인 2가지에 대해서 사용법 정리를 하려고함

 

1. GDB

GDB는 프로세서 아키텍처만 잘 맞추면 어려운게 없다

GDB의 준비물

로컬에서 동작할 gdbserver

http://www.equation.com/servlet/equation.cmd?fa=gdb 

 

Debugger, gdb, for Windows

GNU Debugger for Windows         This web page provides 32-bit and 64-bit binaries of gdb for Windows for download. Equation Solution build the debugger from GNU gdb. It is a free software under General Public License. Distribution of GNU compilers

www.equation.com

 

단말기에서 동작할 gdbserver

https://chromium.googlesource.com/android_tools/+/2403/ndk/prebuilt?autodive=0 

 

ndk/prebuilt - android_tools - Git at Google

 

chromium.googlesource.com

 

각각 단말기와 로컬의 아키텍처에 맞는 서버를 다운받으면 된다

안드로이드는 uname 명령어로 확인가능

 

로컬에서 gdbserver를 실행하면 아래와같이 실행된다.

 

안드로이드 서버는 단말기에 넣어준다

adb push gdbserver /data/local/tmp

 

adb shell로 들어가서 gdbserver에 실행 권한을 부여해주고 제대로 실행되는지 확인

 

디버깅도구로 붙을 앱을 실행 시키고 pid 확인

 

gdbserver 실행

./gdbserver :8888 --attach [PID]

 

다시 로컬로 돌아와서 gdbserver 실행

이 때 만약 에뮬레이터로 진행한다면 포트 포워딩을 한번 해줘야한다

target remote :8888

 

attach 완료

 

이후 gdb를 이용해서 원격으로 동적 디버깅이 가능하다

각 명령어나 상세 사용법은 다음에 정리하려고 한다.

 

반응형

2. IDA

ida는 서버하나만 넣어준 후 원격 디버깅이 가능

ida 설치 경로에 가서 dbgsrv 디렉터리를 보면 아래 사진과 같이 여러 서버 파일들이 있다

마찬가지로 아키텍처에 맞는 것을 단말기에 넣어준다

 

adb push android_x86_server /data/local/tmp

 

바로 실행권한을 주고 실행

 

ida에서 attach 시도

Debugger > Attach 메뉴에 들어가면 있다

단말기면 ARMLinux/Android

에뮬레이터면 Linux debugger 선택

사진을 찍다 발견했는데 ida에서도 GDB server로 디버깅이 가능한듯 보인다.

 

마찬가지로 에뮬레이터로 붙는다면 포트포워딩

adb forward tcp:23946 tcp:23946

 

단말기의 IP를 적어주고 attach 하면된다

현재 에뮬레이터라 로컬 IP 입력했다

 

정상 동작시 모습

 

반응형
  • hyotwo7658@gmail.com

복사 완료 👍