
Herramienta de extracción de esquema de tiempo de ejecución + RTTI para Deadlock, CS2, Dota y otros (Source 2). No se requiere source2gen.
Extrae todo de un juego Source 2 en ejecución (Deadlock, CS2, Dota 2) y genera un SDK de C++ a prueba de parches que resuelve los offsets en tiempo de ejecución. Sin valores codificados, sin actualizaciones manuales cuando el juego recibe un parche.

dezlock-dump.exe
Eso es todo. Detecta el juego automáticamente, vuelca todo y genera el SDK completo. La salida se guarda en schema-dump/<game>/ junto al 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
Cabeceras C++ listas para usar en tu DLL inyectada. Los campos y las funciones virtuales se resuelven en tiempo de ejecución a partir del propio SchemaSystem del juego — tu DLL compilada sobrevive a los parches del juego sin necesidad de recompilar.
#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)
Más de 2.400 structs, incluidos todos los VData específicos del juego (habilidades, objetos, armas, modificadores), 229 clases de entidades y 1.766 clases con wrappers de funciones virtuales.
| Salida | Qué |
|---|---|
internal-sdk/ | Cabeceras C++ resueltas en tiempo de ejecución (entidades, structs, enums, VData) |
sdk/ | SDK estático con offsets constexpr (se rompe con los parches, útil como referencia) |
signatures/ | Patrones de bytes al estilo IDA para cada función de vtable en más de 58 DLLs |
_globals.txt | Más de 10.000 singletons globales autodescubiertos con árboles de campos |
_protobuf-messages.txt | Definiciones .proto decodificadas incrustadas en los binarios del juego |
_all-modules.json | Exportación JSON estructurada completa — aliméntala al visor o a tus propias herramientas |
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
};
Los nombres de funciones virtuales se descubren automáticamente a partir del binario: referencias cruzadas de cadenas de depuración, inferencia de acceso a miembros y descriptores de protobuf. Sin configuración manual.
cd viewer && pnpm install && pnpm dev
Suelta tu _all-modules.json en la página, o conéctate en vivo a un volcado en ejecución (flag --live). Navegador de clases/campos/enums con búsqueda, inspector de entidades en vivo, cadenas de herencia clicables, singletons globales, mensajes protobuf.
Requiere Visual Studio 2022 con la carga de trabajo de escritorio de C++.
cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release
| Flag | Descripción |
|---|---|
--process <name> | Proceso objetivo (por defecto: detección automática) |
--output <dir> | Directorio de salida (por defecto: schema-dump/<game>/) |
--live | Inicia el servidor WebSocket en :9100 para inspección en tiempo real |
--schema <path> | Carga un volcado JSON existente en lugar de inyectar |
--internal-sdk | Solo genera el SDK en tiempo de ejecución |
--sdk | Solo genera el SDK estático |
--signatures | Solo genera patrones de bytes |
--layouts | Solo genera diseños de miembros |
Sin flags = genera todo.
Solo con fines educativos y de investigación. Inspección de memoria de solo lectura: sin modificación del juego, sin ventaja competitiva. Úselo bajo su propio riesgo; puede infringir los ToS de la aplicación objetivo. Los datos extraídos siguen siendo propiedad intelectual de sus respectivos propietarios.