APK反編譯 修改APK源碼文件 重新打包APK踩坑日記


1.准備軟件

下載地址:
鏈接: https://pan.baidu.com/s/1PLUKrjNHio9EYDl9eCckXw 提取碼: rhvr

 

2.軟件用途

 

 

解壓下載的壓縮包, 有以上三個文件
baksmali-2.0.3.jar工具, 可將解壓縮后apk目錄下的classes.dex文件轉為smali文件, 后面對源碼的修改, 就是針對smali文件的修改

smali-2.0.3.jar工具, 可將smali文件重新轉為classes.dex文件, 用重新生成的dex文件替換之前解壓apk目錄下的dex文件, 這樣apk源碼的修改就成功了

sign_tool目錄下的signapk.jar是個簽名工具, 替換了dex文件的apk要重新簽名, 才能正常安裝到手機

 

3.解壓apk獲取classes.dex文件

apk文件可通過zip工具直接解壓, 或通過修改apk為壓縮文件類型在通過zip解壓工具解壓
解壓后的apk目錄下, 有classes.dex文件, apk源碼全部編譯到了該文件

 

4.修改smali類型源碼文件

但classes.dex文件是無法直接查看或修改的
我們需要將classes.dex文件轉為smali類型的文件, 才能修改查看源碼

步驟:
進入apk的解壓目錄下, 可以看到classes.dex

使用cmd命令轉化dex文件為smali文件:
java -jar baksmali-2.0.3.jar -x classes.dex

執行完后會在當前目錄生成out目錄, 可以在該目錄找到與源碼對應的smali文件
可以使用文本編輯工具, 修改smali文件, 推薦使用Notepad++修改smali類型文件

 

5.重新打包

smali源碼文件修改完后, 需要重新打包回dex文件, 新的dex替換老的dex, 即可實現對apk的修改

在有out目錄的同級目錄下cmd命令:
java -jar smali-2.0.3.jar -o classes.dex out
執行完后, 會生成新的classes.dex, 老的dex會被覆蓋

使用系統自帶的壓縮工具, 將新classes.dex替換到apk並保存實現源碼替換

最后重要的一步, 重新簽名apk文件
把替換好dex文件的apk復制到sign_tool目錄下
執行cmd命令:
java -jar signapk.jar platform.x509.pem platform.pk8 test.apk newtest.apk

說明:
test.apk是需要重新簽名的apk文件
newtest.apk是新簽名后的apk文件

 

至此, 大功告成, 完結撒花~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM