반응형
decompile ( 디컴파일 ) 하는 방법
1. apktools
http://code.google.com/p/android-apktool/downloads/list
- 이 녀석은 apk 로부터 resource 를 추출할 떄 쓰이는 툴이다.
- apktool-install-windows-r04-brut1.tar.bz2 파일을 다운받아, 압축해제.
- 이 녀석은 apk 로부터 resource 를 추출할 떄 쓰이는 툴이다.
- apktool-install-windows-r04-brut1.tar.bz2 파일을 다운받아, 압축해제.
2. dex2jar
- 이 녀석은 dex 로부터 jar 를 생성하여, 최종적으로 소스코드를 볼 수 있도록 해주는 툴.
- dex2jar-0.0.9.11.zip 파일을 다운받아, 압축 풀기
3. jdgui
- dex2jar 로 생성한 jar 파일을 보는 viewer 이다. 이 녀석이 있어야 소스코드를 편리하게 볼 수 있다.
- jd-gui-0.3.5.windows.zip 파일을 다운받아, 압축해제
4. 1차 디컴파일 (resource 추출)
- resource 들을 추출하는 과정이다.
apktool d [apkfile] out
- out 이라는 폴더에 resource 파일들이 압축해제되어 나온다. xml 들과 이미지 파일등 안드로이드의 res 안에 들어있는 내용들이 쭉~ 나온다.
5. 2차 디컴파일 ( 소스코드 추출 )
- apk 파일의 확장자 zip 으로 바꾼 후 압축을 풀어, dex 파일을 추출해낸다.
dex2jar classes.dex
- 위의 명령어를 실행하면 jar 파일이 나온다.
6. jdgui 를 이용하여 소스코드 보기
- jdgui 를 실행하고, 5. 과정을 통해 생성한 output.jar 파일을 jdgui 창에 끌어다 놓으면 소스를 볼 수 있다.
- 요즘은 proguard 를 적용하는 소스들이 많이 늘어나는 추세이기 때문에 제대로 된 소스를 보는 것은 어렵다. 하지만, 프로가드는 "난독화" 이지 "암호화" 가 아니기에 보기 어렵지만, 어떤 구현에 대한 아이디어를 얻기는 쉽다. 도전하라 디컴파일링!!
반응형
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] Android Layout Tricks #2 : Reusing Layouts ( 성능개선 ) (0) | 2012.11.28 |
---|---|
[android] Android LayoutTricks #1 (성능개선) (0) | 2012.11.28 |
[android] listview scrollbar 변경하기 (0) | 2012.11.26 |
[android] Android App 에서 Analytics ( 통계 ) 내기. (0) | 2012.11.26 |
[android] layout percentage 적용하기 (2) | 2012.11.26 |
댓글