MAC反編譯APK

環(huán)境配置

Apktool的安裝

  1. 官網鏈接里下載一個shell腳本,保存的名字就是”apktool”,不要帶.sh后綴。
  2. 下載最新的apktool-2,在bitbucket上,并重命名為:"apktool.jar"。
  3. 將”apktool”和”apktool.jar”放到 “/usr/local/bin”目錄下
  4. 增加這兩個文件可執(zhí)行權限,chmod a+x apktool ;chmod a+x apktool.jar
  5. 執(zhí)行apktool(測試:apktool -version可以看到版本信息)。

dex2jar和JD-GUI的安裝

直接下載并解壓:dex2jar JD-GUI

反編譯步驟

  1. 新建個apk文件夾,將待破譯的apk放進去,之后進到這個目錄運行命令: apktool d test.apk
  2. 再運行命令回編譯apk: apktool b test,build和dist就是回編譯apk過程中生成的東西,dist里的apk文件是沒有簽名的。
  3. 我們要用dex2jar將apk轉成jar文件,將dex2jar里的d2j_invoke.sh、d2j-dex2jar.sh增加可執(zhí)行權限。然后進到dex2jar這個文件夾下運行: ./d2j-dex2jar.sh /Users/xxx/apk/test.apk ,得到test-dex2jar.jar文件。
  4. 打開JD-GUI,將hongbao-dex2jar.jar拖進去就看到源碼了。通過看java源碼對比smali文件,修改后回編譯就ok了!

回編譯apk簽名

回編譯后的apk是安裝不成功的,總是提示:Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION] 實質是沒簽名。

  1. 生成簽名:keytool -genkey -keystore test.keystore -keyalg RSA -validity 10000 -alias test
  2. 為apk增加簽名:jarsigner -digestalg SHA1 -sigalg MD5withRSA -tsa https://timestamp.geotrust.com/tsa -keystore test.keystore -signedjar test-signed.apk test.apk test

注意:

  • 最后的”test”就是-alias后面帶的,必須保持一致。
  • 如果不帶-digestalg SHA1 -sigalg MD5withRSA簽名后的apk安裝也是不成功的,說INSTALL_PARSE_FAILED_NO_CERTIFICATES的錯誤,如果不帶-tsa會報一個時間方面的警告。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容