🌍 语言: 中文 | English
frida-analykit v2 是一个双产物 monorepo:Python CLI 负责编排 Frida 环境、构建、注入、REPL、MCP 和数据落盘;npm runtime @zsa233/frida-analykit-agent 负责给自定义 TypeScript Frida agent 提供按需导入的运行时能力。
frida-analykit是主 CLI,覆盖环境管理、工作区生成、frida-server安装/启动、attach/spawn、REPL 和真机辅助检查。frida-analykit-mcp是 stdio MCP server,可以把 Frida 调试链路交给 MCP client 或大模型工具流。@zsa233/frida-analykit-agent是 agent runtime 包,提供 RPC、helper、process、JNI、ELF、SSL、Dex 和 native binding 等能力。- 当前支持范围是
frida>=16.5.9,<18;实际设备和版本兼容性以frida-analykit doctor的检查结果为准。
- 安装 CLI,得到
frida-analykit和frida-analykit-mcp。
uv tool install "git+https://github.com/ZSA233/frida-analykit@stable"- 创建并进入一个固定 Frida 版本的虚拟环境。
frida-analykit env create --frida-version 17.8.2 --name frida-17.8.2
frida-analykit env shell frida-17.8.2- 确认 Android 设备已连接。
adb devices- 生成 TypeScript agent 工作区并安装依赖。
frida-analykit gen dev --work-dir ./my-agent
cd ./my-agent
npm install- 按生成工作区里的
README.md修改config.toml,然后先做环境检查。
frida-analykit doctor --config ./config.toml- 如果
doctor提示远端frida-server安装或版本问题,先修复并启动设备端 server。
frida-analykit doctor fix --config ./config.toml
frida-analykit server boot --config ./config.toml- 构建、注入并进入 REPL。
frida-analykit attach --config ./config.toml --build --repl目标 app 还没启动时,用 frida-analykit spawn --config ./config.toml --build 代替最后一步。
| 主题 | 文档 |
|---|---|
工作区配置、config.toml 和常用 CLI |
src/frida_analykit/resources/scaffold/README.md |
| MCP server、quick session、tools 和 resources | docs/zh/mcp.md |
| Agent runtime 导入路径和能力表 | packages/frida-analykit-agent/README.md |
| ELF dump fixups 字段和重放规则 | docs/zh/elf-fixups.md |
| 真机回归、失败分类和复跑规则 | docs/zh/device-regression.md |
| 示例工程 | android-reverse-examples |
MCP 的最小启动入口如下,具体会话流程和错误恢复规则请看上面的 MCP 文档。
frida-analykit-mcp --config ./mcp.tomlflowchart LR
subgraph Host["Host PC(宿主机 / 电脑端)"]
direction TB
WorkDir["Agent 工作区<br/>config.toml / tsconfig / 你的代码"]
CLI["frida-analykit<br/>Python CLI 工具"]
DataArchive["本地数据归档<br/>Logs / 导出的 Dex 等"]
WorkDir -->|"配置 / 构建"| CLI
CLI -->|"日志 / 导出"| DataArchive
end
subgraph Framework["Frida Framework(通信与注入底座)"]
direction TB
FridaCore["Frida Core<br/>Python 绑定"]
RPCChannel["Frida RPC / Message 通道"]
end
subgraph Device["Target Device(Android / iOS 设备端)"]
direction TB
FridaServer["frida-server<br/>Root 守护进程"]
subgraph App["Target App Process(目标应用进程)"]
direction TB
AgentRuntime["zsa233/frida-analykit-agent<br/>注入的 runtime"]
TargetMem["App 内存"]
AgentRuntime -->|"Hook / 读写 / 调用"| TargetMem
end
FridaServer -->|"注入 _agent.js"| AgentRuntime
end
CLI -->|"Attach / Spawn"| FridaCore
CLI -->|"REPL / 数据"| RPCChannel
FridaCore -->|"USB / TCP"| FridaServer
RPCChannel -->|"JSON / Bytes"| AgentRuntime