逆向工具清单
抓包
Charles
https://www.charlesproxy.com/
mac端很舒服輕松的小花瓶,抓應用層Http(s)請求,是付費的,可尋找破解版
Fiddler
windows端的“Charles", 抓應用層Http(s)請求。但不推薦使用,因為它無法導入客戶端證書(p12、Client SSL Certificates),對于服務器校驗客戶端證書的情況無法Bypass
WireShark
https://www.wireshark.org/
會話層抓包很方便,通常需要配合反編譯找到協議的組成方式。
建議使用方式:電腦端開熱點,然后指定用于創建熱點的虛擬網卡,再把手機連上熱點開始抓包
TcpDump
適用于會話層抓包,在使用沒有無線網卡的電腦或無法開熱點的情況下可以直接在手機上運行Tcpdump然后導出文件在電腦端WireShark中打開,與直接使用WireShark抓包效果相同
Postern
Android系統里一款非常流行的代理/ 虛擬專用網絡管理程序,是一個全局代理工具。支持的代理協議有:
HTTPS/HTTP、SSH隧道、Shadowsocks、SOCKS5代理等
Jnettop
實時查看流量走勢和對方IP地址,直觀生動
ProxyDroid
強制全局代理工具,適用于常規charles等工具抓不到包的情況。原理是通過iptables將所有TCP連接重定向到代理服務器上,強制性地讓APP的HTTP請求通過代理。
PacketCapture
VPN抓包工具,原理是在本地創建一個VPN,使所有請求都從VPN中流過,從而實現不適用代理抓包的效果
HTTPCanary
VPN抓包工具,原理是在本地創建一個VPN,使所有請求都從VPN中流過,從而實現不適用代理抓包的效果
BrupSuite
一個較為專業的抓包工具
Hping
面向命令行的用于生成和解析TCP/IP協議數據包匯編/分析的開源工具。它支持TCP,UDP,ICMP和RAW-IP協議,具有跟蹤路由模式
?
反編譯
AndroidCrackTool For Mac
https://github.com/Jermic/Android-Crack-Tool
mac下Android逆向神器,實用工具集
AndroidCrackTool集成了Android開發中常見的一些編譯/反編譯工具,方便用戶對Apk進行逆向分析,提供Apk信息查看功能.目前主要功能包括(詳細使用方法見使用說明):
- 反編譯APK
- 重建APK
- 簽名APK
- 優化APK
- DEX2JAR(APK2JAR)
- JDGUI
- 提取DEX
- 提取XML
- Class to smail
- Apk信息查看
- Unicode轉換
apktool
https://github.com/iBotPeaches/Apktool
一款功能強大且操作簡單的apk反編譯工具,能夠將反編譯的apk文件保存到同名目錄中,還能幫用戶將反編譯的dex、odex 重新編譯成dex文件
JEB
JEB是一個功能強大為安全專業人士設計的安卓應用程序反編譯工具,用于逆向工程或者審計apk文件
dex2jar
https://github.com/pxb1988/dex2jar
將安卓可執行文件dex轉為jar包
jd-gui
https://github.com/java-decompiler/jd-gui
可將安卓可執行文件dex轉為jar包,并提供可視化代碼閱讀能力
Jadx/Jadx-gui
https://github.com/skylot/jadx
非常方便的Java反編譯工具,一般用到的功能主要是搜索、反混淆、查找方法調用這幾樣,性能和反編譯出來的代碼效果都比使用dex2jar+jd-gui之類的方式好。
wxUnpacker
github上牛人寫的小程序反編譯工具 , 現已被封,但有其他fork版本
https://github.com/geilige/wxappUnpacker
ByteViewer
https://github.com/Konloch/bytecode-viewer
支持apk、dex等多種文件格式的反編譯
?
Hook
Xposed
https://github.com/rovo89/Xposed
功能十分強大的Hook框架,很多逆向工具都是基于它來寫的,有特殊需求時也可以自己寫一個模塊使用
JustTrustMe
https://github.com/Fuzion24/JustTrustMe
基于Xposed寫的可以繞過SSL Pinning檢測的工具
Inspeckage
https://github.com/ac-pm/Inspeckage
基于Xposed寫的動態分析工具,Hook了大量逆向時常見的方法,如Crypto、Hash,這兩個類型在破解大部分APP的加密參數時可以說是降維打擊,因為大部分APP的加密參數都逃不過MD5、SHA1、AES、DES這四種,而它們都被Hook了(不僅僅只有這四種)。基本上就是打開Inspeckage再打開它的Web端,然后打開指定的APP操作一下,一個搜索,加密參數就原形畢露了
Frida
https://github.com/frida/frida
作為Hook工具,相對于Xposed而言Frida的受歡迎度不斷上升,它的功能在某些方面要比Xposed強得多。
它是一種動態插樁工具,可以插入一些代碼到原生app的內存空間去,動態地監視和修改其行為,可對內存空間里的對象方法實現監視、修改甚至替換
VirtualAPP
它通過代理常用系統服務的方式,在系統服務層與應用層之間添加了一層虛擬空間,從而允許在不安裝應用的情況下運行應用。特別說明的是VirtualApp本身并不需要root權限。利用VirtualApp提供的虛擬空間可以做很多事情。如應用啟動時,會初始化Application,此時會在應用所在的進程中調用bindApplication()。而VirtualApp重寫了相關代碼,那么我們就可以在把注入代碼的窗口放在這里,從而實現應用啟動時,加載外部的hook代碼。
Objection
https://github.com/sensepost/objection
Frida的集成化工具,簡單易用
脫殼
Frida
如上介紹
dexDump
號稱“葫蘆娃”,Frida集成工具,實現一鍵脫殼
Fart
https://github.com/hanbinglengyue/FART
內存中DexFile結構體完整dex的dump進行脫殼
DeveloperHelper
基于Xposed寫的輔助工具,常用于查看Activity名、查看加固類型、查看Activity結構、自動脫殼。
UCrack
基于Xposed寫的輔助工具,集成了自動網絡抓包、網絡堆棧爆破、文件日志、WebView調試環境、自動脫殼、Native函數注冊監控、記錄程序自殺堆棧等功能
調試
Postman
https://www.postman.com/
請求接口調試,支持cURL導入
adb
https://developer.android.com/studio/?gclid=Cj0KCQjwub-HBhCyARIsAPctr7yEAxcKDru9JQeYIFnTKmVB9bMryV03LcxniCxTQQNHo-LY4UgIS38aAjLdEALw_wcB&gclsrc=aw.ds
安卓調試調,逆向中用于軟件安裝、服務啟動、動態調試等,用法相當于Linux shell
IDA Pro
強大的調試工具,逆向中常用于so動靜態分析,幫助破解Native加密邏輯
DDMS
Dalvik Debug Monitor Service,是 Android 開發環境中的Dalvik虛擬機調試監控服務,它提供查看線程和堆信息、logcat、進程、廣播狀態信息等功能
AndBug
腳本式Android動態調試器,但不支持單步調試Android程序,并且無法對自定義的方法設置斷點,因此在使用過程中可能會感到諸多不便,可以根據實際需要使用它
APPium
用于自動化 iOS 手機、 Android 手機和 Windows 桌面平臺上的原生、移動 Web 和混合應用。核心是一個是暴露 REST API 的 WEB 服務器。它接受來自客戶端的連接,監聽命令并在移動設備上執行,答復 HTTP 響應來描述執行結果
庫
xpath
便捷易用的HTML解析庫
fake_useragent
User-Agent動態生成,池化技術,可有效避免檢測UA的反爬蟲策略
?
Linux
cURL
利用URL語法在命令行下工作的文件傳輸工具
openssl
ssl類命令行工具,逆向中常用于Android7.0以上證書文件生成hashcode,證書用hashcode重命名后安裝到系統目錄里面。
openssl x509 -subject_hash_old -in <Certificate_File>mprop
可修改安裝系統屬性ro.debuggable,使得app變為可調試狀態
/data/local/tmp/mprop setprop ro.debuggable 1寫在最后
以上為筆者目前收藏和使用到的逆向工具,有更好用的神器和工具請在留言區補充~
總結
- 上一篇: Frida 基础操作2
- 下一篇: 关于 adb shell error: