APK 파일을 decompile 해서 .java 파일로 변환 하는 방법 입니다..
구글링 하시면 방법이 나와 있지만 기억 하기 위해서 올려 봅니다..
일단 apk 를 추출 하는 방법은 ES탐색기 & Astro 파일매니저 등을 이용하셔서
추출 하시면 됩니다..
저는 ES탐색기를 사용 하므로 ES 탐색기에서 apk 를 추출하는 방법을 간단하게
올려 봅니다..
일단 ES 파일 탐색기를 실행 하신후에 아래 방법 대로 하시면 됩니다.
1. ES탐색기 실행
2. 메뉴 -> 관리자 -> 설치도니 애플리케이션 선택
3. APP 선택 (길게 누르고 계시면 메뉴 나옵니다) -> 백업
apk 파일은 SD Card 에 backups/apps 에 생깁니다.. backup받은 apk 를 PC 로 가져 오시면 됩니다.
이제 decompile 을 할건데 아래의 파일이 필요 합니다.
Backup 받으신 apk 를 알집 등의 압축 Application 을 사용하셔서 압축을 풀어 놓습니다.
방법은 간단하게 확장자를 apk -> zip 으로 변경 하시면 됩니다.
작업 하실 위치에 푸신후에 이제 cmd 를 뛰우신후 아래처럼 하시면 됩니다.
1. classes.dex -> classes.jar 변경 하기
일작 작업 하시는 위치에서 gen 폴더를 만들어 둡니다.
> java -DASDKLoc=. -jar undx.jar classes.dex
false
2011. 2. 28 오후 1:57:12 org.illegalaccess.undx.APKAccess <init>
심각: ./dexdump -dfh classes.dex
2011. 2. 28 오후 1:57:13 org.illegalaccess.undx.APKAccess <init>
정보: avail=255492
2011. 2. 28 오후 1:57:13 org.illegalaccess.undx.DalvikToJVM doConvert
정보: Classes count=731
false
false
true
2011. 2. 28 오후 1:57:13 org.illegalaccess.undx.ClassHandler <init>
정보: class:com.google.android.apps.analytics.AnalyticsParameterEncoder
심각, 정보등의 메세지가 쭈욱~~~ 나옵니다.. 일단 무시하고 진행 하면 됩니다.
2. classes -> java 로 변경
위 작업이 끝나시면 gen 밑에 classes.dex, classes.dex.jar 파일이 생겨 납니다.
classes.dex.jar 파일 역시 알집등을 이용하셔서 풀어 버리시면 됩니다.
Parsing ./com/google/android/apps/analytics/AnalyticsParameterEncoder.class..
Generating AnalyticsParameterEncoder.java
3. binary xml -> xml 변경 하기
binary XML 파일을 볼수 있도록 변경 하는 방법입니다.
> java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifest.txt
이상 APK decompile 하는 방법 이였습니다.. ㅎㅎ