experienceds/dota2-offset-dumper
GitHub: experienceds/dota2-offset-dumper
面向 Dota 2(Source 2 引擎)的运行时 schema、接口和引擎偏移量提取工具,通过特征码扫描实现跨游戏更新版本的稳定输出。
Stars: 0 | Forks: 0
# Dota 2 Offset Dumper
由于 schema 和 interface 数据是直接从引擎中读取的,因此输出结果对于当前运行的任何版本始终是正确的,这意味着它可以跨游戏更新持续工作。引擎全局变量是通过特征码扫描而不是硬编码地址来定位的。
## 输出
运行该工具会生成一个 `dota2_dump/` 文件夹,其中包含:
| 文件 | 内容 |
|------|----------|
| `client.dll.hpp`, `server.dll.hpp`, … | 每个类的完整 schema 字段偏移量,每个模块对应一个头文件 |
| `interfaces.hpp` | 运行时 interface 地址(通过 `CreateInterface` 解析) |
| `engine_offsets.hpp` | 引擎全局变量 —— 实体列表、视图矩阵、本地玩家控制器 |
| `important_offsets.hpp` | 精选的最常用类子集 |
典型输出:涵盖 20 个模块的约 14,300 个类和约 32,500 个字段。
示例 (`client.dll.hpp`):
```
namespace C_DOTA_BaseNPC { // size 0x19B0
constexpr auto m_bIsPhantom = 0xB90;
constexpr auto m_iUnitType = 0xB94;
constexpr auto m_iCurrentLevel = 0xBAC;
}
```
## 用法
1. 启动 Dota 2。
2. 运行 `dump.bat` 并允许提权提示 —— 读取其他进程的内存需要管理员权限。
3. 从可执行文件旁边创建的 `dota2_dump/` 文件夹中收集结果。
该 dumper 也可以直接运行:
```
dota2_dumper.exe
```
## 环境要求
- Windows x64
- 管理员权限
- 执行 dump 时 Dota 2 必须处于运行状态
## 注意事项
- 如果在大型游戏更新后,`engine_offsets.hpp` 中的任何值输出为 `0x0`,则需要更新相应的特征码。Schema 和 interface 输出不受影响,并将继续自动更新。
- 为了确认正确性,偏移量已通过两种独立的内存读取方法(usermode 和 DMA)进行了交叉验证。
## 免责声明
仅供教育和逆向工程研究目的使用。请在使用时遵守您所检查的任何软件的服务条款。
标签:Source 2引擎, 主机友好, 云资产清单, 内存提取, 字典生成, 数据解析, 游戏开发, 端点可见性, 逆向工程