[컴][폰] apktool , 안드로이드 .apk reverse engineering tool

decompiler of apk, androidManifest.xml parser, androidManifest.xml decompiler



추가 사항, 2013-12-23
aapt.exe 의 path 가 바뀌었다. <android_sdk_path> 에서 find 로 찾자.
  • <Android_sdk>\build-tools\21.1.1\aapt.exe
그리고 apktool 의 2.0.x 버전에서는 실행 방법이 조금 바뀌었다.
  • 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 리버스 엔지니어링 툴이 있어서 한 번 사용 해 봤다.
사용법은 아래와 같다.
  1. http://ibotpeaches.github.io/Apktool/
  2. 에 가서, 아래 2가지를 다운로드 받자.
    1. apktool : apktool.jar
    2. apktool-install-windows-r04-brut : aapt.exe, apktool.bat
    3. aapt.exe 는 platform-tools(...\android-sdk\platform-tools)안에 있는 것을 쓰도록 하자. 자신이 현재 사용하는 sdk 와 맞아야 한다. 그렇지 않으면 아래와 같은 에러(Exception)가 발생할 것이다.

      Exception in thread "main" brut.androlib.AndrolibException
  3. 압축을 풀고, 아래처럼 사용하면 된다.
    • 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...

.xml 등은 제대로 원본을 확인할 수 있다. 하지만 source 결과물은 .smali 라는 녀석으로 나온다. 이 녀석을 debugging 하는 방법도 project homepage 에서 설명하고 있다.
http://code.google.com/p/android-apktool/wiki/SmaliDebugging
http://teamcrak.tistory.com/342 : 훨씬 알기쉽게 설명해 놓았다. 더구나 한글이다 ^^
source 쪽은 차라리 .dex 를 디컴파일링하는 것이 나을 듯도 하다.

댓글 없음:

댓글 쓰기