這個反編譯工具真心強大!Java 開發(fā)神器!!!
大家好,我是cxuan,今天給大家介紹一個反編譯工具,堪稱神器!!!

jadx 是一款功能強大的反編譯工具,使用起來簡單方便(拖拽式操作),不光提供了命令行程序,還提供了 GUI 程序。一般情況下,我們直接使用 GUI 程序就可以了。
jadx 支持 Windows、Linux、 macOS,能夠幫我們打開.apk, .dex, .jar,.zip等格式的文件
就比如說我們需要反編譯一個 jar 包查看其源碼的話,直接將 jar 包拖入到 jadx 中就可以了。效果如下:

再比如說我們想看看某個 apk 的源碼,我們拿到 apk 之后直接拖入進 jadx 中就可以了。效果如下:

jadx 安裝
jadx 是一款開源軟件,是可以免費使用的。我們可以在 jadx 的項目主頁下載 jadx 最新版。
項目地址:https://github.com/skylot/jadx 下載地址:https://github.com/skylot/jadx/releases/tag/v1.3.1
我們直接下載第一個即可。

下載之后,解壓下載好的 jadx 壓縮文件后進入 bin 目錄即可找到可執(zhí)。

jadx:命令行版本 jadx-gui:圖形操作界面版本
你也可以自己克隆源碼,本地編譯,這也是我比較推薦的方式。
git?clone?https://github.com/skylot/jadx.git
jadx 由 Java 語言編寫,使用 Gradle 進行構(gòu)建。克隆到本地之后,你可以直接使用 Gradle 命令進行構(gòu)建:
cd?jadx
#?Windows?平臺使用?gradlew.bat?而不是?./gradlew
./gradlew?dist
你也可以直接使用 IDE 打開,然后像運行普通 Java 程序那樣使用它:

jadx 使用
反編譯文件
通過 File -> Open files... 打開需要反編譯的文件或者直接將文件拖拽進 jadx 中就可以了。

從上圖可以看出,jadx 支持.apk, .dex, .jar,.zip,.class等格式的文件。
搜索功能
jadx 自帶強大的搜索功能,支持多種匹配模式。
通過 Navigation 即可打開搜索功能,我們可以選擇搜索指定的類,方法,屬性,代碼,文件,甚至是注釋。


查看類,變量或者方法使用情況
對于某個類、變量或者方法,我們還可以查看哪些地方使用了它。
直接選中對應(yīng)的類、變量或者方法,然后點擊右鍵選擇 Find Usage 即可。

很快,jadx 就會幫你找出整個項目有哪些地方使用了它。

添加注釋
我們還可以自定義注釋到源代碼中。
選中對應(yīng)的位置之后,點擊右鍵選擇 Comment 即可。

反混淆
一般情況下,為了項目的安全,我們在打包發(fā)布一個 apk 之前都會對其代碼進行混淆加密比如用無意義的短變量去重命名類、變量、方法,以免代碼被輕易破解泄露。
經(jīng)過混淆的代碼在功能上是沒有變化的,但是去掉了部分名稱中的語義信息。
為了代碼的易讀性,我們可以對代碼進行反混淆。
在 jadx 中,我們通過 Tools -> Deobfuscation 即可開啟反混淆功能。

