====== Reversing ====== ===== 필요 소프트웨어 ===== **apktool**\\ http://code.google.com/p/android-apktool/downloads/list\\ apktool과 dependency and helper script를 다운받는다. android-sdk의 platform-tools 폴더 안에 apktool 폴더를 만들어 압축을 푼다. **dex2jar**\\ http://code.google.com/p/dex2jar/downloads/list\\ android-sdk의 platform-tools 폴더 안에 dex2jar 폴더를 만들어 압축을 푼다. **JAVA decompiler**\\ http://java.decompiler.free.fr/?q=jdgui\\ ===== 설치 ===== ==== 환경 변수 ==== 환경 변수의 path에 platform-tools, apktool, dex2jar 폴더를 추가한다. (android-sdk 폴더를 ANDROID_SDK 변수로 추가한 뒤 이를 이용하여 폴더명을 간단히 작성하면 편하다.) ==== apk 추출 ==== - 커맨드(cmd) 실행 - adb shell 실행하여 쉘로 이동 - pm list packages -f 실행 - 디컴파일할 apk 파일을 정한 후 package: 뒤의 경로명.apk 를 복사해둔다. - exit 입력하여 adb shell 종료 - adb pull 경로명.apk로 apk 파일 추출 ==== apktool 실행 ==== - apktool d 경로명.apk out 명령으로 파일을 디코딩하여 out 폴더로 보낸다. - xml 파일 확인 ==== dex2jar 실행 ==== - apk파일 확장자를 zip으로 변경 - 압축 푼 후 classes.dex 추출 - dex2jar classes.dex 실행 - classes.dex.dex2jar.jar 파일 생성 완료 ==== JD-GDI 실행 ==== JD-GDI 실행 후 위에서 생성한 classes.dex.dex2jar.jar파일을 열어 소스 분석 ===== 참고 ===== * [[http://blog.naver.com/man8408?Redirect=Log&logNo=110111707630|안드로이드 apk 디컴파일하기]]\\