反編譯工具篇 2.1) jeb 爆錘 jadx 和 GDA | jeb 反混淆 解密字符串


反編譯工具篇 2.1) jeb 爆錘 jadx 和 GDA

1.反混淆優化 字符串解密(jeb的靈魂能力)

這里什么是靈魂能力。

我想起一句很有逼格的話

當你出場的時候,所有人都顯得不過如此。

大家好,我是王鐵頭 一個乙方安全公司搬磚的菜雞
持續更新移動安全,iot安全,編譯原理相關原創視頻文章
視頻演示:https://space.bilibili.com/430241559


正文開始:

很多時候我用jeb分析apk的代碼,就是為了jeb的反混淆優化。

這里,正常有字符串的代碼是這樣的

A方法(明文字符串,其他參數)

被加固殼或者其他源碼混淆工具,混淆過的代碼就是這樣

A方法(字符串解密方法(密文字符串),其他參數)

普通反編譯工具在字符串反混淆這塊,不咋行。

普通反編譯工具遇到字符串加密后,是這樣的

原方法   : A方法(字符串解密方法(密文字符串),其他參數) 
反編譯后 : A方法(字符串解密方法(密文字符串),其他參數)

吊打友商的優秀反編譯工具是這樣的

原方法   : A方法(字符串解密方法(密文字符串),其他參數) 
反編譯后 : A方法(明文字符串,其他參數)

當然這里大佬們直接去 hook A方法,直接查看函數參數也是可以的。

但是,如果一眼看過去,都是這種函數,你也一個一個hook查看參數嗎,不累嗎

jeb吊打友商的反混淆優化

jeb jadx 反混淆字符串對比

jeb GDA 反混淆字符串對比

這里既然是JEB的靈魂能力,那當然是來幾個友商,錘幾個友商


這里為了更好的展示 jeb的靈魂反混淆能力,我還專門寫了個apk 給大佬們看的更清楚些

字符串反混淆demo

下圖這樣的場景 你想不想 編譯器優化成這個樣子哪

字符串解密優化 demo

這個場景,一般情況下,上JEB就可了。

來看一下jeb反混淆后的效果

jeb反混淆 解密字符串

下圖是jeb的命令行輸出,可以看到這里jeb成功解密了3個字符串

jeb命令行輸出的相關解密日志

jeb輸出解密字符串

開不開心,驚不驚喜。

在看看另外兩個友商:

GDA出來被錘

GDA反混淆 反編譯效果

這里我很好奇 str_wang 原來的字符串在哪里, 看這個反編譯把我搞懵了

我不僅不能一眼看出,被加密的字符串,解密之后是個啥。

我連開發者咋寫的源碼我都不知道了。。。

這里 猜測是作者做新版本太累了,GDA 3.85就沒有這些錯誤,反編譯后可讀性很強

GDA反編譯代碼

不過依然沒有解決核心問題,還是不能一眼看出解密后的明文是啥


不同於 jadx , GDA這里對解密字符串還是提供了支持的。

網址:https://zhuanlan.zhihu.com/p/250771438

GDA批量解密字符串

但是,這里搞起來有點麻煩,要手動定位解密函數和引用的密文,

我這種能躺着絕對不坐着的人,當然是懶的搞。

在遇到統一的字符串解密函數,就是一個apk里面,一個統一的方法,負責字符串的解密,這樣的情況下,GDA這種方式還是蠻好用的。

但是如果碰到dexguard那種,一個類一個字符串解密函數,整個apk可能有幾百個,幾千個字符串解密函數。

這種情況下,如果寫GDA字符串解密腳本,時間成本就會變的非常大。

遇到這種情況,強烈建議大佬們直接上 jeb 或者 simplify這種反混淆工具。

jadx-gui出來被錘

jadx 沒有解密字符串功能

jadx-gui這里把中間變量搞沒了,鏈式調用讓代碼看起來更精煉,緊湊,但是並沒有解決核心問題。

我還是不能一眼看出,被加密的字符串,解密之后是個啥。


持續更新移動安全,iot安全,編譯原理相關原創視頻文章
視頻演示:https://space.bilibili.com/430241559

相關資料關注公眾號 回復 工具 下載:
移動安全王鐵頭


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM