反編譯前奏
1、下載要分析的APK
2、apk文件,將後綴改爲zip,解壓,得到其中的classes.dex,它就是java文件編譯再通過dx工具打包而成的;
源碼反編譯步驟
1、解壓下載的dex2jar(點擊下載),把 class.dex 拷貝到 dex2jar.bat 所在目錄,直接拖動 class.dex 到 dex2jar.bat,生成 classes.dex.dex2jar.jar。
2、用 rar 解壓出 jar 文件中的 class 文件,然後 用jad 或 DJ Java Decompiler 反編譯工具將 .class 文件反編譯成 .java 文件
在cmd下執行如下命令:
jad -o -r -s java -d src *.class
此命令將批量反編譯.class文件至src目錄
3、運行
JD-GUI工具(綠色軟件)(點擊下載),打開上面的 jar 文件,在File下有個 Save JAR Source,它可以生成 src 源代碼。
資源文件反編譯步驟
首先還是下載工具,這次用到的是apktool
下載地址:http://code.google.com/p/android-apktool/downloads/list
下載:apktool1.5.2.tar.bz2 和 apktool-install-windows-r05-ibot.tar.bz2(兩個包都下載)
具體步驟:
將下載的兩個包解壓到同一個文件夾下,應該會有三個文件:aapt.exe,apktool.bat,apktool.jar
在命令行下定位到apktool.bat文件夾,輸入以下命令:apktool d C:\*.apk C:\*文件夾,如下圖:
命令行解釋:apktool d [apk文件 ] [輸出文件夾]
反編譯的文件如下(AndroidManifest.xml爲例):
特別注意:你要反編譯的文件一定要放在C盤的根目錄裏
將反編譯完的文件重新打包成apk,很簡單,輸入apktool b c:\***文件夾(你編譯出來文件夾)即可,命令如下:
打包apk後的文件在目錄C:\HelloAndroid下,生成了兩個文件夾:
build
dist
其中,打包生成的HelloAndroid.apk,在上面的dist文件夾下,Ok
通過以上步驟可以反編譯源碼及資源文件,然後將其合併至一個工程目錄,在eclipse開發環境裏通過如下步驟導入生成的工程文件
New->Android Project->Create project from exist ing source