关于 Ghostmcp
Ghostmcp 是面向 Windows 进程逆向分析的可注入 MCP 服务,供 MCP 兼容的 AI 客户端使用。它将内存检查、反汇编、调试和代码注入整合为多服务工具集,项目仍处于实验阶段。
主要功能
- 01进程内存读写与扫描
- 02内存转储与差异分析
- 03反汇编与静态分析
- 04断点与动态调试
- 05代码执行与注入
- 06API 调用追踪
适用场景
- 01查找并修改进程中的数值
- 02分析内存转储或指针路径
- 03追踪函数调用并设置断点
- 04检查二进制中的代码与字符串
MCP 相关
Ghostmcp 作为可注入 MCP 服务,为兼容客户端提供进程检查、内存操作、静态分析、调试和代码注入工具。其采用多服务架构,并要求破坏性操作使用安全令牌。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Ghost-MCP 👻
与二进制程序对话。 将 AI 指向某个进程,让它大展身手。
Ghost-MCP 是一个可注入的 MCP(Model Context Protocol)服务,适用于 Windows 上的氛围式逆向工程助手。它将内存检查、反汇编、调试和代码注入整合到一个工具中,任何兼容 MCP 的 AI 客户端都可以使用。将它注入目标进程,然后通过自然对话与其交互。
⚠️ 实验性项目:本项目仍处于高度实验性和开发阶段。API 可能随时变更,功能可能不完整或不稳定,文档也可能未反映当前状态。使用风险自负。
可以用它做什么?
可以向 AI 助手提出类似这样的要求:
- “找到这个游戏中的生命值,并将其锁定为 100”
- “显示所有引用此字符串的函数”
- “在 MessageBoxA 上设置断点,并在它被调用时告诉我”
- “反汇编此地址处的函数,并解释它的作用”
- “找到所有指向此地址的指针”
AI 会处理技术细节。你只需描述想做什么。
多服务架构
Ghost-MCP 采用模块化多服务架构,可提供 250 多个工具,同时不超出 MCP 客户端限制:
| 服务 | 端口 | 工具 | 用途 |
|---|---|---|---|
| ghost-core-mcp | 13340 | 85 | 内存、调试、执行、安全 |
| ghost-analysis-mcp | 13341 | 82 | 扫描、指针、转储、结构 |
| ghost-static-mcp | 13342 | 84 | Radare2、IDA、Ghidra、AI、YARA |
| ghost-extended-mcp | 13343 | 85 | 注入、反调试、输入、变速 |
快速设置:
- Agent 监听
13338;核心服务使用stdio,分析和静态分析服务使用 TCP scripts/launch-mcp.ps1可启动一个或所有服务- 破坏性操作需要安全令牌:调用
safety_request_token,然后包含token_id
功能
内存操作(Cheat Engine 风格)
提供追踪数值和操作内存所需的一切:
- 读写内存,支持自动类型转换(整数、浮点数、字符串、字节)
- 枚举区域,并显示保护标志(可读、可写、可执行)
- 模式扫描,支持 AOB 通配符(
48 8B ?? ?? 90) - 指针链解析,用于处理复杂数据结构
模式扫描与 YARA
用于恶意软件分析和特征扫描的高级模式匹配:
- AOB 扫描,用于带通配符支持的字节数组
- 字符串扫描,支持 ASCII、Unicode(UTF-16)和 UTF-8 模式
- 正则表达式模式,支持字节级匹配(需要
yara功能) - YARA 集成,可加载规则并对内存执行规则扫描
- 特征数据库,用于存储、导入和导出命名模式
- 命名特征,用于通过标签和描述整理模式
内存转储与分析
支持完整进程内存转储和 PE 重建:
- 完整进程转储,捕获所有已提交的内存区域
- 选择性区域转储,针对指定地址范围
- 模块转储,提取 DLL/EXE 并重建 PE
- 创建 Minidump,采用兼容 WinDbg 的格式
- 增量转储,追踪快照之间的变化
- 二进制差异比较,比较转储并查找修改
- 模式搜索,使用 AOB 模式在转储中搜索
- 注释,为感兴趣的位置添加书签和标签
- PE 重建,采用 Scylla 风格重建导入表
- 转储目录,用于整理和管理多个转储
高级数值扫描器
功能完整、类似 Cheat Engine 的扫描器,支持会话管理:
- 12 种扫描模式,包括精确值、已更改、未更改、增大、减小、大于、小于、介于、初始值未知、模糊扫描等
- 迭代扫描,通过多次扫描逐步缩小结果范围
- 智能筛选,支持仅筛选可写内存、可执行内存、仅筛选模块和自定义地址范围
- 快速扫描模式,基于对齐跳过内存区域,速度提升 4 倍以上
- 实时进度,支持实时跟踪和取消
- 导出/导入,可将结果保存为 JSON、CSV 或 Cheat Engine XML
指针扫描器(类似 Cheat Engine)
查找指向动态地址的稳定指针路径:
- 多级扫描,可配置深度(1-10 级),以查找指针链
- 静态基址筛选,仅包含相对于模块的指针,使其在重启后仍然有效
- 偏移量约束,可配置最大偏移量和对齐选项
- 指针重新扫描,在进程重启后验证路径,并进行稳定性评分
- 稳定性评分,跟踪指针在多次重新扫描中的有效性(评分范围为 0.0-1.0)
- 会话比较,查找多个扫描结果集中的共同有效指针
- 指针解析,沿指针链读取解析后地址处的值
- 导出/导入,支持 JSON、CSV 或 Cheat Engine 指针格式(.ptr)
- 分页,支持为大型结果集配置限制
- 进度跟踪,提供实时更新并支持取消
静态分析(类似 IDA Pro)
像专业人士一样浏览代码:
- 反汇编,通过 Capstone 引擎进行(
disasm_at、disasm_function) - 反编译,生成 Hex-Rays 风格的伪 C 代码
- 模块检查,列出所有 DLL 及其导出和导入
- 符号解析,通过 DbgHelp 加载 PDB,并完整支持堆栈回溯
- 交叉引用,查找对任意地址的所有 CALL/JMP/LEA 引用
- 字符串提取,从任意模块中提取 ASCII/Unicode 字符串
动态调试(类似 x64dbg)
无需外部调试器,即可在进程内完成全面调试:
- 软件断点,通过注入 INT3 设置,并自动恢复原始字节
- 硬件断点,通过 DR0-DR3 调试寄存器设置(4 个槽位)
- 单步执行,基于陷阱标志逐条执行指令
- 线程控制,列出、挂起或恢复任意线程
- 寄存器访问,读取/写入所有 x64 寄存器(RAX-R15、RIP、RFLAGS)
- 堆栈回溯,获取完整调用堆栈并解析符号
直接执行与代码注入
在目标进程中运行任意代码:
- 汇编器,使用 iced-x86 将 x86/x64 文本汇编为字节码(纯 Rust 编写,持续维护)
- 支持常见指令:MOV、ADD、SUB、XOR、PUSH、POP、CALL、JMP、条件跳转等
- 支持多种语法选项:用换行或分号分隔指令
- 十六进制立即数:
0x1234或1234h格式 - 提供用于函数调用的 Shellcode 生成辅助工具(x64 Windows ABI)
- 函数调用,全面支持调用约定(cdecl、stdcall、fastcall、win64、thiscall)
- 动态解析,支持类似 GetProcAddress 的查找和缓存
- Shellcode 执行,支持多种方法:
- 在当前线程中直接调用
- 创建新线程(CreateThread、NtCreateThreadEx)
- APC 注入
- 劫持线程
- 内存管理,分配、写入和释放可执行内存
- 代码洞,查找并使用未使用的可执行空间
- 系统调用提取,直接从 ntdll 存根中获取系统调用编号
- 远程执行,将代码注入其他进程
进程与会话管理
全面控制目标进程:
- 进程列表,枚举正在运行的进程并进行筛选
- 进程启动,启动进程(正常启动或挂起启动)
- 附加/分离,按名称或 PID 连接到进程
- 多种启动模式,包括 Normal、Suspended、Debug、Delayed、WaitForModule
进程与系统检查
深入了解进程内部:
- 进程详情,包括 PID、路径、架构、线程数/句柄数和 PEB 地址
- PEB 访问,用于查看 BeingDebugged 标志、映像基址、加载器数据和操作系统版本信息
- 内存映射,显示完整的虚拟内存布局及保护属性和区域类型
- 线程检查,包括枚举、TEB 访问、TLS 插槽和优先级信息
- 模块详情,包括基址、大小、入口点和版本信息
- 窗口枚举,包括标题、类、样式、层级和筛选
- 令牌分析,用于查看用户 SID、权限、提升状态和完整性级别
- 权限操作,用于启用/禁用 SeDebugPrivilege 等权限
- 环境访问,用于读取环境变量和工作目录
MCP 元命令
自我发现与检查:
- 功能发现,列出所有可用工具及其类别
- 文档,获取任何工具的详细帮助和示例
- 健康检查,验证 Agent 连接和脚本引擎状态
- 版本信息,查看服务版本和构建信息
AI/LLM 双向命令支持
无缝集成 AI 辅助分析:
- 命令批处理,根据条件执行多步命令序列
- 命令历史,查询并重放先前的命令
- 事件订阅,订阅断点命中、异常、内存变化和钩子触发事件
- AI 友好摘要,结合上下文总结操作结果
- 差异报告,通过结构化差异比较状态(内存、寄存器、模块)
- 错误说明,提供自然语言消息和建议的修复方法
- 调试会话,通过对话式调试记录发现、假设和后续步骤
- 断点建议,由 AI 提供断点位置建议
- 漏洞分析,自动检测安全模式
- 模式学习,保存并回忆代码模式、行为和数据结构
扩展钩取方法
全面的函数拦截工具包:
- 内联钩子,支持基于跳板的重定向(5/14 字节跳转)、函数中段钩子、热修补和 INT3 断点钩子
- IAT/EAT 钩子,用于导入地址表和导出地址表钩取,并支持枚举
- VEH/PAGE_GUARD 钩子,通过向量化异常处理实现无需硬件的内存断点
- 系统调用钩子,通过修补 ntdll 存根拦截系统调用
- Shellcode 生成,用于生成位置无关代码模板(调用函数、加载库等)
- Shellcode 编码,支持 XOR 编码器和解码存根生成
- ROP gadget 查找器,在已加载模块中搜索面向返回编程的 gadget
- 钩子管理,支持启用/禁用、链接和事务,以原子方式执行多个钩子操作
API 调用跟踪与监控(Rohitab API Monitor 风格)
完整的 Win32 API 调用跟踪,支持参数解码:
- 跟踪会话,用于创建、启动、停止、暂停和恢复跟踪
- 事件管道,配备可配置的环形缓冲区和背压策略(丢弃最旧事件、阻塞、采样)
- API 包,包含基于 JSON 的 kernel32、user32、ntdll、ws2_32、advapi32 定义
- 服务端筛选,按 API 名称、模块、线程和返回值包含/排除
- 模式匹配,支持前缀、后缀、包含、通配符和正则表达式
- 筛选预设,包括内置预设(文件操作、网络、注册表、仅错误)和自定义预设
- 统计信息,包括每个 API 的调用次数、持续时间、成功/失败率
- 队列监控,查看队列深度、丢弃数和每秒事件数
高级进程监控
扩展监控功能,支持深入分析:
- 动态 API 监控,跟踪 GetProcAddress/LdrGetProcedureAddress 解析
- 进程暂停,冻结/恢复线程以进行静态分析(全部、指定或筛选后的线程)
- COM 对象扫描,检测并枚举 COM 接口,同时分析 vtable
- DLL 监控,捕获 LoadLibrary/FreeLibrary 事件及调用堆栈
- 延迟导入,扫描并监控延迟 DLL 加载(__delayLoadHelper2)
API 覆盖与条件断点
全面操控参数和返回值,并支持条件控制:
- 条件断点,支持调用前/后的时机、参数/返回值条件以及线程 ID 筛选
- 复合条件,支持 AND/OR/NOT 逻辑、命中次数触发(第 N 次调用、每 N 次调用)
- 参数覆盖,可修改整数、布尔值、指针、字符串(ANSI/Unicode)、缓冲区,以及注入 NULL
- 返回值覆盖,可修改返回码,提供 HRESULT/NTSTATUS 辅助功能,并可控制 SetLastError
- 暂停机制,用于线程协调,支持配置超时并自动继续
- 审计跟踪,完整记录所有修改及修改前后的值,并可导出为 JSON/CSV
高级模式匹配
强大的指令级搜索功能:
- 指令序列,通过通配符助记符和操作数匹配查找代码模式
- 操作数搜索,按寄存器类型、立即数、内存操作数查找指令
- 立即数搜索,在代码/数据中定位数值,支持范围匹配和对齐选项
- 字符串搜索,搜索 ASCII/UTF-16 模式,并可控制是否区分大小写
- 交叉引用搜索,查找对地址的所有代码/数据引用
- 统一搜索,通过游标分页处理大型结果集
安全与防护措施
全面的安全系统,防止意外操作:
- 安全模式,包括教育模式(阻止危险操作)、标准模式(需要审批)和专家模式(限制最少)
- 受保护进程,自动检测并阻止对系统进程(csrss、lsass、svchost 等)的操作
- 速率限制,通过令牌桶算法限制全局操作,并对写入操作进行专门限流
- 大小限制,可配置读取/写入/扫描操作的限制,并在达到 80% 阈值时发出警告
- 审批工作流,危险操作需要通过基于令牌的明确审批
- 补丁历史记录,可通过
patch_undo工具完整撤销操作 - 试运行预览,可通过
patch_preview在应用补丁前预览 - 自动备份,支持自动状态备份和崩溃恢复
DLL 注入(通过 ghost-loader)
灵活的注入选项:
- LoadLibraryExW,用于标准 Windows 注入
- 进程附加,支持按 PID、名称或等待进程
- 启动模式,包括 Normal、Suspended、Debug、Delayed、WaitForModule
- x86/x64 支持,适用于 32 位和 64 位进程
外部逆向工程工具集成
连接你喜爱的逆向工程工具:
- Radare2,支持完整的 r2pipe 集成(跨平台)
- Ghidra,通过无头模式或经由 ghidra-pipe 使用 JSON-RPC
- IDA Pro,通过 idalib 集成(需要 IDA v9.x)
- 统一 API,为所有后端提供一致的接口
架构
Ghost-MCP 使用模块化多服务架构,在提供 250 多个工具的同时,将工具数量控制在 MCP 约 100 个工具的限制以内:
┌─────────────────────────────────────────────────────────────────────────────┐
│ AI CLIENTS │
│ Claude Desktop │ Cursor │ Windsurf │ Custom │
└───────┬─────────────┬─────────────┬─────────────┬───────────────────────────┘
│ │ │ │
▼ ▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ghost-core-mcp │ │ghost-analysis │ │ghost-static │ │ghost-extended │
│ Port 13340 │ │ Port 13341 │ │ Port 13342 │ │ Port 13343 │
│ 85 tools │ │ 82 tools │ │ 84 tools │ │ 85 tools │
│ Memory, Debug │ │ Scanner, Dump │ │ R2, IDA, AI │ │ Inject, Input │
└───────┬───────┘ └───────┬───────┘ └───────┬───────┘ └───────┬───────┘
│ │ │ │
└─────────────────┴─────────────────┴─────────────────┘
│ IPC (TCP localhost:13338)
▼
┌─────────────────────────────────────────────────────────────────┐
│ LAYER 2: INJECTED AGENT │
│ ghost-agent.dll │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ ghost-core (static library) │ │
│ │ Memory │ Disasm │ Debug │ Hooks │ Scanner │ Exec │ │
│ └──────────────────────────────────────────────────────────┘ │
└───────────────────────────────┬─────────────────────────────────┘
│ Direct Access
▼
┌─────────────────────────────────────────────────────────────────┐
│ TARGET PROCESS │
│ (game.exe, app.exe, etc.) │
└─────────────────────────────────────────────────────────────────┘
模块化服务
| 服务 | 端口 | 工具 | 用途 |
|---|---|---|---|
| ghost-core-mcp | 13340 | 85 | 实时进程:内存、调试、执行、安全 |
| ghost-analysis-mcp | 13341 | 82 | 分析:扫描、指针、转储、结构 |
| ghost-static-mcp | 13342 | 84 | 静态逆向工程:Radare2、IDA、Ghidra、AI、YARA |
| ghost-extended-mcp | 13343 | 85 | 扩展功能:注入、反调试、输入、变速 |
每个服务都包含 4 个共享的元工具(mcp_capabilities、mcp_documentation、mcp_version、mcp_health),并且工具数量低于 MCP 的 90 个工具上限。
为什么采用这种设计?
- 安全性:Agent 体积小且抗崩溃;繁重工作由主机处理
- 灵活性:同一核心既可作为注入式 DLL,也可作为独立 EXE 运行
- 便于 AI 使用:提供结构化 JSON 响应、分页和清晰的错误消息
快速开始
1. 构建
cargo build --release
2. 注入到目标进程
ghost-loader.exe --target game.exe
3. 连接 AI 客户端
将以下内容添加到 Claude Desktop 配置文件(%APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"ghost-core": {
"command": "path/to/ghost-core-mcp.exe",
"args": ["--transport", "stdio"]
},
"ghost-analysis": {
"command": "path/to/ghost-analysis-mcp.exe",
"args": ["--port", "13341"]
},
"ghost-static": {
"command": "path/to/ghost-static-mcp.exe",
"args": ["--port", "13342"]
},
"ghost-extended": {
"command": "path/to/ghost-extended-mcp.exe",
"args": ["--port", "13343"]
}
}
}
开始与您喜欢的 AI 聊聊目标进程。
4. 验证设置
# Validate all server registries
.\scripts\launch-mcp.ps1 -ValidateOnly
# Or launch everything with one command
.\scripts\launch-mcp.ps1 -Target game.exe
组件
| 组件 | 描述 |
|---|---|
| ghost-host | 与 AI 客户端通信并路由命令的 MCP 服务 |
| ghost-core | 包含所有逆向工程基础功能的静态库 |
| ghost-agent | 在目标进程内运行的注入式 DLL |
| ghost-loader | 支持多种方法的 DLL 注入器 |
| ghost-common | 共享类型、IPC 协议、功能能力系统 |
| ghost-mcp-common | 共享 MCP 服务基础设施(注册表、配置、健康状态) |
| ghost-core-mcp | 用于实时进程工具的模块化 MCP 服务(85 个工具,端口 13340) |
| ghost-analysis-mcp | 用于分析工具的模块化 MCP 服务(82 个工具,端口 13341) |
| ghost-static-mcp | 用于静态逆向工程工具的模块化 MCP 服务(84 个工具,端口 13342) |
| ghost-extended-mcp | 用于扩展功能的模块化 MCP 服务(85 个工具,端口 13343) |
| ghost-re-backends | 与 Radare2、Ghidra、IDA 的集成 |
| ghost-test-target | 内存布局已知的测试应用 |
| ghost-mcp-client | 用于测试和自动化的命令行 MCP 客户端 |
开发与测试
# Run all tests (370+ unit tests)
cargo test --workspace
# Build release binaries
cargo build --release
# Format and lint
cargo fmt --all --check
cargo clippy --workspace -- -D warnings
测试体系
我们采用多层测试方法:
- 单元测试 核心模块包含全面的测试,覆盖内存操作、模式匹配、反汇编、钩子、IPC 和类型转换
- 集成测试
tests/integration/用于验证端到端流程:注入、内存读写、模式扫描、断点、钩子 - IPC 模糊测试
tests/integration/ipc_fuzzing.rs使用格式错误或随机消息对协议进行压力测试 - CI 流水线 GitHub Actions 会在每次推送时运行完整测试套件
测试目标
| 组件 | 测试内容 |
|---|---|
ghost-test-target | 内存布局已知、包含导出函数和调试符号的虚拟应用 |
ghost-mcp-client | 用于手动测试、脚本自动化和回归检查的命令行工具 |
# CLI testing examples
ghost-client --stdio --host-binary ./target/release/ghost-host tools
ghost-client --stdio --host-binary ./target/release/ghost-host call mcp_version
ghost-client --stdio --host-binary ./target/release/ghost-host repl
设计原则
- 安全至上,确保绝不导致目标进程崩溃
- AI 优先,提供结构化输出、清晰的错误信息和分页
- 模块化,清晰分离主机、核心和 Agent
- 可扩展,采用基于 trait 的设计,便于替换后端
安全模型
Ghost-MCP 使用基于能力的安全模型,并提供全面的安全防护措施:
能力范围
| 能力 | 风险 | 操作 |
|---|---|---|
| read | 低 | 内存读取、模块列表、内省(默认) |
| write | 中 | 内存写入、补丁操作 |
| execute | 高 | 函数调用、shellcode、远程线程 |
| debug | 中 | 断点、线程挂起/恢复、单步执行 |
| admin | 高 | 安全模式更改、Agent 重新连接 |
安全令牌
破坏性操作需要安全令牌进行授权:
- 客户端请求令牌:
safety_request_token(scope: "write", ttl_secs: 300) - Agent 验证客户端是否具备所需能力,并签发令牌
- 客户端在后续写入操作中包含
token_id - 令牌会自动过期,或由客户端主动释放
令牌的 TTL 可配置(最长 24 小时),且仅能使用一次,以确保最大程度的安全性。
安全模式
| 模式 | 说明 | 危险操作 |
|---|---|---|
| 教育 | 学习时施加最大限度的限制 | 禁止 |
| 标准 | 默认模式,包含审批工作流 | 需要审批 |
| 专家 | 面向有经验用户的最少限制 | 允许 |
安全工具
| 工具 | 说明 |
|---|---|
safety_status | 查看当前模式、统计信息和待审批事项 |
safety_set_mode | 在教育/标准/专家模式之间切换 |
safety_approve | 批准待处理的危险操作 |
patch_history | 查看本次会话应用的所有补丁 |
patch_undo | 恢复任意补丁修改前的原始字节 |
patch_preview | 应用补丁前预览其试运行结果 |
标准模式下,危险操作需要明确确认。使用 safety_set_mode expert 可关闭审批要求。
使用场景
- 安全研究:用于漏洞分析、漏洞利用开发和模糊测试
- 恶意软件分析:用于动态分析、脱壳和绕过反调试
- 游戏破解:用于数值扫描、指针解析和制作修改器
- 软件测试:用于故障注入、行为修改和覆盖率分析
- 学习:了解程序在二进制层面的工作原理
负责任地使用
Ghost-MCP 是一款功能强大的工具,可深入访问进程内部。能力越大,责任越大。
预期用途
- 教育用途:学习逆向工程,了解软件在二进制层面的工作原理
- 安全研究:分析你拥有的软件中的漏洞,或经明确授权进行测试的软件中的漏洞
- 游戏改造:出于个人兴趣修改单人和离线游戏
- 软件开发:调试自己的应用、测试边界情况和分析性能
禁止用途
- 在线多人游戏作弊 - 请勿使用此工具在在线游戏中获取不公平优势
- 非法规避保护措施 - 请勿绕过你不拥有的软件的 DRM、许可或安全措施
- 恶意活动 - 请勿将此工具用于开发恶意软件、未经授权的访问或任何非法用途
- 违反服务条款 - 请遵守你所交互软件的 EULA 和 ToS
你必须独自负责确保自己的使用行为符合所在司法管辖区适用的法律法规。
贡献
欢迎贡献!请按以下步骤操作:
- Fork 此仓库
- 创建功能分支(
git checkout -b feature/your-feature) - 提交更改(
git commit -m 'Add your feature') - 推送到分支(
git push origin feature/your-feature) - 创建 Pull Request
提交前请运行 cargo fmt --all 和 cargo clippy --workspace -- -D warnings。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。