vaiserYT/GRET
GitHub: vaiserYT/GRET
GRET 是一个 GameMaker 游戏的终端逆向分析工具包,通过解析 data.win 文件并构建依赖关系图来揭示游戏的内部结构与隐藏内容。
Stars: 0 | Forks: 0
# GRET
**GameMaker 逆向工程工具包**
[](pyproject.toml)
GRET 是一个用于 GameMaker 游戏的静态分析工具包。它解析 `data.win` 二进制文件,解析内部引用,构建依赖关系图,并提供查询接口以理解游戏内部机制。专为需要在未运行游戏的情况下了解 GameMaker 游戏运行方式的研究人员、Modder 和开发者设计。
## 功能
**当前功能**
- 完整的 `data.win` 二进制解析器,支持所有主要 chunk(OBJT、ROOM、SPRT、SOND、STRG、CODE、FUNC、VARI、FONT、TMLN、PATH、SHDR、SEQU、BGND、DAFL、SCPT)
- 包含交叉引用的对象、房间、精灵图、声音和代码条目的资源数据库
- GMS2.3 事件解析 —— 正确处理带有 56 字节动作结构的两级指针列表事件格式
- 引用解析器 —— 将每个 CODE 条目映射到其所属的对象、脚本、房间或全局函数
- 调用图 —— 包含所有脚本/函数调用关系并去重边的有向图
- 房间图 —— 基于对象实例共享推导出的房间连通性
- 对象图 —— 继承链、房间放置、实例关系和精灵图使用情况
- 字节码解码器 —— GML 字节码的指令级反编译
- 隐藏内容发现 —— 检测未使用的房间、死对象、孤立的对话和可疑资源
- 标志位引用追踪 —— 识别整个代码库中标志位变量的读取和写入
- 字符串引用追踪 —— 将每个字符串字面量映射到其调用者
- 交互式 CLI —— 实时查询和探索游戏
- 富终端输出 —— 通过 `rich` 库实现格式化的表格、树形结构和颜色编码的结果
## 理念
GRET 不是一个 GameMaker 编辑器。它不会修改 `data.win`,不会将脚本反编译为可编辑的源码,也不会重新构建资源。
GRET 是一个逆向工程工具包。它的目的是通过揭示结构、依赖关系和隐藏内容,帮助你理解 GameMaker 游戏的运行机制。如果 UndertaleModTool 回答了“这是什么资源?”,那么 GRET 回答的则是“这个资源为什么存在,谁在使用它,如果我移除它会怎样?”
## 安装
要求 Python 3.12 或更高版本。
```
pip install -r requirements.txt
```
或者使用 pip 安装:
```
pip install .
```
依赖项:`networkx`(图)、`orjson`(快速 JSON)、`rich`(终端 UI)、`jinja2`(报告模板)、`graphviz`(可选,用于图导出)。
## 快速开始
```
python cli.py path/to/data.win
```
GRET 会加载游戏,解析所有 chunk,解析交叉引用,并打开一个交互式 shell:
```
Loaded 1733 objects, 252 rooms, 0 scripts, 8522 sprites, 764 sounds, 93214 strings
+ 209 functions, 38069 variables, 18025 code entries, 0 texture pages
Building graphs...
Ready for queries.
╭────────────────────────────────────────────╮
│ GameMaker Reverse Engineering Toolkit │
│ Type 'help' for commands, 'quit' to exit. │
╰────────────────────────────────────────────╯
gm>
```
你也可以非交互式地运行命令:
```
python cli.py path/to/data.win summary
python cli.py path/to/data.win why obj_ch5_LW21
python cli.py path/to/data.win room room_town_north
```
## CLI 命令
| 命令 | 描述 |
|---|---|
| `summary` | 显示资源汇总数量 |
| `graph` | 显示图统计信息(房间、调用、对象) |
| `why
标签:GameMaker, Python, 云安全监控, 云资产清单, 无后门, 游戏模组, 特权检测, 逆向工具, 逆向工程, 静态分析