
书: https://pan.baidu.com/s/1XqKbodMZYD_Bu2f_E1ghxw?pwd=y5p9
笔记如下:
- “Frida的核心是‘动态插桩’,通过JavaScript注入目标进程,实时修改函数逻辑。”
- “Frida脚本三要素:
Interceptor
(函数拦截)、Memory
(内存操作)、API
(调用系统函数)。” - “
frida -U -f com.app.name -l script.js
启动注入,-U
表示USB设备,-f
指定目标应用。” - “Java层Hook:
Java.perform()
包裹代码,Java.use()
获取类实例,overload()
处理重载方法。” - “Native层Hook:
Module.findExportByName()
定位SO库函数,NativePointer
读写内存。” - “
Interceptor.attach()
拦截函数调用,onEnter
获取参数,onLeave
修改返回值。” - “
Objection
是Frida的CLI工具,android hooking list classes
快速枚举类和方法。” - “绕过SSL Pinning:Hook
X509TrustManager
或OkHttpClient
的证书验证逻辑。” - “内存搜索:
Memory.scan()
扫描特征码,Memory.readByteArray()
提取数据。” - “RPC远程调用:
frida-compile
打包脚本为Node.js模块,通过recv()
/send()
与Python交互。” - “抓包利器组合:
Burp Suite
(HTTP/HTTPS代理)+Frida
(绕过证书校验)+Wireshark
(原始流量)。” - “
android sslpinning disable
(Objection命令)一键绕过常见SSL锁定方案。” - “Hook加密函数:定位
MessageDigest.update()
或自定义native
函数,打印输入输出。” - “反调试对抗:Hook
android.os.Debug.isDebuggerConnected()
返回false
。” - “
frida-trace
快速追踪函数调用:frida-trace -U -i "open" com.app.name
监控文件打开。” - “持久化注入:修改
/data/local/tmp/frida-server
为自启动服务(需root)。” - “
WallBreaker
可视化工具动态分析内存对象,替代console.log
调试。” - “Xposed对比Frida:前者需重启生效,后者动态注入但依赖运行环境。”
- “实战案例:Hook微信的
EnMicroMsg.db
密钥生成逻辑,解密聊天数据库。” - “逆向原则:‘先静态分析(Jadx/Ghidra),再动态验证(Frida),最后自动化脚本’。”