
Deadlock、CS2、Dotaなどの(Source 2)向けランタイムスキーマ+RTTI抽出ツール。source2genは不要。
実行中のSource 2ゲーム(Deadlock、CS2、Dota 2)からすべてを抽出し、実行時にオフセットを解決するパッチ耐性のあるC++ SDKを生成します。ハードコードされた値はなく、ゲームがパッチされても手動で更新する必要はありません。

dezlock-dump.exe
以上です。ゲームを自動検出し、すべてをダンプし、完全なSDKを生成します。出力はexeと同じディレクトリの schema-dump/<game>/ に配置されます。
# 特定のゲームをターゲットにする
dezlock-dump.exe --process cs2.exe
# ライブモード — リアルタイムエンティティ検査のためのWebSocketサーバーを起動
dezlock-dump.exe --live
注入DLLにドロップインできるC++ヘッダー。フィールドと仮想関数はゲーム自身のSchemaSystemから実行時に解決されるため、コンパイルされたDLLはゲームパッチ後も再ビルドせずに動作し続けます。
#include "internal-sdk/client/entities/C_BaseEntity.hpp"
sdk::C_BaseEntity* ent = /* エンティティリストから */;
// フィールド — 実行時に解決され、初回呼び出し後にキャッシュされる
int hp = ent->m_iHealth();
uint8_t team = ent->m_iTeamNum();
bool alive = ent->is_alive();
// 仮想関数 — vtable経由でインデックス指定で呼び出し
int max_hp = ent->GetMaxHealth(); // VFUNC(163, int32_t, GetMaxHealth)
2,400以上の構造体(全ゲーム固有のVData(アビリティ、アイテム、武器、モディファイア)を含む)、229のエンティティクラス、および1,766の仮想関数ラッパーを持つクラス。
struct C_BaseEntity : CEntityInstance {
SCHEMA_CLASS("client.dll", "C_BaseEntity");
FIELD(m_iHealth, int32_t); // ランタイム解決フィールド
FIELD_PTR(m_pGameSceneNode, void*); // ポインタ間接参照
FIELD_ARRAY(m_nCurrencies, int32_t, 6); // 固定サイズ配列
FIELD_BLOB(m_Particles, 40); // 不透明なバイト列
VFUNC(146, int32_t, GetHealth); // 名前付き仮想呼び出し
VFUNC_ARGS(42, void, SetModel, const char*); // 引数付き
VFUNC_RAW(53); // 名前なし、シグネチャヒント付き
};
仮想関数名はバイナリから自動発見されます — デバッグ文字列のクロスリファレンス、メンバアクセスの推論、protobuf記述子など。手動設定は不要です。
cd viewer && pnpm install && pnpm dev
_all-modules.json をページにドロップするか、実行中のダンプにライブ接続(--live フラグ)します。検索可能なクラス/フィールド/列挙ブラウザ、ライブエンティティインスペクタ、クリック可能な継承チェーン、グローバルシングルトン、protobufメッセージ。
Visual Studio 2022とC++デスクトップワークロードが必要です。
cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release
フラグなし = すべて生成。
教育および研究目的のみです。読み取り専用のメモリ検査 — ゲームの改変や競争上の優位性はありません。自己責任で使用してください。対象アプリケーションの利用規約に違反する可能性があります。抽出されたデータはそれぞれの所有者の知的財産です。
| 出力 | 内容 |
|---|
internal-sdk/ | ランタイム解決されたC++ヘッダー(エンティティ、構造体、列挙型、VData) |
sdk/ | constexprオフセットを使用した静的SDK(パッチで壊れるが、リファレンスとして有用) |
signatures/ | 58以上のDLLにわたるすべてのvtable関数のIDAスタイルバイトパターン |
_globals.txt | フィールドツリーを持つ10,000以上の自動発見されたグローバルシングルトン |
_protobuf-messages.txt | ゲームバイナリに埋め込まれたデコード済み.proto定義 |
_all-modules.json | 完全な構造化JSONエクスポート — ビューアや独自のツールに投入可能 |
| フラグ | 説明 |
|---|
--process <name> | ターゲットプロセス(デフォルト:自動検出) |
--output <dir> | 出力ディレクトリ(デフォルト:schema-dump/<game>/) |
--live | リアルタイム検査のために :9100 でWebSocketサーバーを起動 |
--schema <path> | 注入する代わりに既存のJSONダンプをロード |
--internal-sdk | ランタイムSDKのみ生成 |
--sdk | 静的SDKのみ生成 |
--signatures | バイトパターンのみ生成 |
--layouts | メンバレイアウトのみ生成 |