FridaContainer 整合了网上流行的和自己编写的常用的 frida 脚本,为逆向工作提效之用。
npm build 后,用 Pycharm 打开编辑,可以看到 frida api 代码补全提示。
需要根据自己的需求修改 index.ts,编写实际操作内容。 使用 index.ts 入口方式可以按照以下方式编译和调用。
$ git clone https://github.com/deathmemory/FridaContainer.git
$ cd FridaContainer/
$ npm install
## after edit index.ts
$ npm run build
$ frida -U -f com.example.android --no-pause -l _fcagent.js
- 开发实时编译
$ npm run watch
- Setup for android
为 Andriod 手机初始化环境以应用第三方库(gson)
$ python setupAndroid.py
支持作为 npm node 模拟直接嵌入 typescript 项目中。
- 使用
pycharm
做开发(其他 IDE 也一样) - clone 仓库后,在项目根目录创建 agent 目录(已加入 gitignore)在这里开发业务脚本
- 修改
index.ts
引入 agent 目录下的类 - 单开一个 shell 跑
npm run watch
实时编译脚本 - 不断修改 index 或 agent 的脚本,注入、测试,达到目的。
本仓库会持续补充更新。
- 一键去常规反调试
- 打印堆栈
- 通用的 Dump dex 方法
- 过 ssl pinning (新增 cronet bypass)
- Hook JNI
- Java methods trace
- JNI trace
- frida multi dex hook(java use)
- ......
- 便捷的获取函数地址
- 模糊查找函数地址
- 打印堆栈
- dump ui 结构
- 常见数据类型转换及打印
- ......
方法 | 说明 |
---|---|
showStacksModInfo | 打印指定层数的 sp,并输出 module 信息 (如果有) |
getModuleByAddr | 根据地址获取模块信息 |
getLR | 获取 LR 寄存器值 |
dump_module | dump 指定模块并存储到指定目录 |
[todo 引用参考]
由于引用较多,且时间比较久了,也很难都列出来,以后慢慢列举吧。 感谢无私的代码分享者们。