
Strumento di estrazione dello schema in runtime e RTTI per Deadlock, CS2, Dota e altri (Source 2). Nessun source2gen richiesto.
Estrae tutto da un gioco Source 2 in esecuzione (Deadlock, CS2, Dota 2) e genera un C++ SDK a prova di patch che risolve gli offset a runtime. Nessun valore hardcoded, nessun aggiornamento manuale quando il gioco viene patchato.

dezlock-dump.exe
Questo è tutto. Rileva automaticamente il gioco, esegue il dump di tutto, genera l'SDK completo. L'output finisce in schema-dump/<game>/ accanto all'eseguibile.
# Punta un gioco specifico
dezlock-dump.exe --process cs2.exe
# Modalità live — avvia un server WebSocket per l'ispezione delle entità in tempo reale
dezlock-dump.exe --live
Header C++ pronti all'uso per la tua DLL iniettata. I campi e le funzioni virtuali vengono risolti a runtime dal SchemaSystem del gioco — la tua DLL compilata sopravvive alle patch del gioco senza dover essere ricompilata.
#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)
Più di 2.400 strutture inclusi tutti i VData specifici del gioco (abilità, oggetti, armi, modificatori), 229 classi entità e 1.766 classi con wrapper per funzioni virtuali.
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
};
I nomi delle funzioni virtuali vengono scoperti automaticamente dal binario — riferimenti incrociati di stringhe di debug, inferenza di accesso ai membri e descrittori protobuf. Nessuna configurazione manuale.
cd viewer && pnpm install && pnpm dev
Trascina il tuo _all-modules.json sulla pagina, o connettiti in tempo reale a un dump in esecuzione (flag --live). Browser ricercabile di classi/campi/enumerazioni, ispettore di entità in tempo reale, catene di ereditarietà cliccabili, singleton globali, messaggi protobuf.
Richiede Visual Studio 2022 con carico di lavoro C++ desktop.
cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release
Nessun flag = genera tutto.
Solo a scopo educativo e di ricerca. Ispezione della memoria in sola lettura — nessuna modifica al gioco, nessun vantaggio competitivo. Utilizzo a proprio rischio; potrebbe violare i Termini di Servizio dell'applicazione target. I dati estratti rimangono proprietà intellettuale dei rispettivi proprietari.
| Output | Cosa |
|---|
internal-sdk/ | Header C++ risolti a runtime (entità, strutture, enumerazioni, VData) |
sdk/ | SDK statico con offset constexpr (si rompe con le patch, utile come riferimento) |
signatures/ | Pattern di byte in stile IDA per ogni funzione vtable in oltre 58 DLL |
_globals.txt | Più di 10.000 singleton globali scoperti automaticamente con alberi dei campi |
_protobuf-messages.txt | Definizioni .proto decodificate incorporate nei binari del gioco |
_all-modules.json | Esportazione JSON strutturata completa — alimenta il visualizzatore o i tuoi strumenti |
| Flag | Descrizione |
|---|
--process <name> | Processo target (default: rilevamento automatico) |
--output <dir> | Directory di output (default: schema-dump/<game>/) |
--live | Avvia server WebSocket su :9100 per ispezione in tempo reale |
--schema <path> | Carica dump JSON esistente invece di iniettare |
--internal-sdk | Genera solo SDK runtime |
--sdk | Genera solo SDK statico |
--signatures | Genera solo pattern di byte |
--layouts | Genera solo layout dei membri |