안드로이드 디컴파일에 대한 정리해 봅시다.
필요 Tools
- Apktool : https://ibotpeaches.github.io/Apktool/
해당 URL로 들어가서 apktool1.5.2.tar.bz2 (버전은 바뀔 수 있습니다.) 와 apktool-install (각자 OS에 맞게) 을 받습니다. - dex2jar : https://code.google.com/p/dex2jar/
해당 URL로 들어가서 dex2jar를 받습니다. - Jd-gui : 인터넷에서 찾으셔야 합니다.
디컴파일
- dex2jar로 jar를 먼저 만들어야 합니다. 이것이 디컴파일을 완료한것이라 봅니다.
Command 창에서 sh dex2jar.sh test.apk 하시면 test_dex2jar.jar가 생깁니다. jar가 생기면 디컴파일은 완료된 것입니다.
Ex) d2j-dex2jar.bat com.tmon.apk
Xml / resource 추출
- java를 제외한 파일들을 얻기 위해서는 apktool을 이용합니다.
Command 창에서 sh apktool d test.apk 하시면 test라는 폴더에 안드로이드 구조의 폴더들이 생성되면서 xml과 resource등이 나오게 됩니다.
디컴파일시에는 xml등은 나오지 않습니다.
Ex) java -jar apktool_2.2.0.jar d com.coupang.mobile.apk
Java 파일로 변경
- Jd-gui 툴을 이용하여 “소스파일로 모두 저장” 버튼을 누르시면 모두 java 파일로 변경되어 저장됩니다.
- Jd-gui 툴을 열고 디컴파일한 jar를 연다음 “소스파일로 모두 저장”을 누르시면 java파일로 모두 저장됩니다.
완전체 프로젝트 생성방법
- 위에서 설명한 apktool을 사용하여 xml과 resource를 뽑아내고 소스 부분을 삭제 후 jd-gui로 디컴파일된 jar를 열어 java파일로 모두 저장하여 src를 만듭니다.
그 후 eclipse에서 import하시면 프로젝트?를 보실 수 있으십니다.