andriod apk反編譯工具之簡單使用: apktool+dex2jar+jd-gui 與 jadx

apktool+dex2jar+jd-gui:

一、簡介

在這裏插入圖片描述

二、 安裝工具

  • dex2jar最新版: 把dex文件轉成jar文件下載地址:百度網盤源網站
  • jd-gui: 這個工具用於將jar文件轉換成java代碼下載地址:源網站

備註: dex2jar的低版本如2.0可能會報錯: Detail Error Information in File ./classes-error.zip

三、 反編譯源碼

1. 新建文件夾 project_dir

2. 從 dex2jar 文件夾中複製兩個文件到 project_dir 文件夾內

  • d2j_invoke.sh
  • d2j-dex2jar.sh
  • lib (文件夾)

3. 從apk文件複製 classes.dex 文件 到 project_dir 文件夾內

  • 將apk 文件的 .apk 後綴改成 .rar ; 並解壓;
  • 從解壓文件夾中複製 classes.dex 到 project_dir 文件夾內

4. 終端輸入命令得到 classes-dex2jar.jar 文件

bash d2j-dex2jar.sh classes.dex

5. 用JD-GUI.app 反編譯出源代碼

  • 用JD-GUI.app 打開 classes-dex2jar.jar 文件
    在這裏插入圖片描述
  • 源代碼保存成壓縮包 classes-dex2jar.jar.src.zip
    在這裏插入圖片描述
  • 解壓 classes-dex2jar.jar.src.zip 即可得源代碼的文件夾

四、文章參考

  1. https://www.52pojie.cn/forum.php?mod=viewthread&tid=822434
  2. https://www.jianshu.com/p/2bbe7112f940

—————————————————————————————————————————

jadx:更好的Android反編譯工具

轉自原文: https://liuzhichao.com/2016/jadx-decompiler.html

在jadx出現之前,我一般是使用apktool和dex2jar這兩個Android反編譯工具。這兩個工具也有不同的側重點,如果只是想拿到apk裏的一些圖片或其他資源或是查看一下佈局的layout文件,直接使用apktool -d xxx.apk即可。如果是要查看一下代碼實現,就使用d2j-dex2jar.sh反編譯一下apk然後使用jd-gui工具查看反編譯後的.jar文件。

apktool+dex2jar+jd-gui一直是一個比較流行的Android反編譯組合。 在使用過jadx之後覺得jadx相比上面的組合具有如下兩個優點: * 可以直接反編譯出.java文件 * 查看源碼時直接顯示資源名稱,而不是像jd-gui裏顯示的資源ID

一、安裝jadx

編譯安裝

git clone https://github.com/skylot/jadx.git
cd jadx
./gradlew dist

然後將build/jadx/bin加入到環境變量。

二、使用jadx

jadx也有GUI,直接雙擊bin目錄下的jadx-gui,然後選擇要反編譯的apk即可;
如果要保存源碼,選擇File->Save ALL即可保存文件,然後就可以導入Android Studio等IDE中。 我們也可以直接使用命令行反編譯apk文件:

使用命令行打開

反編譯apk

jadx  ***.apk

反編譯dex文件

jadx -d out classes.dex  #直接輸出.java文件到out目錄

使用GUI打開

  • 先輸入 jadx-gui
  • 選擇 apk或dex文件
  • save all(保存全部)
  • 選擇保存的文件夾

備註:

  • 在反編譯較大的apk時,如果遇到jadx-jui卡頓和假死的情況,可適當優化jvm相關參數, 我直接在~/.bash_profile中加上了如下語句:
export JVM_ARGS="-Xmx4096m -XX:MaxPermSize=1024m"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章