mac下反編譯apk

工具

  • apktool:用于反編譯apk文件
  • dex2jar:用于將反編譯出的class.dex轉(zhuǎn)換成classes-dex2jar.jar
  • jd-gui:用于閱讀classes-dex2jar.jar源碼
  • signAPK:給重新打包后的apk簽名

安裝apktool

安裝地址:
https://ibotpeaches.github.io/Apktool/install/

根據(jù)教程將apktool安裝好即可。

注意:需要先安裝java sdk。
下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html

安裝dex2jar

下載并解壓dex2jar-2.0
下載地址:https://sourceforge.net/projects/dex2jar/
為dex2jar-2.0添加權(quán)限

$ chmod -R 777 dex2jar-2.0
$ chmod +x d2j_invoke.sh

安裝jd-gui

使用brew安裝

$ brew cask install jd-gui

注意:只能運行在jdk 1.8版本下。否則按照此文檔對jdk版本進行更改:http://blog.csdn.net/YoungStunner/article/details/78699864

反編譯流程

使用apktool反編譯apk包

運行如下命令來反編譯:

$ apktool d xxx.apk

用壓縮軟件unzip achiever打開StabilityTest.apk,然后解壓出位于根目錄下的classes.dex

使用dex2jar將classes.dex轉(zhuǎn)換為jar包

運行如下命令來轉(zhuǎn)換:

$ sh d2j-dex2jar.sh classes.dex

使用jd-gui打開classes-dex2jar.jar

如果覺得jd-gui查看代碼不方便,還可以通過File->Save All Sources導出一個classes-dex2jar.src.zip,將classes-dex2jar.src.zip解壓以后,導入到Sublime閱讀代碼。

修改完smali源碼后,使用apktool重新打包生成apk

運行如下命令來打包:

$ apktool b xxx.apk

使用sign.jar進行簽名

運行如下命令來簽名:

$ java -jar sign.jar xxxx.apk
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容