
Laufzeitschema- und RTTI-Extraktionstool für Deadlock, CS2, Dota und andere (Source 2). Kein source2gen erforderlich.
Extrahiert alles aus einem laufenden Source-2-Spiel (Deadlock, CS2, Dota 2) und generiert ein patch-sicheres C++ SDK, das Offsets zur Laufzeit auflöst. Keine hartcodierten Werte, keine manuellen Updates, wenn das Spiel gepatcht wird.

dezlock-dump.exe
Das war's. Erkennt das Spiel automatisch, dumpt alles, generiert das vollständige SDK. Die Ausgabe landet in schema-dump/<game>/ neben der exe.
# 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
Drop-in-C++-Header für Ihre injizierte DLL. Felder und virtuelle Funktionen werden zur Laufzeit aus dem eigenen SchemaSystem des Spiels aufgelöst — Ihre kompilierte DLL übersteht Spiel-Patches ohne Neukompilierung.
#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+ Structs, darunter alle spielspezifischen VData (Fähigkeiten, Gegenstände, Waffen, Modifikatoren), 229 Entitätsklassen und 1.766 Klassen mit Wrappern für virtuelle Funktionen.
| Ausgabe | Inhalt |
|---|---|
internal-sdk/ | Zur Laufzeit aufgelöste C++-Header (Entitäten, Structs, Enums, VData) |
sdk/ | Statisches SDK mit constexpr-Offsets (bricht bei Patches, nützlich als Referenz) |
signatures/ | Byte-Muster im IDA-Stil für jede Vtable-Funktion über 58+ DLLs hinweg |
_globals.txt | 10.000+ automatisch entdeckte globale Singletons mit Feldbäumen |
_protobuf-messages.txt | Dekodierte .proto-Definitionen, eingebettet in Spiel-Binärdateien |
_all-modules.json | Vollständiger strukturierter JSON-Export — speise ihn in den Viewer oder deine eigenen Tools ein |
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
};
Virtuelle Funktionsnamen werden automatisch aus der Binärdatei ermittelt – Debug-String-Xrefs, Member-Access-Inferenz und Protobuf-Deskriptoren. Keine manuelle Konfiguration.
cd viewer && pnpm install && pnpm dev
Legen Sie Ihre _all-modules.json auf der Seite ab oder verbinden Sie sich live mit einem laufenden Dump (Flag --live). Durchsuchbarer Klassen-/Feld-/Enum-Browser, Live-Entitätsinspektor, anklickbare Vererbungsketten, globale Singletons, Protobuf-Nachrichten.
Erfordert Visual Studio 2022 mit C++-Desktop-Workload.
cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release
| Flag | Beschreibung |
|---|---|
--process <name> | Zielprozess (Standard: automatische Erkennung) |
--output <dir> | Ausgabeverzeichnis (Standard: schema-dump/<game>/) |
--live | Startet einen WebSocket-Server auf :9100 für Echtzeit-Inspektion |
--schema <path> | Lädt einen vorhandenen JSON-Dump, anstatt zu injizieren |
--internal-sdk | Nur das Runtime-SDK generieren |
--sdk | Nur das statische SDK generieren |
--signatures | Nur Byte-Muster generieren |
--layouts | Nur Member-Layouts generieren |
Keine Flags = alles generieren.
Nur für Bildungs- und Forschungszwecke. Schreibgeschützte Speicherinspektion — keine Spielmodifikation, kein Wettbewerbsvorteil. Nutzung auf eigenes Risiko; kann gegen die ToS der Zielanwendung verstoßen. Extrahierte Daten bleiben das geistige Eigentum ihrer jeweiligen Inhaber.