Frida 笔记 - Android 篇 (一)
前言
相信不少小伙伴对 Xposed、Cydia Substrate、Frida 等 hook 工具都有所了解, 并且用在了自己的工作中, 本文主要分享 Frida 的环境配置以及基本使用, 以及相关功能在日常开发调试带来的帮助
配置 Frida 的环境
Frida 的环境安装可以参考官方文档, 或者参考网上分享的实践, 使用较为稳定的特定版本
基本使用
Frida 的开发环境, 可以参考作者在 github 上的 exmaple
配置完成后, 使用对应函数就会有相应代码提示及函数说明
JavaScript API 可以参考官方文档说明, 了解基本使用
Hook 类的构造函数
Hook 类的普通函数
修改类/实例参数
构造数组
静态函数主动调用
动态函数主动调用
定义一个类
打印函数调用堆栈
枚举 classLoader
枚举类
加载外部 dex 并通过 gson 打印对象
使用场景
绕过证书绑定、校验, 进行埋点请求验证
SDK 开发过程中, 一般客户反馈问题都需要使用客户的 app 进行问题的复现及排查, 此时通过 frida 获取运行时特定函数的参数信息及返回信息, 能有效缩短与客户的沟通时间, 该场景使用 objection 最为方便
新客户在集成前, 希望看到 SDK 能够提供的效果, 通过 frida 加载 dex 并完成初始化, 可以提前发现兼容性问题
当碰到集成早期版本 SDK 的应用反馈异常, 通过类似 Tinker 热修复的思想替换 SDK 验证是否已经在当前版本修复
开放 SDK 相关函数远程 rpc 调用, 用于测试埋点的协议等场景
外链地址
Frida 官方文档: Installation
Frida 作者提供的 example github 地址: GitHub - oleavr/frida-agent-example: Example Frida agent written in TypeScript
JavaScript API 官方文档: JavaScript API
功能介绍中所使用 demo: GitHub - growingio/growingio-sdk-android-autotracker: GrowingIO Autotracker 具备自动采集基本的用户行为事件,比如访问和行为数据等。目前支持代码埋点、无埋点、可视化圈选、热图等功能。
r0capture 安卓应用层通杀脚本 github 地址: GitHub - r0ysue/r0capture: 安卓应用层抓包通杀脚本
objection github 地址: GitHub - sensepost/objection: 📱 objection - runtime mobile exploration
版权声明: 本文为 InfoQ 作者【GrowingIO技术专栏】的原创文章。
原文链接:【http://xie.infoq.cn/article/e3f4b8dfe285b834bd01d4feb】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论