游戏Boy ROM分析工具

一个让LLMs能够玩、检查并理解Game Boy ROM的MCP服务器,通过自然语言对话实现ROM加载、按钮控制、内存读取、截图等功能,适用于游戏逆向工程和知识构建。

  • by kdridi
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 kdridi/blobert-mcp

使用说明

布洛伯特·麦克普

一个MCP服务器,允许LLM播放、检查和理解Game Boy ROM。

加载ROM、按下按钮、读取内存、截图、设置断点、跟踪执行并构建知识库——所有这些都是通过与AI的自然对话完成的。

以Blobert的名字命名 男孩与软泥 (Game Boy,1990)——一个可以变成你需要的任何工具的伙伴。给布洛伯特一颗软糖,他就会成为你需要的工具。


这看起来像什么?

一个人和一个人工智能坐在Game Boy ROM上;AI监视机器。

You:  "Load Tetris and press Start"
AI:   [loads ROM, presses Start, takes screenshot]
      "I see the game started. Memory at 0xFFE1 changed — that's probably the game state flag."

You:  "What happens when a line is cleared?"
AI:   [saves state, plays until line clear, diffs memory]
      "12 addresses changed. 0xFF9E decremented — that's the remaining lines counter.
       The function at 0x2B4F handles line clearing. I'll name it ClearCompletedLines."

You:  "Can you write a Python script to trace all writes to that address?"
AI:   [generates and runs a PyBoy hook script]
      "Done. Here are the 4 functions that modify the lines counter..."

AI 看到屏幕, 读取内存, 控制输入,以及 建立理解 --一次一颗软糖。人类带来了意图、背景和领域知识。他们一起工作比单独工作更快。


运作原理

┌──────────┐              ┌──────────┐     MCP      ┌──────────┐   PyBoy API  ┌─────────┐
│  Human   │◄────────────►│ Claude / │◄────────────►│ blobert  │◄────────────►│  PyBoy  │
│ (plays,  │ conversation │ any LLM  │    tools     │   -mcp   │              │emulator │
│ observes)│              └──────────┘              │  + KB    │              └─────────┘
└──────────┘                                        └──────────┘
  • 人 玩游戏,描述他们所看到的,并指导调查
  • LLM 调用MCP工具,解释结果,并建立理解
  • 布洛伯特·麦克普 将PyBoy包装为MCP工具,并添加持久知识库
  • PyBoy 运行Game Boy模拟(无头、快速、Python原生)

这 知识库 在会话之间持续存在——因此AI逐步建立理解,不受任何单一上下文窗口的限制。


计划工具

就像Blobert随着每种软糖口味的变化而变化一样,每种工具都有不同的用途:

类别 人工智能将能够做什么 状态
仿真 加载ROM、前进帧、按下按钮、保存/恢复状态 计划
静态分析 反汇编代码,读取ROM字节,查找字节模式,定位字符串 计划
调试 设置执行断点、单步执行指令、读/写寄存器 计划
视觉的 截图、VRAM磁贴、精灵检查、磁贴地图查看器 计划中
知识库 命名函数、定义结构、注释地址、导出符号 计划
硬件 银行切换信息、中断状态、定时器/音频/串行状态 计划

完整规格(68个工具+4个未来)->


入门

状态:早期开发。 MCP服务器尚未实现。今天存在的是下面描述的规范、研究和愿景。

一旦核心构建完成,设置将如下:

# Clone and install from source
git clone https://github.com/user/blobert-mcp.git
cd blobert-mcp
uv pip install -e .

# Run the server with your own ROM
uv run blobert-mcp --rom your-game.gb
// Claude Desktop config (future)
{
  "mcpServers": {
    "blobert": {
      "command": "uvx",
      "args": ["blobert-mcp", "--rom", "your-game.gb"]
    }
  }
}

那就跟克劳德谈谈。让它探索ROM。

注: 您必须提供自己合法获得的ROM文件。本项目不包括或分发任何受版权保护的游戏数据。


为什么?

Game Boy库包含数千款游戏。少数人是由专门的社区进行逆向工程的(戳了戳, 黄色, 塞尔达LADX)——几十个人年复一年的手工劳动,一个字节接一个字节。

现有的工具功能强大——BGB、mgbdis、Ghidra和GhidraBoy——但它们需要深厚的专业知识和巨大的时间投入。 布洛伯特·麦克普 不会取代这些工具或使用它们的人。它为工作台增加了一个新的合作者:一个可以处理大量拆卸的人工智能,识别代码库中的模式,并在人类推动调查的同时维护一个结构化的知识库。

长期愿景: 加速ROM探索,这样任何好奇的人都可以开始了解他们最喜欢的游戏是如何工作的,并通过反编译为保护游戏历史的集体努力做出贡献。


这与传统的RE工具有何不同

传统工作流程 使用blobert mcp
打开BGB,手动设置断点,在文本文件中做笔记 用自然语言描述你想调查的内容;AI设置断点并自动注释
手工在反汇编列表中交叉引用内存访问 问“这个地址写了什么?”并获得上下文的答案
在数周/数月内建立游戏逻辑的心理模型 知识库在会话中积累理解,可共享和可导出
需要深入的GB硬件知识才能开始 人工智能知道内存映射、寄存器名称和硬件怪癖——它会边做边解释

这不是“人工智能取代了逆向工程师”,而是“人工智能让更多的人能够更快地使用逆向工程。”


状态

早期发育 --这是一个雄心勃勃的开始。

我们有:

我们正在建设:

  • []核心MCP服务器(仿真、内存、寄存器、输入)
  • []静态分析工具(拆卸、交叉引用)
  • []可视化工具(屏幕截图、VRAM、精灵)
  • []知识库(注释、函数、结构、导出)

常见问题解答

我需要拥有ROM吗? 对。这个项目提供的是工具,而不是游戏。您必须提供自己合法获得的ROM文件。

哪个法学硕士最有效? 任何支持MCP工具使用的LLM。克劳德(十四行诗或Opus)因其强大的推理能力和较大的上下文窗口而被推荐。多模式功能(见截图)很重要。

这能自动完全反编译游戏吗? 还没有,这不是V1的目标。V1是一个人与人工智能的协作工作流程。AI提供协助;人类的驱动力。全自动化是一个长期的研究方向。

这与使用Ghidra或IDA有何不同? 这些是专家们强大的独立工具。blobert mcp是一个对话式界面——你描述你想理解的内容,人工智能处理工具编排。将其视为逆向工程领域知识渊博的结对编程合作伙伴。


贡献

这个项目是仿真、逆向工程和人工智能的交叉点。如果你对其中任何一项感到兴奋,这里都有你的位置。

阅读 期刊 了解我们去过哪里,要去哪里。

贡献方式:

  • 试试规格 --阅读 mcp-spec.md 如果有什么不清楚、不可行或缺失,请告诉我们
  • 实施工具 --从规范中选择一个P0工具并构建它
  • 使用ROM进行测试 --一旦核心存在,就在你最喜欢的游戏上试试,分享你学到的东西
  • 打开一个问题 --欢迎提出问题、想法和反馈

致谢


许可证

麻省理工学院