1. 程式人生 > >Android APK反編譯方法(可以獲取APK xml和android Manifest,java程式碼等內容)

Android APK反編譯方法(可以獲取APK xml和android Manifest,java程式碼等內容)

APK反編譯和簽名

apk檔案反編譯以及簽名打包

通過dex2jar和jd我們可以反編譯apk中的dex,可以比較完美的檢視java原始檔;通過apktool可以反編譯apk中的xml等資原始檔,然後通過apk-sign簽名,可以製作成修改版的可釋出apk檔案。

1.dex2jar反編譯dex檔案:

http://blog.csdn.net/pugongying1988/article/details/7301049

b. 把apk檔案字尾名改為.zip,然後解壓縮其中的class.dex檔案,它是java檔案編譯再通過dx工具打包成的,所以現在我們就用上述提到的2個工具來逆方向匯出java原始檔;
c.把class.dex拷貝到dex2jar.bat所在目錄,執行dex2jar.bat class.dex,生成classes.dex.dex2jar.jar ;
d.執行jd-gui工具(綠色無須安裝),開啟上面生成的jar檔案,即可看到原始碼(java檔案);

2.apktool反編譯xml等資原始檔:

b. apktool d XXX.apk ABC :   反編譯XXX.apk到資料夾ABC

c. apktool b  ABC  :從反編譯後的資料夾ABC重建APK,輸出到ABC\dist\out.apk(該apk沒有簽名)

d. 這樣我們就可以把遠apk檔案通過反編譯後,然後對裡面資原始檔作修改,然後再重建為apk即可;

3.apk完整原始碼:

1.中得到的java檔案和2中得到的xml檔案組合成一個android工程,即可得到完整的apk原始碼。

4.apk-sign簽名apk檔案:

a. 下載檔案件附件apk-sign.rar,解壓到apk-sign資料夾;

b.將XXX.apk檔案解壓到XXX資料夾,然後將XXX直接拖到apk-sign檔案中的sign_pack.bat批處理檔案上以執行,彈出cmd執行視窗,等待執行完即可;

c.生成新資料夾XXX_signed中的apk檔案即為已簽名;