가끔 진행하는 앱의 코드 난독화 확인을 위해서 기록해 두려고 한다. APK 디컴파일(Decompile)을 악용하지 말았으면 한다. 안드로이드 애플리케이션이 컴파일되면 .dex
파일이 생성된다. dex는 Dalvik Executable로 Dalvik에서 실행할 수 있는 파일이며 컴파일된 코드 파일을 의미한다.
Download dex2jar tool
1. dex파일을 jar
(.class files)로 변환하기 위해서 dex2jar를 다운로드 한다.
2. Signed APK 파일의 확장명을 apk
에서 zip
으로 변경한다.
3. zip 압축을 풀면 classes.dex
파일을 다운받은 dex2jar 폴더로 복사한다.
$ ./d2j-dex2jar.sh classes.dex
sh: ./d2j-dex2jar.sh: Permission denied
4. 위처럼 dex2jar.sh
실행하면 권한 거부로 실행할 수 없게 된다.
$ chmod 764 *.sh
$ ./d2j-dex2jar.sh classes.dex
dex2jar classes.dex -> ./classes-dex2jar.jar
실행 권한을 변경한 후 다시 실행하면 classes-dex2jar.jar
파일이 생성된다.
Download JD_GUI
JD(Java Decompiler)-GUI를 jar
파일 안에 있는 class
파일들을 보기 위해서 다운로드 한다.
생성된 classes-dex2jar.jar를 열면 모든 class
파일들을 볼 수 있다.