## frida-skeleton ![Language](https://img.shields.io/badge/Language-Python-blue) ![Author](https://img.shields.io/badge/Author-Margular-orange) ![GitHub stars](https://img.shields.io/github/stars/Margular/frida-skeleton.svg?style=flat&logo=github) ![Version](https://img.shields.io/badge/Version-V3.3-red) ![Time](https://img.shields.io/badge/Join-20201221-green) ### 简介 `frida-skeleton`是基于frida的安卓hook框架,提供了很多frida自身不支持的功能,将hook安卓变成简单便捷,人人都会的事情,主要有: - 根据正则表达式批量hook安卓应用,支持多线程,可同时hook多个设备互不影响 - 针对不同的应用可以同时加载不同的hook脚本,且支持优先级配置 - 自动将手机上的所有TCP流量重定向到PC上的抓包工具如BurpSuite,无需手动配置,且自动绕过证书绑定机制 - 丰富的日志记录功能,让你的hook历史永不丢失 - 自动识别当前使用的frida版本并下载对应版本的frida-server到/data/local/tmp运行 - 提供封装好的实用API以减少日常工作中的重复劳动 ### 上手指南 ###### 开发前的配置要求 - Python3 ###### 安装步骤 1. 克隆本项目到本地 ```sh git clone https://github.com/Margular/frida-skeleton.git ``` 2. 安装第三方依赖库 ```sh pip install -r requirements.txt ``` ###### 查看说明 ```sh python frida-skeleton.py -h ``` 详细说明请移步[WIKI](https://github.com/Margular/frida-skeleton/wiki) ### 文件目录说明 ``` 文件目录 ├── CHANGELOG.md 项目改动记录 ├── LICENSE 许可证 ├── README.md 本文档 ├── /assets/ 下载的frida-server存放的位置 ├── frida-skeleton.py 项目入口 ├── /images/ 本项目用到的图像资源文件 ├── /lib/ Python库文件,frida-skeleton核心实现部分 ├── /logs/ hook日志记录文件夹 ├── /projects/ hook脚本存放的文件夹,以目录区分项目 ├── requirements.txt 三方库需求列表 ├── /scripts/ 封装好的实用API └── /tests/ 提供测试的安卓项目 ``` ### 如何参与开源项目 贡献使开源社区成为一个学习、激励和创造的绝佳场所。你所作的任何贡献都是**非常感谢**的。 1. Fork本项目 2. 创建开发分支 (`git checkout -b dev`) 3. 提交更改 (`git commit -m 'Add something'`) 4. 推送到分支 (`git push origin dev`) 5. 提[Pull Request](https://github.com/Margular/frida-skeleton/compare) ### 版本控制 该项目使用Git进行版本管理。您可以在repository参看当前可用版本。 ### 版权说明 该项目签署了MIT 授权许可,详情请参阅 [LICENSE](https://github.com/Margular/frida-skeleton/blob/master/LICENSE) ## 项目相关 ## 最近更新 #### [v3.3] - 2022-12-10 **Add** - 新增--no-root选项,有的设备不支持adb root - frida-server使用随机端口绕过常规检测 - 在初始化FridaThread时校验设备是否root **Changed** - 使用enumerate_applications替换enumerate_processes **Fixed** - 修复有的su不支持后面跟一个- - attrdict本地模块化以兼容3.10及以上版本 #### [v3.2.3] - 2021-06-24 **Add** - 保存hook脚本的整个内容方便调试和查看 **Changed** - 在调用Trace.javaClassByRegex的时候默认跳过hook系统函数 **Fixed** - 修复可能无法退出程序的BUG #### [v3.2.0] - 2020-12-24 **Add** - 新增Jav.describeObject API,很方便地打印java对象的函数和字段信息 - 加入星链计划2.0 - 添加logo **Changed** - 迁移wiki到github - 主程序帮助界面改为中文