본문 바로가기

Android/Android Analysis

IDA Pro를 이용한 안드로이드 단말기 원격 디버깅

반응형

IDA Pro를 이용한 안드로이드 단말기 원격 디버깅

Android Device Remote Debugging using IDA Pro


by bunseokbot


이번 글에서는 IDA Pro를 이용해서 안드로이드 단말기상에서 디버깅 하는 방법을 포스팅하도록 하겠습니다.

저도 평소에 리버싱을 하면서 IDA Pro를 많이 이용하는데요, 워낙 유명하고 강력한 툴이다 보니 다양한 기능을 제공하고 또 다른 사람들이 수많은 플러그인을 만들어 두기고 한 툴입니다 ㅎㅎ


아래 링크는 코드게이트 2014 주니어 세미나 세션 중에 IDA에 관한 세션 발표 내용입니다.

http://xer0s.tistory.com/71


근데 저는 항상 DEX 파일 뜯어볼 때만 사용했었는데, 인터넷 검색하다가 우연히 안드로이드 단말기 상에서 디버깅을 할 수 있는 방법을 알아내었습니다.


사실 안드로이드에는 일반적인 리눅스처럼 GDB가 존재하지 않는데요, 그 이유는 최대한 가볍게 해야 하는 안드로이드의 특성상 GDB가 존재하지 않습니다. (다른 명령어 모두 안드로이드에서 안되는 경우가 많습니다.)


일단 하기 전 준비물은

IDA Pro 버전 6.1 이상

Android SDK 

단말기와 USB 입니다. 


이렇게 준비하셨다면 일단 IDA 파일 내에 존재하는 android_server 라는 파일을 단말기 안에 넣어줘야 합니다.



명령어는 adb push android_server /data/local/tmp


이렇게 넣어줬다면 실행해 줘야 합니다.

adb shell 명령을 때려서 실행 준비해 줘야죠 ㅎㅎ


명령어는 adb shell 로 shell를 띄워준 다음 cd /data/local/tmp 로 해당 디렉토리로 이동합니다.


이동한 후에는 실행해 줘야 합니다.

근데 그냥 실행하게 되면 Permission Denied가 뜨면서 실행 거부를 선언합니다. 

왜냐면 권한이 부족하기 때문이죠 뭐 다른 이유가.. ㅎㅎ

그래서 일단 chmod를 해주고 나서 실행해 줘야 합니다. 



chmod 755 android_server 가랏!


그러면 친절하게 포트를 띄워줍니다



23946 포트를 열어줬네요 


그럼 이제 IDA를 실행해주기만 하면 됩니다! 거의 다 왔어요!!



Hello, IDA


위에 Debugger -> Attach -> Remote Android... 이렇게 들어가면





호스트 네임을 쓰라네요.. 흑

이럴땐 다른 창으로 shell 로 들어가서 netcfg 명령어에서 wlan0 의 아이피를 보고 호스트 네임을 치면 됩니다.

(반드시 와이파이로 하셔야됩니다.)


이렇게 하면..?



오예 


뭐 이렇게 디버깅 할 수 있고, 다양한 기능이 있습니다.

이 기능 사용법이나 그런건 블로그 글 보단 세미나나 이런 곳에서 발표할 예정입니다.

반응형