这是一个基于Frida的动态分析工具集,包含多种Hook脚本和批处理文件,用于Android应用程序的动态分析和逆向工程
本项目提供了完整的Frida动态分析解决方案,包括:
Frida/
├── agent/ # TypeScript 核心脚本
│ ├── index.ts # 主入口文件
│ └── logger.ts # 日志工具
├── js/ # JavaScript Hook 脚本
│ ├── hook.js # Java 层 Hook 脚本
│ └── hook_native.js # Native 层 Hook 脚本
├── bat/ # 批处理文件
│ ├── attach.bat # 附加到运行中的应用
│ ├── spawn.bat # 启动新应用实例
│ ├── attach_native.bat # 附加并 Hook Native 函数
│ └── spawn_native.bat # 启动并 Hook Native 函数
├── _agent.js # 编译后的 Agent 脚本
├── package.json # 项目配置
└── tsconfig.json # TypeScript 配置
使用 js/hook.js 脚本 Hook Java 函数:
# 附加到运行中的应用
frida -D emulator-5554 -n ndkdemo -l js/hook.js
# 启动新应用实例
frida -D emulator-5554 -f com.example.ndkdemo -l js/hook.js
使用 js/hook_native.js 脚本 Hook Native 函数:
# 附加到运行中的应用
frida -D emulator-5554 -n ndkdemo -l js/hook_native.js
# 启动新应用实例
frida -D emulator-5554 -f com.example.ndkdemo -l js/hook_native.js
项目提供了批处理文件:
bat/attach.bat - 附加到运行中的应用并执行 Java Hookbat/spawn.bat - 启动新应用实例并执行 Java Hookbat/attach_native.bat - 附加到运行中的应用并执行 Native Hookbat/spawn_native.bat - 启动新应用实例并执行 Native Hookagent/index.ts)核心 TypeScript 脚本,包含以下功能:
open() 函数)js/hook.js)Hook Java 层函数的示例脚本:
MainActivity.stringFromJNI() 方法js/hook_native.js)Hook Native 层函数的完整解决方案:
js目录下创建新的JavaScript文件setImmediate()确保脚本在Java环境准备好后执行根据您的设备ID和包名修改bat目录下的批处理文件
# 修改设备ID和APP名称
frida -D YOUR_DEVICE_ID -n YOUR_APP_NAME -l ../js/hook.js
# 修改设备ID和包名
frida -D YOUR_DEVICE_ID -f YOUR_PACKAGE_NAME -l ../js/hook.js
console.log() 输出调试信息本项目采用 Apache-2.0 许可证 - 详见 LICENSE 文件
欢迎提交 Issue 和 Pull Request 来改进这个项目!
注意: 请确保在使用本工具时遵守相关法律法规,仅用于合法的安全研究和学习目的。