仿真mcp
MCP服务器,用于逆向工程工作流中的CPU和二进制仿真。支持两个后端:用于轻量级代码仿真的Unicorn引擎和用于完整操作系统级二进制仿真的麒麟框架。
它的作用
独角兽引擎(轻量级CPU仿真)
- 跨架构(x86、x64、ARM、ARM64、MIPS)模拟外壳代码和代码片段
- 映射和管理内存区域、读/写内存和寄存器
- 单步或运行解决方案,具有可配置的步数限制
- 使用寄存器和内存更改日志记录的指令跟踪
- 使用自定义回调函数钩住任意地址
- 快照和恢复模拟状态以供探索
麒麟框架(全二进制仿真)
- 加载并运行具有操作系统级支持的完整ELF/PE二进制文件(Linux、Windows)
- 系统调用和API挂钩——拦截和检查操作系统交互
- 文件系统、注册表和网络仿真
- 支持rootfs覆盖以实现共享库解析
- 在工具调用之间保持状态的持久会话
共享功能
- 具有唯一ID的会话管理,空闲超时后自动清理
- 跨模拟地址空间的内存搜索
- 导出用于报告的证据(寄存器转储、内存快照、跟踪)
需求
- Python 3.10+
- 独角兽发动机2.x(
pip install unicorn) - 齐林框架 1.4+ (
pip install qiling)--可选,仅用于完整的二进制仿真 - 拱顶石拆卸器(
pip install capstone)
设置
pip install -r requirements.txt
python server.py对于麒麟二进制仿真,您需要一个与目标操作系统和架构匹配的rootfs。请参阅 齐林文档 用于rootfs设置。
典型工作流程
- 创建会话:
emu_create_session发动机选择(unicorn或qiling) - 对于Unicorn:映射内存,写入代码字节,设置寄存器,运行
- 对于麒麟:指向二进制+rootfs,挂接系统调用/API,运行
- 检查寄存器、内存、跟踪输出
- 使用快照保存和恢复分支探索的状态
建筑
emulation/
server.py # MCP server, tool definitions
session_manager.py # Session lifecycle, ID management
engines/
unicorn_engine.py # Unicorn wrapper
qiling_engine.py # Qiling wrapper
base.py # Shared types (HookInfo, TraceEntry, etc.)
tests/许可证
CC BY-NC-SA 4.0——见 许可证.
