palepine/GDDumper

GitHub: palepine/GDDumper

一个基于Cheat Engine的运行时脚本,用于从运行中的Godot应用程序提取和分析场景节点数据,辅助逆向工程与调试工作。

Stars: 9 | Forks: 3

# Cheat Engine Runtime Godot Dumper Cheat Engine Godot Dumper 是一个 [Cheat Engine](https://github.com/cheat-engine/cheat-engine) 脚本,通过 Cheat Engine API 从运行中的 Godot 应用程序提取数据。该脚本转储根视口(root viewport)的节点数据,有助于逆向工程或调试。 本脚本仅供教育和研究目的提供。请负责任地使用。 ## 功能特性 - 支持 Godot 3.x 和 4.x。 - 将根视口的所有活动节点或单个节点转储到 Cheat Engine 的 AddressList。 - 从根视口创建 Cheat Engine 结构。 - 可选择监控节点并更新符号列表(Symbol List)。 - 基础 API 函数。 - GDScriptFunction 反汇编器(基于结构)。 ## 运行机制 该脚本仅适用于使用了 `GDScript` 的 GD 应用程序。 目前该脚本仅支持 `x64`。 这不是一个开箱即用的解决方案,对初学者来说可能相当复杂。它还需要创建 1) 根视口的符号,2) 定义引擎版本,以及 3) 偏移量。你可以在本[指南](GUIDE.MD)中了解如何找到它们。 ## 使用说明 1. 安装 [Cheat Engine](https://github.com/cheat-engine/cheat-engine)。 2. 将 `GDumper.lua` 放入 `Cheat Engine\autorun` 目录中。 3. 运行 Cheat Engine。 4. Hook 任何处理根视口地址的例程,或者在目标进程中找到指向它的静态指针,并将其存储在名为 'ptVP' 的符号中。 5. 会出现一个 `GDumper` 菜单项,点击 `Create Script`。 6. 运行 `Dumper` 让它尝试推测偏移量,或者自行定义它们,并使用与以下参数对应的值和偏移量调用 `initDumper`:`bOverrideAssumption, majorVersion, oChildren, oObjStringName, oGDScriptInstance, oGDScriptName, oFuncDict, oGDConst, oVariantNameHM, oVariantVector, oVariantNameHMVarType, oVarSize` 7. *(可选)* 调用 `DumpAllNodesToAddr()` 将根视口的所有节点转储到地址列表(如果过载可能会导致 CE 的 GUI 线程无响应),或者调用 `DumpNodeToAddr(memrec, getDumpedNode( "Globals" ), false)` 转储特定节点(两者均可异步调用)。 8. 使用 `nodeMonitor()` 启用/禁用节点的自动监控。 9. 在 'GDumper' 菜单中,启用 `GD Dissector` 并点击 `VP Struct` 以构建视口子节点结构。 ## 贡献 对于我尚未实现或可以更高效实现的功能,我将非常感谢任何帮助或想法。 ## 许可证 本项目基于 MIT License 发布。详情请参阅 [LICENSE](LICENSE)。
标签:Cheat Engine, CSV导出, GDScript, Godot Engine, JARM, Lua脚本, rizin, Ruby on Rails, Wayback Machine, x64, 云资产清单, 作弊引擎, 内存分析, 内存转储, 反汇编, 游戏安全, 游戏开发, 游戏逆向, 结构体分析, 节点提取, 运行时Hook, 逆向工程