추가 사항, 2013-12-23
aapt.exe 의 path 가 바뀌었다. <android_sdk_path> 에서 find 로 찾자.
- <Android_sdk>\build-tools\21.1.1\aapt.exe
- apktool.bat d apk_name -o out_directory
REM apktoo.bat @echo off set PATH=%CD%;%PATH%; java -jar "%~dp0\apktool_2.0.0.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9
----
추가사항
ref.3,4 에 따르면 Apk-tool 1.4.1 를 사용해야 한다고 한다. 그렇지 않으면 .java 를 생성하지 않아서 netbeans 에서 line breakpoint 를 설정할 수 없다고 한다.
참고 : http://i5on9i.blogspot.kr/2012/10/netbeans-ide.html
----
apktool 이라는 apk 리버스 엔지니어링 툴이 있어서 한 번 사용 해 봤다.
사용법은 아래와 같다.
- http://ibotpeaches.github.io/Apktool/ 에 가서, 아래 2가지를 다운로드 받자.
- apktool : apktool.jar
- apktool-install-windows-r04-brut : aapt.exe, apktool.bat
- aapt.exe 는 platform-tools(...\android-sdk\platform-tools)안에 있는 것을 쓰도록 하자. 자신이 현재 사용하는 sdk 와 맞아야 한다. 그렇지 않으면 아래와 같은 에러(Exception)가 발생할 것이다.
Exception in thread "main" brut.androlib.AndrolibException - 압축을 풀고, 아래처럼 사용하면 된다.
- apktool.bat -v d apk_name out_directory
d:\Program Files\Android\apktool>apktool.bat -v d com.m.ax.hpace-1.apk.\s
2012. 9. 19 오후 1:26:02 brut.androlib.Androlib decodeSourcesSmali
정보: Baksmaling...
2012. 9. 19 오후 1:26:04 brut.androlib.res.AndrolibResources loadMainPkg
정보: Loading resource table...
2012. 9. 19 오후 1:26:04 brut.androlib.res.AndrolibResources loadMainPkg
정보: Loaded.
2012. 9. 19 오후 1:26:05 brut.androlib.res.AndrolibResources loadFrameworkPkg
정보: Loading resource table from file: C:\Users\namh\apktool\framework\1.apk
2012. 9. 19 오후 1:26:11 brut.androlib.res.AndrolibResources loadFrameworkPkg
정보: Loaded.
2012. 9. 19 오후 1:26:11 brut.androlib.res.AndrolibResources decode
정보: Decoding file-resources...
2012. 9. 19 오후 1:26:11 brut.androlib.res.AndrolibResources decode
정보: Decoding values*/* XMLs...
2012. 9. 19 오후 1:26:11 brut.androlib.res.AndrolibResources decode
정보: Done.
2012. 9. 19 오후 1:26:11 brut.androlib.Androlib decodeRawFiles
정보: Copying assets and libs...
정보: Baksmaling...
2012. 9. 19 오후 1:26:04 brut.androlib.res.AndrolibResources loadMainPkg
정보: Loading resource table...
2012. 9. 19 오후 1:26:04 brut.androlib.res.AndrolibResources loadMainPkg
정보: Loaded.
2012. 9. 19 오후 1:26:05 brut.androlib.res.AndrolibResources loadFrameworkPkg
정보: Loading resource table from file: C:\Users\namh\apktool\framework\1.apk
2012. 9. 19 오후 1:26:11 brut.androlib.res.AndrolibResources loadFrameworkPkg
정보: Loaded.
2012. 9. 19 오후 1:26:11 brut.androlib.res.AndrolibResources decode
정보: Decoding file-resources...
2012. 9. 19 오후 1:26:11 brut.androlib.res.AndrolibResources decode
정보: Decoding values*/* XMLs...
2012. 9. 19 오후 1:26:11 brut.androlib.res.AndrolibResources decode
정보: Done.
2012. 9. 19 오후 1:26:11 brut.androlib.Androlib decodeRawFiles
정보: Copying assets and libs...
.xml 등은 제대로 원본을 확인할 수 있다. 하지만 source 결과물은 .smali 라는 녀석으로 나온다. 이 녀석을 debugging 하는 방법도 project homepage 에서 설명하고 있다.
http://code.google.com/p/android-apktool/wiki/SmaliDebuggingsource 쪽은 차라리 .dex 를 디컴파일링하는 것이 나을 듯도 하다.
http://teamcrak.tistory.com/342 : 훨씬 알기쉽게 설명해 놓았다. 더구나 한글이다 ^^
댓글 없음:
댓글 쓰기