
Ferramenta de extração de esquema em tempo de execução + RTTI para Deadlock, CS2, Dota e outros (Source 2). Não requer source2gen.
Extrai tudo de um jogo Source 2 em execução (Deadlock, CS2, Dota 2) e gera um SDK C++ à prova de patches que resolve offsets em tempo de execução. Sem valores fixos, sem atualizações manuais quando o jogo é atualizado.

dezlock-dump.exe
Pronto. Detecta automaticamente o jogo, extrai tudo, gera o SDK completo. A saída fica em schema-dump/<jogo>/ ao lado do executável.
# Segmentar um jogo específico
dezlock-dump.exe --process cs2.exe
# Modo ao vivo — inicia um servidor WebSocket para inspeção de entidades em tempo real
dezlock-dump.exe --live
Headers C++ prontos para uso em sua DLL injetada. Campos e funções virtuais são resolvidos em tempo de execução a partir do próprio SchemaSystem do jogo — sua DLL compilada sobrevive a patches do jogo sem precisar recompilar.
#include "internal-sdk/client/entities/C_BaseEntity.hpp"
sdk::C_BaseEntity* ent = /* da lista de entidades */;
// Campos — resolvidos em tempo de execução, cacheados após a primeira chamada
int hp = ent->m_iHealth();
uint8_t team = ent->m_iTeamNum();
bool alive = ent->is_alive();
// Funções virtuais — chamadas através da vtable por índice
int max_hp = ent->GetMaxHealth(); // VFUNC(163, int32_t, GetMaxHealth)
Mais de 2.400 structs incluindo todos os VData específicos do jogo (habilidades, itens, armas, modificadores), 229 classes de entidades e 1.766 classes com wrappers de funções virtuais.
struct C_BaseEntity : CEntityInstance {
SCHEMA_CLASS("client.dll", "C_BaseEntity");
FIELD(m_iHealth, int32_t); // campo resolvido em tempo de execução
FIELD_PTR(m_pGameSceneNode, void*); // desreferência de ponteiro
FIELD_ARRAY(m_nCurrencies, int32_t, 6); // array de tamanho fixo
FIELD_BLOB(m_Particles, 40); // bytes opacos
VFUNC(146, int32_t, GetHealth); // chamada virtual nomeada
VFUNC_ARGS(42, void, SetModel, const char*); // com argumentos
VFUNC_RAW(53); // sem nome, com dica de assinatura
};
Os nomes das funções virtuais são descobertos automaticamente a partir do binário — referências cruzadas de strings de depuração, inferência de acesso a membros e descritores protobuf. Nenhuma configuração manual.
cd viewer && pnpm install && pnpm dev
Arraste seu _all-modules.json para a página ou conecte-se ao vivo a um dump em execução (flag --live). Navegador de classes/campos/enums pesquisável, inspetor de entidades ao vivo, cadeias de herança clicáveis, singletons globais, mensagens protobuf.
Requer Visual Studio 2022 com a carga de trabalho de desktop em C++.
cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release
Sem flags = gera tudo.
Apenas para fins educacionais e de pesquisa. Inspeção de memória somente leitura — sem modificação do jogo, sem vantagem competitiva. Use por sua conta e risco; pode violar os Termos de Serviço do aplicativo alvo. Os dados extraídos permanecem propriedade intelectual de seus respectivos proprietários.
| Saída | O quê |
|---|
internal-sdk/ | Headers C++ com resolução em tempo de execução (entidades, structs, enums, VData) |
sdk/ | SDK estático com offsets constexpr (quebra com patches, útil como referência) |
signatures/ | Padrões de bytes estilo IDA para cada função vtable em mais de 58 DLLs |
_globals.txt | Mais de 10.000 singletons globais descobertos automaticamente com árvores de campos |
_protobuf-messages.txt | Definições .proto decodificadas embutidas nos binários do jogo |
_all-modules.json | Exportação JSON estruturada completa — alimente o visualizador ou suas próprias ferramentas |
| Flag | Descrição |
|---|
--process <nome> | Processo alvo (padrão: detecção automática) |
--output <dir> | Diretório de saída (padrão: schema-dump/<jogo>/) |
--live | Inicia servidor WebSocket na porta :9100 para inspeção em tempo real |
--schema <caminho> | Carrega dump JSON existente em vez de injetar |
--internal-sdk | Gera apenas o SDK em tempo de execução |
--sdk | Gera apenas o SDK estático |
--signatures | Gera apenas os padrões de bytes |
--layouts | Gera apenas os layouts de membros |