反編譯工具篇 GDA Jadx-Gui Jeb的對比 Jadx-Gui優點
00 前言:
首先,這只是我對自己常用的幾個反編譯器的對比,帶有強烈的主觀傾向。
然后,我對這幾個工具的作者都十分尊重,感恩他們寫出了這么好的工具,這里並沒有拉一個打一個,或者貶低誰的意思,我覺得都是大佬。
至少人家編譯原理的熟悉程度,不是我不能比的,我還要再學挺久才能到達人家那個高度。
還有,對比的只是我自己經常用的功能,我並沒有像素級的使用每個功能,並詳細對比,結論也會一定程度的偏頗,大家這里做個參考就好。
這里,我只是站在一個普通使用者的角度。去開箱做對比,沒人給我塞錢讓我說好話或說壞話,畢竟我也沒啥知名度,只是個小透明。
大家好,我是王鐵頭 一個乙方安全公司搬磚的菜雞
持續更新移動安全,iot安全,編譯原理相關原創視頻文章
視頻演示:https://space.bilibili.com/430241559
這里主要登場的工具版本號是
GDA3.95 免費版 (收費版我沒用過,想着后續跟工地申請一下,買一年用下)
jadx-gui 1.2.0
jeb pro 3.19 (實測 jeb pro4.3跟這一版 區別不大)
工具截圖
這里我經常用的反編譯工具主要有3個 GDA jadx-gui Jeb 這里先上一下工具截圖

上圖有的工具不是最新版,主要是因為懶得去更新,而不是因為我選的這個版本版本穩定啊之類的。
下面用網上的一個apk樣本,和我自己寫的一個apk樣本, 簡單說一下這三個工具的優缺點。
01 apk樣本相關
樣本1
來源:
https://www.52pojie.cn/thread-311989-1-1.html
樣本1 是被 dexguard加固殼加固過的樣本,dexguard在國內用戶不多,是歪果仁寫的加固殼, 這個加固殼的特點就是,java層混淆很強,比國內的很多殼強多了。
這個樣本是14年的,混淆不是那么變態,這兩年的dexguard真是讓人看了就想直接回收站。

樣本2
來源:一個不願透漏姓名的某鐵頭 自己寫的
某鐵頭自己寫的這個apk,寫了一個字符串加密的方法,並且進行了調用,就是為了讓大佬們對比某工具,反混淆優化的效果。

之所以選擇這兩個樣本,是為了更好的展示這幾個反編譯器的優缺點。
02 JADX-GUI 登場
github地址:https://github.com/skylot/jadx

編譯好的release版本地址: https://github.com/skylot/jadx/releases
當前演示版本:1.2.0
Jadx-Gui的優點
1.反編譯的代碼可讀性強
1.1 有調試信息的apk反編譯對比:
首先看源代碼



在有調試信息的apk里, 完美還原了所有的變量名。
看完smali, 看看反編譯的java代碼。

這里看看友商的表現
1.1.1 jeb出來挨錘
首先是 debug版帶調試信息apk Jeb 和 Jadx反編譯的對比
這里可以看到,參數和一個局部變量的名字並沒有完美還原。

行吧,下一個。
行吧 這一場 jadx-gui 成功 ko Jeb .
1.1.2 GDA出來挨錘

這里e2 我猜測作者 可能是考慮到多重異常嵌套的情況下
為了區分,所以加了一個隨機數?
但是這里類型都錯了還是比較減分的。
同樣的問題,換到3.85就沒有了, 這里想着,可能是GDA作者做新功能 類似frida 支持啊之類的太累,所以出了bug?

行吧 下一個吧。
這一場 jadx-gui 成功 ko GDA .
1.2 無調試信息 被混淆過的apk反編譯對比:
如果沒有調試信息,又會咋樣呢?
這里找了一個用Proguard混淆過代碼,並且刪除過.source信息的樣本。


這里看看jadx對方法體對代碼的還原。

這里可以看到,在沒有任何調試信息,還被Proguard混淆過后,Jadx自己實現了一套重命名的規則。
簡直是福音一樣,代碼變得清晰可見,吊打友商。
看看友商是啥樣
1.2.1 GDA和JEB同時被錘。

這里GDA和jeb兩個友商恢復的代碼,可讀性都不咋樣
不管是 p0 p1 p2 還是 arg8 arg10 arg11
可讀性都不強,自己一個一個改 可太累了
2. 字符串 搜索簡單便捷 展示信息全

2.1 GDA出來挨錘

這里GDA搜索字符串 詳情,只展示了字符串信息,沒展示引用代碼。
字符串所在的方法,對應的包名啊類名啊,都沒有展示。
這里字符串少還好,如果十多個地方引用到了,我不得看看包名,類名,引用代碼,然后定位我想要分析的位置嗎。
害,下一個。
2.2 JEB出來挨錘

查看引用之后

JEB這里搜索字符串這個步驟 就比較麻煩了,
多了一個查看交叉引用的操作,把操作分解成了2個操作。
而且詳情展示這里,展示的也不是java代碼 ,而是smali, 咋,是讓我人肉翻譯成java嗎?
行吧,下一個
3. 免費
另外兩個工具,JEB Pro 和 GDA Pro都是收費的
這個沒啥說的,恰飯挺正常的。
jadx-gui 不要錢就是香。
持續更新移動安全,iot安全,編譯原理相關原創視頻文章
視頻演示:https://space.bilibili.com/430241559
相關資料關注公眾號 回復 工具 下載:

