[tool] apk反編譯工具 jadx 使用
阿新 • • 發佈:2018-12-22
#[tool] apk反編譯工具 jadx 使用
##一.下載
1.工具下載
下載地址: https://bintray.com/skylot/jadx/releases#files(但是可能不是最新的)
2.原始碼下載
下載地址: https://github.com/skylot/jadx
##二. 原始碼編譯
下載下來之後是原始碼後解壓,進入到目錄中執行命令:
git clone https://github.com/skylot/jadx.git
cd jadx
./gradlew dist
主要是拉下來jadx的git主工程,然後跑對應的gradle task。之後會生成執行指令碼,多出了build目錄:
生成了可執行的指令碼 jadx,jadx-gui等:
##三. 使用
- 可以將build下的jadx資料夾拷貝至別處使用,執行jadx-gui:
[email protected]:~/dev_tools/jadx-master/build/jadx/bin$ ./jadx-gui
gui開啟後可以選擇需要反編譯的apk:
找到apk點選確定之後反編譯需要一定時間,耐心等待,之後即可以顯示反編譯後的程式碼,如下是反編譯豌豆莢apk後的結果:
- 同樣可以使用命令直接反編譯目的地址的apk:
./jadx-gui ~/下載/Wandoujia_224660_web_inner_referral_binded.apk
##三. 優點:
-
方便的搜尋功能(支援全域性類,方法,text查詢):
-
可以匯出gradle工程,使用Itellij或AS看程式碼
File->save as gradle project 選擇一個新資料夾(最好新建空資料夾,生成的檔案在選擇的資料夾中)
生成後即可用IDE檢視程式碼了:
##四. 出錯處理
[email protected]:~/dev_tools/jadx-master/build/jadx/bin$ ./jadx-gui Exception in thread "main" java.lang.UnsupportedClassVersionError: jadx/gui/JadxGUI : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:803) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
jdk版本不對,jdk版本改為1.8就ok了