APP測試必備工具總結
0x01 抓包
HTTP請求類
- Fiddler/Charles

最常見的代理抓包工具,這兩個就不用多說了吧?應該都知道了。
- ProxyDroid
強制全局代理工具。
- PacketCapture/HTTPCanary
VPN抓包工具。
- JustTrustMe

基于Xposed寫的反SSL Pinning工具。
- ObjectionUnpinningPlus
瘦蛟舞寫的一個Frida腳本,功能與JustTrustMe相同,但因為Frida的特殊性,可以隨時修改內容,面對一些特殊情況時會很方便。
非HTTP請求類
- WireShark
非HTTP的還是使用WireShark這類工具方便些,通常需要配合反編譯找到協議的組成方式。建議使用方式:電腦端開熱點,然后指定用于創建熱點的虛擬網卡,再把手機連上熱點開始抓包。
- Tcpdump
在使用沒有無線網卡的電腦或無法開熱點的情況下可以直接在手機上運行Tcpdump然后導出文件在電腦端WireShark中打開,與直接使用WireShark抓包效果相同。
0x02 破解加密參數
Java層
- Jadx

一個非常方便的Java反編譯工具,一般用到的功能主要是搜索、反混淆、查找方法調用這幾樣,性能和反編譯出來的代碼效果都比使用dex2jar+jd-gui之類的方式好。
- Xposed

Xposed框架大家應該都知道吧?這是一個功能十分強大的Hook框架,很多逆向工具都是基于它來寫的,有特殊需求時也可以自己寫一個模塊使用。
- Frida

相對于Xposed而言,Frida算是一個在安全圈外沒有那么高知名度的Hook工具了,但它的功能在某些方面要比Xposed強得多(當然也有缺點),舉個常用到的例子:用它來Hook So庫中的函數~。
- inspeckage(必備常用工具之一)

這是一個基于Xposed寫的動態分析工具,Hook了大量逆向時常見的方法,下面是它的GitHub中給出的列表:
Shared Preferences (log and file); Serialization; Crypto; Hashes; SQLite; HTTP (an HTTP proxy tool is still the best alternative); File System; Miscellaneous (Clipboard, URL.Parse()); WebView; IPC; Hooks (add new hooks dynamically)
注意它Hook列表中有Crypto和Hash,這兩個類型在破解大部分APP的加密參數時可以說是降維打擊,因為大部分APP的加密參數都逃不過MD5、SHA1、AES、DES這四種,而它們都被Hook了(不僅僅只有這四種)。基本上就是打開Inspeckage再打開它的Web端,然后打開指定的APP操作一下,一個搜索,加密參數就原形畢露了。
- DeveloperHelper
一個基于Xposed寫的輔助工具,通常會用到的功能是查看Activity名、查看加固類型、查看Activity結構、自動脫殼這幾個。
- UCrack
一個基于Xposed寫的輔助工具,集成了自動網絡抓包、網絡堆棧爆破、文件日志、WebView調試環境、自動脫殼、Native函數注冊監控、記錄程序自殺堆棧等功能,這個工具是我之前偶然發現的,還沒有使用過,有興趣的同學可以用用看。
C/C++層(So庫)
- IDA

非常強大的反匯編和動態調試工具,強烈不推薦使用NSA開源的Ghidra,效果跟IDA比起來差太多了。IDA可以在反匯編之后將匯編代碼轉成偽C代碼,并且能在手機端啟動了服務端之后注入APP進程使用動態調試功能。
- Frida
上面講過了
- 有殼(加固)的
- DeveloperHelper
上面講過了
- UCrack
上面講過了
- FDex2
其實就是把幾行代碼包了一層而已,原理就是Hook ClassLoader的loadClass方法,反射調用getDex方法取得Dex(com.android.dex.Dex類對象),再將里面的dex寫出。