
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 SDK C++ a prova di patch che risolve gli offset a runtime. Nessun valore hardcoded, nessun aggiornamento manuale quando il gioco riceve una patch.

dezlock-dump.exe
È tutto. Rileva automaticamente il gioco, esegue il dump di tutto, genera l'SDK completo. L'output finisce in schema-dump/<game>/ accanto all'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
Header C++ drop-in per la tua DLL iniettata. I campi e le funzioni virtuali vengono risolti a runtime dal SchemaSystem del gioco stesso — la tua DLL compilata sopravvive alle patch del gioco senza ricompilazione.
#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+ struct incluse tutte le VData specifiche del gioco (abilità, oggetti, armi, modificatori), 229 classi di entità e 1.766 classi con wrapper di funzioni virtuali.
| Output | Cosa |
|---|---|
internal-sdk/ | Header C++ risolti a runtime (entità, struct, enum, 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 | Oltre 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 — passala al viewer o ai tuoi strumenti |
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 — xref delle stringhe di debug, inferenza degli accessi ai membri e descrittori protobuf. Nessuna configurazione manuale.
cd viewer && pnpm install && pnpm dev
Trascina il tuo _all-modules.json sulla pagina, oppure connettiti in tempo reale a un dump in esecuzione (flag --live). Browser ricercabile di classi/campi/enum, ispettore di entità in tempo reale, catene di ereditarietà cliccabili, singleton globali, messaggi protobuf.
Richiede Visual Studio 2022 con il carico di lavoro desktop C++.
cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release
| Flag | Descrizione |
|---|---|
--process <name> | Processo di destinazione (predefinito: rilevamento automatico) |
--output <dir> | Directory di output (predefinita: schema-dump/<game>/) |
--live | Avvia il server WebSocket su :9100 per l'ispezione in tempo reale |
--schema <path> | Carica un dump JSON esistente invece di eseguire l'iniezione |
--internal-sdk | Genera solo l'SDK runtime |
--sdk | Genera solo l'SDK statico |
--signatures | Genera solo i pattern di byte |
--layouts | Genera solo i layout dei membri |
Nessun flag = genera tutto.
Solo a scopo educativo e di ricerca. Ispezione della memoria in sola lettura — nessuna modifica del gioco, nessun vantaggio competitivo. Utilizzare a proprio rischio; potrebbe violare i ToS dell'applicazione di destinazione. I dati estratti rimangono proprietà intellettuale dei rispettivi titolari.