추가사항
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]- debugger server (usually Java VM) :
- DDMS
- debugger client (usually IDE) :
- JPDA client in NetBeans IDE
- client 에서는 "디버깅하려는 apk 의 source" :
- server에서는 "client 의 소스를 참고하는 debugging symbol 을 가진 binary" :
- debugging symbols 를 알맞게 연결하기 위해서, 소스는 적어도 package 와 class 정의를 가지는 java file 이어야 한다.
http://www.youtube.com/watch?v=P_Zyf7jFbx4
Screenshots
아쉽게 아래의 작업들은 runtime debugging 을 위한 setting 인데, apktools 가 .java 를 생성하지 못해서 runtime debugging 은 해보지 못했다.apk 를 풀어놓은 폴더(E:\s) 안에 있는 source folder(E:\s\smali) 를 선택하자.
AVD 의 안드로이드 버전에 해당하는 android.jar 을 Libraries 에 추가하자. 그러면 E:\s\lib 에 copy 된다.
위에서 쓰이는 port 정보는 eclipse 에서 DDMS 를 실행해서 알아낼 수 있다. DDMS 를 실행하고, AVD 에서 apk 를 실행하면, 아래처럼 자동으로 monitoring 이 된다. 여기서 port 번호를 알아낼 수 있다. 대부분 8700 이다.
attach debugger 에 성공하면 아래와 같은 화면이 나온다. DDMS 에서는 벌레모양의 아이콘이 추가된다.
댓글 없음:
댓글 쓰기