从正在运行的 Source 2 游戏(Deadlock、CS2、Dota 2)中提取所有内容,并生成一个防补丁的 C++ SDK,在运行时解析偏移量。没有硬编码值,游戏打补丁时也无需手动更新。

dezlock-dump.exe
就是这样。自动检测游戏,转储所有内容,生成完整的 SDK。输出结果会落在 exe 旁边的 schema-dump/<game>/ 目录中。
# Target a specific game
dezlock-dump.exe --process cs2.exe
# Live mode — starts a WebSocket server for real-time entity inspection
dezlock-dump.exe --live
用于注入 DLL 的即插即用 C++ 头文件。字段和虚函数在运行时从游戏自身的 SchemaSystem 解析——你编译好的 DLL 无需重新构建即可在游戏补丁后继续使用。
#include "internal-sdk/client/entities/C_BaseEntity.hpp"
sdk::C_BaseEntity* ent = /* from entity list */;
// Fields — resolved at runtime, cached after first call
int hp = ent->m_iHealth();
uint8_t team = ent->m_iTeamNum();
bool alive = ent->is_alive();
// Virtual functions — call through vtable by index
int max_hp = ent->GetMaxHealth(); // VFUNC(163, int32_t, GetMaxHealth)
2,400+ 个结构体,包括所有游戏专属 VData(技能、物品、武器、修饰符)、229 个实体类,以及 1,766 个带虚函数包装的类。
| 输出 | 说明 |
|---|---|
internal-sdk/ | 运行时解析的 C++ 头文件(实体、结构体、枚举、VData) |
sdk/ | 带 constexpr 偏移量的静态 SDK(补丁后会失效,可作为参考) |
signatures/ | 覆盖 58+ 个 DLL 中每个 vtable 函数的 IDA 风格字节模式 |
_globals.txt | 10,000+ 个自动发现的全局单例及其字段树 |
_protobuf-messages.txt | 游戏二进制文件中嵌入的解码 .proto 定义 |
_all-modules.json | 完整的结构化 JSON 导出——可提供给查看器或你自己的工具使用 |
struct C_BaseEntity : CEntityInstance {
SCHEMA_CLASS("client.dll", "C_BaseEntity");
FIELD(m_iHealth, int32_t); // runtime-resolved field
FIELD_PTR(m_pGameSceneNode, void*); // pointer dereference
FIELD_ARRAY(m_nCurrencies, int32_t, 6); // fixed-size array
FIELD_BLOB(m_Particles, 40); // opaque bytes
VFUNC(146, int32_t, GetHealth); // named virtual call
VFUNC_ARGS(42, void, SetModel, const char*); // with arguments
VFUNC_RAW(53); // unnamed, with signature hint
};
虚函数名从二进制文件中自动发现——调试字符串交叉引用、成员访问推断和 protobuf 描述符。无需手动配置。
cd viewer && pnpm install && pnpm dev
将你的 _all-modules.json 拖放到页面上,或实时连接到正在运行的 dump(--live 标志)。可搜索的类/字段/枚举浏览器、实时实体检查器、可点击的继承链、全局单例、protobuf 消息。
需要安装带有 C++ 桌面工作负载的 Visual Studio 2022。
cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release
| 参数 | 描述 |
|---|---|
--process <name> | 目标进程(默认:自动检测) |
--output <dir> | 输出目录(默认:schema-dump/<game>/) |
--live | 在 :9100 上启动 WebSocket 服务器以进行实时检查 |
--schema <path> | 加载现有 JSON 转储而非注入 |
--internal-sdk | 仅生成运行时 SDK |
--sdk | 仅生成静态 SDK |
--signatures | 仅生成字节模式 |
--layouts | 仅生成成员布局 |
无参数 = 生成全部内容。
仅供教育和研究目的。只读内存检查——不修改游戏,不获取竞争优势。使用风险自负;可能违反目标应用程序的服务条款。提取的数据仍归其各自所有者所有。