二进制仿真服务

MCP服务器提供CPU和二进制仿真功能,支持轻量级代码仿真和完整操作系统级二进制仿真,适用于逆向工程工作流。

  • by drvcvt
  • Python
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 drvcvt/emulation-mcp

使用说明

仿真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设置。

典型工作流程

  1. 创建会话: emu_create_session 发动机选择(unicorn 或 qiling)
  2. 对于Unicorn:映射内存,写入代码字节,设置寄存器,运行
  3. 对于麒麟:指向二进制+rootfs,挂接系统调用/API,运行
  4. 检查寄存器、内存、跟踪输出
  5. 使用快照保存和恢复分支探索的状态

建筑

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——见 许可证.