[컴][안드로이드] smali 를 이용해서 apk 에 debugger 를 붙이기


추가사항

ref.3 에서 Apk-tool 1.4.1 and NetBeans 6.8. 를 사용하라고 한다. 최신버전에서는 되지 않는다.고.
----

현재는 apktools 로 apk 를 debug mode 로 decode 해도 java file 이 생기지 않는 듯 하다. 이게 버전의 문제같다는 이야기도 있다. java file 이 없어서 NetBeans 에서 breakpoint 를 잡을 수 없다. ㅜ.ㅜ
http://forum.xda-developers.com/showthread.php?t=1755243&page=5
그래서 차라리 .smali 를 보고 직접 reverse engineering 을 하는 것이 빠를 수도 있을 듯 하다.
http://securityxploded.com/android_reversing.php

Android debugging with smali

Java debugging session 을 위해 필요한 것들은 아래와 같다.[ref. 1]
위의 내용은 동영상을 참고하자.
http://www.youtube.com/watch?v=P_Zyf7jFbx4

Screenshots

아쉽게 아래의 작업들은 runtime debugging 을 위한 setting 인데, apktools 가 .java 를 생성하지 못해서 runtime debugging 은 해보지 못했다.

image

image

image

apk 를 풀어놓은 폴더(E:\s) 안에 있는 source folder(E:\s\smali) 를 선택하자.
image

image

AVD 의 안드로이드 버전에 해당하는 android.jar 을 Libraries 에 추가하자. 그러면 E:\s\lib 에 copy 된다.
image

image

image

위에서 쓰이는 port 정보는 eclipse 에서 DDMS 를 실행해서 알아낼 수 있다. DDMS 를 실행하고, AVD 에서 apk 를 실행하면, 아래처럼 자동으로 monitoring 이 된다. 여기서 port 번호를 알아낼 수 있다. 대부분 8700 이다.
image

attach debugger 에 성공하면 아래와 같은 화면이 나온다. DDMS 에서는 벌레모양의 아이콘이 추가된다.
image


References

  1. http://code.google.com/p/android-apktool/wiki/SmaliDebugging
  2. http://teamcrak.tistory.com/342
  3. http://d-kovalenko.blogspot.kr/2012/08/debugging-smali-code-with-apk-tool-and.html

댓글 없음:

댓글 쓰기