APK를 IDA로 동적디버깅하는 방법을 포스팅하겠습니다


인터넷에 Netbeans를 이용해서 디버깅하는 자료가 나와 있는데 안드로이드 6.0부터는 Netbeans가 지원이 안되는 것 같네요 ( 확실하진 않지만 제가 해봤을때는 안되네요 :/ )


디버깅 하고자 했던 원래 의도는 무결성을 훼손하지 않으면서 디버깅을 하고 싶었는데, 그건 아마 안되는 것 같습니다


예시를 위해 기존에 포스팅했던 Uncrackable1 앱을 이용하겠습니다


일단 APK파일의 AndroidManifest.xml 파일에 debuggable속성을 넣어줘서 리패키징을 해야 합니다



리패키징된 APK파일을 단말기에 설치한 후, APK파일을 IDA에서 로드합니다



APK파일이 zip파일이므로 로드하게 되면 내부 파일을 선택하라는 창이 나오는데 여기서 calsses.dex를 선택합니다



로드하면 classes.dex의 smali코드가 출력됩니다



smali코드의 원하는 지점에 브레이크포인트를 설정합니다


F2 혹은 smali코드 라인에서 우클릭하면 브레이크포인트를 설정할 수 있습니다



브레이크 포인트를 설정하고 나면 설정한 위치에 빨간 라인이 생깁니다



앱을 실행시켜주기전에 한가지 설정을 해줘야 합니다 


[Debugger] - [Debugger options]



생성되는 창에서 [Set sepecific options]로 들어가 줍니다



Package name 및 Activity에 알맞은 값을 설정해 줍니다



설정이 완료되면 Debugger의 Start Process 혹은 attach를 시켜주면 됩니다



그럼 시간이 좀 걸린 후에 브레이크포인트에 실행지점이 도달하게 되면 다음과 같이 디버깅 창을 확인하실 수 있습니다



[Debugger] - [Debugger windows] - [Locals]에서 변수값들 확인도 가능합니다 :)



IDA에서 Dex와 so를 같이 디버깅 하는 방법은 다음 포스팅에 있습니다.

https://taesun1114.tistory.com/entry/IDA-DEXSO-동적디버깅?category=729990




'Mobile' 카테고리의 다른 글

Android Proxy Burp 인증서 설치  (2) 2018.09.15
Uncrackable3-1  (2) 2018.06.14
welcome to droid (codegate2018)  (2) 2018.02.11
INSTALL FAILED TEST_ONLY  (1) 2018.02.06
Uncrackable3 - frida  (0) 2018.01.30

+ Recent posts