
Deadlock, CS2, Dota 및 기타 게임(Source 2)을 위한 런타임 스키마 + RTTI 추출 도구입니다. source2gen이 필요하지 않습니다.
실행 중인 Source 2 게임(Deadlock, CS2, Dota 2)에서 모든 것을 추출하고, 런타임에 오프셋을 해석하는 패치 방지 C++ SDK를 생성합니다. 하드코딩된 값도 없고, 게임이 패치될 때 수동으로 업데이트할 필요도 없습니다.

dezlock-dump.exe
그게 전부입니다. 게임을 자동으로 감지하고, 모든 것을 덤프하며, 전체 SDK를 생성합니다. 출력물은 exe 옆의 schema-dump/<game>/에 저장됩니다.
# 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
주입된 DLL을 위한 드롭인 C++ 헤더입니다. 필드와 가상 함수는 게임 자체의 SchemaSystem에서 런타임에 해석되므로, 컴파일된 DLL은 재빌드 없이 게임 패치에서도 살아남습니다.
#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개 이상의 구조체 — 모든 게임별 VData(능력, 아이템, 무기, 수정자) 포함, 229개의 엔티티 클래스, 그리고 가상 함수 래퍼를 가진 1,766개의 클래스 포함.
| 출력 | 내용 |
|---|---|
internal-sdk/ | 런타임에 해석되는 C++ 헤더 (엔티티, 구조체, 열거형, VData) |
sdk/ | constexpr 오프셋을 사용하는 정적 SDK (패치 시 깨짐, 참조용으로 유용) |
signatures/ | 58개 이상의 DLL에 걸친 모든 vtable 함수에 대한 IDA 스타일 바이트 패턴 |
_globals.txt | 필드 트리를 가진 10,000개 이상의 자동 발견된 전역 싱글턴 |
_protobuf-messages.txt | 게임 바이너리에 내장된 디코딩된 .proto 정의 |
_all-modules.json | 완전한 구조화 JSON 내보내기 — 뷰어나 자체 도구에 제공하세요 |
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
};
가상 함수 이름은 바이너리에서 자동으로 검색됩니다 — 디버그 문자열 xref, 멤버 접근 추론, protobuf 디스크립터를 통해. 수동 설정이 필요 없습니다.
cd viewer && pnpm install && pnpm dev
_all-modules.json을 페이지에 드롭하거나, 실행 중인 덤프에 실시간으로 연결하세요(--live 플래그). 검색 가능한 클래스/필드/열거형 브라우저, 실시간 엔티티 검사기, 클릭 가능한 상속 체인, 전역 싱글톤, protobuf 메시지를 제공합니다.
C++ 데스크톱 워크로드가 포함된 Visual Studio 2022가 필요합니다.
cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release
| 플래그 | 설명 |
|---|---|
--process <name> | 대상 프로세스 (기본값: 자동 감지) |
--output <dir> | 출력 디렉터리 (기본값: schema-dump/<game>/) |
--live | 실시간 검사를 위해 :9100에서 WebSocket 서버 시작 |
--schema <path> | 주입하는 대신 기존 JSON 덤프 로드 |
--internal-sdk | 런타임 SDK만 생성 |
--sdk | 정적 SDK만 생성 |
--signatures | 바이트 패턴만 생성 |
--layouts | 멤버 레이아웃만 생성 |
플래그 없음 = 모든 항목 생성.
교육 및 연구 목적으로만 사용됩니다. 읽기 전용 메모리 검사 — 게임 수정 없음, 경쟁 우위 없음. 사용에 따른 책임은 사용자에게 있습니다. 대상 애플리케이션의 ToS를 위반할 수 있습니다. 추출된 데이터는 해당 소유자의 지적 재산으로 남습니다.