弗里达mcp
MCP服务器用于基于Frida的移动安全测试。展示Frida功能作为人工智能辅助安全研究的MCP工具。
需求
- Python 3.11+
- 目标设备上运行的Frida服务器
- Android设备的ADB访问权限
- 根设备(适用于大多数操作)
安装
cd frida-mcp
uv pip install -e .
构建Frida代理(必填):
cd agent
npm install
npm run build
添加到克劳德代码
claude mcp add frida-mcp -- frida-mcp
工具
连接和会话管理
| 工具 |
说明 |
list_devices |
列出所有可用的Frida设备(USB、远程、本地) |
list_processes |
列出设备上正在运行的进程 |
list_apps |
列出设备上已安装的应用程序 |
connect |
通过捆绑包ID、名称或PID附加到应用程序。支持 spawn=true 为了重新发布。 |
disconnect |
断开与当前会话的连接 |
is_connected |
检查Frida会话是否仍然有效且健康 |
list_sessions |
列出所有活动的Frida会话(支持多设备) |
switch_session |
按ID切换到其他活动会话 |
应用程序生命周期(基于ADB)
| 工具 |
说明 |
get_pid |
按包名获取正在运行的应用程序的PID |
launch_app |
通过ADB启动应用程序并返回其PID |
stop_app |
按程序包名称强制停止应用程序 |
spawn_and_attach |
强行停止,发射新的,并一步连接Frida |
内存操作
| 工具 |
说明 |
memory_list_modules |
列出进程中加载的所有模块(库) |
memory_list_exports |
列出特定模块的导出(函数) |
memory_search |
在进程内存中搜索十六进制模式或字符串 |
memory_read |
在特定地址读取内存 |
memory_write |
将字节写入内存地址(用于修补) |
get_module_base |
按名称获取模块的基址(部分匹配) |
Android Java挂钩
| 工具 |
说明 |
android_list_classes |
列出加载的Java类,可选择过滤 |
android_list_methods |
列出Java类的方法 |
android_hook_method |
挂钩Java方法以监视调用 |
android_search_classes |
搜索与模式匹配的类 |
android_ssl_pinning_disable |
禁用SSL证书固定 |
android_get_current_activity |
获取当前前台活动 |
dump_class |
转储类的所有方法、字段和构造函数 |
heap_search |
在Java堆中搜索类的实时实例 |
持久挂钩
| 工具 |
说明 |
install_hook |
安装一个收集消息的持久钩子脚本 |
get_hook_messages |
从持久钩子中检索收集到的消息 |
clear_hook_messages |
清除挂钩消息缓冲区 |
uninstall_hooks |
卸载所有持久钩子脚本 |
list_hooks |
列出所有已安装的持久挂钩 |
hook_native |
按模块+偏移量挂钩本机函数 |
文件操作
| 工具 |
说明 |
file_ls |
列出设备上某个目录中的文件 |
file_read |
从设备读取文本文件 |
file_download |
将文件从设备下载到本地计算机 |
自定义脚本
| 工具 |
说明 |
run_script |
执行自定义Frida JavaScript代码 |
run_java |
在Java.performNow上下文中运行JavaScript |
用法示例
1. list_devices → Find your device
2. connect target=com.example.app spawn=true → Attach to app
3. android_search_classes pattern=crypto → Find crypto classes
4. android_hook_method class_name=... method_name=... → Hook methods
5. get_hook_messages → See captured calls
备注
- 连接时,SELinux会自动设置为许可模式(许多设备上的Frida注入都需要)
- 这
spawn=true 选项使用基于ADB的启动,这比Frida的原生版本更可靠
- 多会话支持允许同时连接到多个应用程序/设备