Awesome
FridaContainer
FridaContainer 整合了网上流行的和自己编写的常用的 frida 脚本,为逆向工作提效之用。
npm build 后,用 Pycharm 打开编辑,可以看到 frida api 代码补全提示。
1. 编译和使用
1.1 源码直接使用【推荐】
需要根据自己的需求修改 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
1.2 作为 npm node 模块使用
作为 npm ndoe 使用在新版本中会有问题,具体原因目前还没有时间看,建议用上面的源码推荐方式使用。
支持作为 npm node 模拟直接嵌入 typescript 项目中。
1.3 赘述几句我当前的使用习惯
- 使用
pycharm
做开发(其他 IDE 也一样) - clone 仓库后,在项目根目录创建 agent 目录(已加入 gitignore)在这里开发业务脚本
- 修改
index.ts
引入 agent 目录下的类 - 单开一个 shell 跑
npm run watch
实时编译脚本 - 不断修改 index 或 agent 的脚本,注入、测试,达到目的。
2. 功能简介
本仓库会持续补充更新。
2.1 Android
- 一键去常规反调试
- 打印堆栈
- 通用的 Dump dex 方法
- 过 ssl pinning (新增 cronet bypass)
- Hook JNI
- Java methods trace
- JNI trace
- frida multi dex hook(java use)
- ......
2.2 iOS
- 便捷的获取函数地址
- 模糊查找函数地址
- 打印堆栈
- dump ui 结构
- 常见数据类型转换及打印
- ......
2.3 FCCommon 跨平台通用方法
方法 | 说明 |
---|---|
showStacksModInfo | 打印指定层数的 sp,并输出 module 信息 (如果有) |
getModuleByAddr | 根据地址获取模块信息 |
getLR | 获取 LR 寄存器值 |
dump_module | dump 指定模块并存储到指定目录 |
3. 感谢
[todo 引用参考]
由于引用较多,且时间比较久了,也很难都列出来,以后慢慢列举吧。 感谢无私的代码分享者们。
<details> <summary>感谢参考与引用</summary> </details>