
书: 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),最后自动化脚本’。”