使用说明
幽灵MCP👻
与您的二进制文件交谈。 将AI指向一个进程,让他做饭。
Ghost MCP是Windows上用于vibe逆向工程助手的可注入MCP(模型上下文协议)服务器。它将内存检查、反汇编、调试和代码注入组合到一个工具中,任何兼容MCP的AI客户端都可以使用。将其注入目标进程,并通过自然对话进行交互。
⚠️ 实验性:这个项目是高度实验性的,正在开发中。API可能会更改,恕不另行通知,功能可能不完整或不稳定,文档可能无法反映当前状态。使用风险自负。
你能用它做什么?
问你的AI助手一些事情,比如:
- “在这个游戏中找到健康值,并将其冻结在100”
- “显示引用此字符串的所有函数”
- “在MessageBoxA上设置断点,并在调用时告诉我”
- “分解此地址的函数并解释其功能”
- “查找指向此地址的所有指针”
AI负责处理技术细节。你只需描述你想要什么。
多服务器架构
Ghost MCP使用模块化多服务器架构,在保持MCP客户端限制的同时提供250多种工具:
| 服务器 | 端口 | 工具 | 用途 |
|---|---|---|---|
| 幽灵核心mcp | 13340 | 85 | 内存、调试、执行、安全 |
| 重影分析mcp | 13341 | 82 | 扫描、指针、转储、结构 |
| 鬼静态mcp | 13342 | 84 | Radare2, IDA, Ghidra, AI, YARA |
| ghost扩展mcp | 13343 | 85 | 注入、反调试、输入、速度破解 |
快速设置:
- 特工在听
13338;核心服务器使用stdio,TCP上的分析/静态 scripts/launch-mcp.ps1启动一个或所有服务器- 破坏性操作需要安全令牌:调用
safety_request_token,然后包括token_id
特性
内存操作(作弊引擎风格)
查找值和操纵内存所需的一切:
- 读/写存储器 具有自动类型转换功能(整数、浮点数、字符串、字节)
- 区域枚举 带有保护标志(可读、可写、可执行)
- 图案扫描 带有AOB通配符(
48 8B ?? ?? 90) - 指针链分辨率 对于复杂的数据结构
图案扫描和YARA
用于恶意软件分析和签名扫描的高级模式匹配:
- AOB扫描 用于支持通配符的字节数组
- 字符串扫描 用于ASCII、Unicode(UTF-16)和UTF-8模式
- 正则表达式模式 具有字节级匹配(需要
yara特征) - YARA集成 根据内存加载和运行规则
- 签名数据库 存储、导入和导出命名模式
- 命名签名 用标签和描述组织模式
内存转储和分析
带PE重建的全过程内存转储:
- 全流程转储 捕获所有已提交的内存区域
- 选择性区域垃圾场 对于特定的地址范围
- 模块转储 通过PE重建提取DLL/EXE
- 创建小转储 采用Winchester兼容格式
- 增量转储 跟踪快照之间的更改
- 二进制差异 比较转储并查找修改
- 模式搜索 在使用AOB模式的转储中
- 注释 为感兴趣的地点添加书签和标签
- PE重建 重建Scylla风格的导入表
- 转储目录 组织和管理多个转储
高级值扫描仪
带有会话管理的完整Cheat Engine式扫描仪:
- 12种扫描模式 包括精确、变化、不变、增加、减少、更大、更小、介于之间、未知初始、模糊等
- 迭代扫描 在多次扫描中优化结果
- 智能过滤 仅适用于可写、可执行、仅模块、自定义地址范围
- 快速扫描模式 基于对齐的跳跃可实现4x+的加速
- 实时进度 具有实时跟踪和取消功能
- 导出/导入 将结果保存为JSON、CSV或Cheat Engine XML
指针扫描器(作弊引擎风格)
查找指向动态地址的稳定指针路径:
- 多级扫描 深度可配置(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(纯Rust,主动维护)的x86/x64文本到字节程序集
- 支持常见指令: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连接到进程
- 多种发射模式 包括正常、挂起、调试、延迟、等待模块
过程与系统反思
深入了解过程内部:
- 流程详细信息 包括PID、路径、架构、线程/句柄计数、PEB地址
- PEB接入 用于BeingDebugd标志、映像库、加载器数据、操作系统版本信息
- 内存映射 显示具有保护和区域类型的完整虚拟内存布局
- 线程自省 具有枚举、TEB访问、TLS插槽、优先级信息
- 模块详细信息 包含基址、大小、入口点、版本信息
- 窗口枚举 具有标题、类、样式、层次结构和过滤
- 代币分析 用于用户SID、权限、提升状态、完整性级别
- 特权操纵 启用/禁用SeDebugPrivilege等特权
- 环境准入 读取环境变量和工作目录
MCP元命令
自我发现和内省:
- 能力发现 按类别列出所有可用工具
- 文档 获取任何工具的详细帮助和示例
- 健康检查 验证代理连接和脚本引擎状态
- 版本信息 获取服务器版本和构建信息
AI/LLM双向指挥支持
AI辅助分析的无缝集成:
- 命令批处理 按条件执行多步命令序列
- 命令历史记录 查询和回放以前的命令
- 事件订阅 用于断点命中、异常、内存更改、钩子触发器
- AI友好的摘要 具有上下文感知的操作结果摘要
- 差异报告 用结构化差异比较状态(内存、寄存器、模块)
- 错误解释 包含自然语言信息和建议修复
- 调试会话 用于会话调试,包括发现、假设和下一步
- 断点建议 人工智能驱动的断点位置建议
- 漏洞分析 用于自动安全模式检测
- 模式学习 保存和调用代码模式、行为和数据结构
扩展挂钩方法
功能拦截的全面挂钩工具包:
- 直列挂钩 具有基于蹦床的迂回(5/14字节跳跃)、中间功能挂钩、热修补、INT3断点挂钩
- IAT/EAT挂钩 用于使用枚举挂接导入和导出地址表
- VEH/PAGE_GUARD挂钩 通过矢量异常处理实现无硬件内存断点
- Syscall挂钩 通过ntdll存根补丁拦截系统调用
- 壳码生成 用于位置无关的代码模板(调用函数、加载库等)
- 壳码编码 具有XOR编码器和解码器存根生成功能
- ROP小工具查找器 在加载的模块中搜索面向返回的编程小工具
- 吊钩管理 具有原子多钩操作的启用/禁用、链接和事务
API调用跟踪与监控(Rohitab API监控型)
带参数解码的完整Win32 API调用跟踪:
- 跟踪会话 创建、启动、停止、暂停、恢复跟踪
- 事件管道 具有可配置的环形缓冲区和背压策略(丢弃最旧、阻塞、采样)
- API程序包 基于JSON的kernel32、user32、ntdll、ws2_32、advapi32定义
- 服务器端过滤 按API名称、模块、线程、返回值包括/排除
- 模式匹配 支持前缀、后缀、包含、通配符和正则表达式
- 过滤器预设 包括内置预设(文件操作、网络、注册表、仅错误)和自定义
- 统计 每个API呼叫的计数、持续时间、成功/失败率
- 队列监视 深度、落差、每秒事件数
高级过程监控
深度分析的扩展监控功能:
- API动态监测 跟踪GetProcAddress/LdrGetProcedureAddress解析
- 工艺冷却 冻结/恢复线程以进行静态分析(全部、特定或筛选)
- COM对象扫描 使用vtable分析检测和枚举COM接口
- 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注入(通过重影加载器)
灵活的注射选项:
- LoadLibraryExW 用于标准Windows注入
- 流程附件 按PID、名称或等待进程
- 启动模式 包括正常、挂起、调试、延迟、等待模块
- x86/x64支持 适用于32位和64位进程
外部RE工具集成
连接到您最喜欢的逆向工程工具:
- 雷达2 具有完全r2pipe集成(跨平台)
- 吉德拉 通过ghidra管道通过无头模式或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.) │
└─────────────────────────────────────────────────────────────────┘
模块化服务器
| 服务器 | 端口 | 工具 | 用途 |
|---|---|---|---|
| 幽灵核心mcp | 13340 | 85 | 实时进程:内存、调试、执行、安全 |
| 重影分析mcp | 13341 | 82 | 分析:扫描、指针、转储、结构 |
| 鬼静态mcp | 13342 | 84 | 静态回复:Radare2、IDA、Ghidra、AI、YARA |
| ghost扩展mcp | 13343 | 85 | 扩展:注入、反调试、输入、速度破解 |
每台服务器包括4个共享元工具(mcp_capabilities, mcp_documentation, mcp_version, mcp_health)并保持在90刀具MCP限制以下。
为什么是这个设计?
- 安全 因为该试剂很小,耐碰撞;主机中发生重物搬运
- 灵活性 因为同一个内核与注入的DLL或独立的EXE一样工作
- AI友好 具有结构化的JSON响应、分页、清晰的错误消息
快速开始
1.建造
cargo build --release
2.注入目标
ghost-loader.exe --target game.exe
3.连接您的AI客户端
添加到您的Claude桌面配置(%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
组件
| 组件 | 描述 |
|---|---|
| 幽灵主持人 | 与AI客户端通信并路由命令的MCP服务器 |
| 鬼芯 | 包含所有RE图元的静态库 |
| 幽灵特工 | 在目标进程内运行的注入DLL |
| 幽灵装载机 | 多方法DLL注入器 |
| 鬼一般 | 共享类型、IPC协议、能力系统 |
| 鬼mcp常见 | 共享MCP服务器基础架构(注册表、配置、运行状况) |
| 幽灵核心mcp | 用于实时过程工具的模块化MCP服务器(85个工具,端口13340) |
| 重影分析mcp | 用于分析工具的模块化MCP服务器(82个工具,端口13341) |
| 鬼静态mcp | 用于静态RE工具的模块化MCP服务器(84个工具,端口13342) |
| ghost扩展mcp | 用于扩展功能的模块化MCP服务器(85个工具,端口13343) |
| ghost返回后端 | 与Radare2、Ghidra、IDA的集成 |
| 幽灵测试目标 | 具有已知内存布局的测试应用程序 |
| ghost mcp客户端 | 用于测试和自动化的CLI 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/验证端到端流:注入、内存R/W、模式扫描、断点、钩子 - IPC模糊测试
tests/integration/ipc_fuzzing.rs使用格式错误/随机消息对协议进行压力测试 - CI管道 GitHub Actions在每次推送时都会运行完整的测试套件
测试目标
| 组件 | 测试内容 |
|---|---|
ghost-test-target |
具有已知内存布局、导出函数和调试符号的虚拟应用程序 |
ghost-mcp-client |
CLI用于手动测试、脚本自动化和回归检查 |
# 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优先 具有结构化输出、清除错误、分页
- 模块化 主机、核心和代理之间保持干净的分离
- 可扩展 通过基于特征的设计实现简单的后端交换
安全模型
Ghost MCP使用基于能力的安全模型,并配备全面的安全护栏:
能力范围
| 能力 | 风险 | 运营 |
|---|---|---|
| 读 | 低 | 内存读取、模块列表、自检(默认) |
| 写 | 中等 | 内存写入、补丁操作 |
| 执行 | 高 | 函数调用、外壳代码、远程线程 |
| 调试 | 中等 | 断点、线程挂起/恢复、步进 |
| 管理员 | 高 | 安全模式更改,代理重新连接 |
安全令牌
破坏性操作需要 安全令牌 授权:
- 客户端请求令牌:
safety_request_token(scope: "write", ttl_secs: 300) - 代理验证客户端是否具有所需的功能并发出令牌
- 客户包括
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
您全权负责确保您的使用符合您所在司法管辖区的适用法律法规。
贡献
欢迎投稿!拜托:
- 克隆该仓库
- 创建要素分支(
git checkout -b feature/your-feature) - 提交您的更改(
git commit -m 'Add your feature') - 推到分支(
git push origin feature/your-feature) - 打开拉取请求
跑 cargo fmt --all 和 cargo clippy --workspace -- -D warnings 在提交之前。
许可证
麻省理工学院