---
name: cabal-source-ep33
description: "O que realmente é o código em D:\\Cabal\\source — dois projetos de extender EP33, não o source do jogo"
metadata: 
  node_type: memory
  type: project
  originSessionId: 153bd067-f5ce-4a37-9378-d46c0afa3789
  modified: 2026-08-16T14:21:18.898Z
---

`D:\Cabal\source` tem dois projetos, ambos de abril/2025, comentados **em português**:

- `WorldSvr main/WorldSvr` — extender **Linux** do WorldSvr (usa `dlfcn.h`, `sys/mman.h`,
  exporta `extern "C" void Init()`). Mesma família do `lib.so` que já roda no servidor
  (ver [[cabal-extender-modulos]]), mas **projeto diferente**: este tem MacroBM3, EventAlert,
  Warp e WindowList.
- `Cabal EP33 main/CabalEP33` — mod **Windows** do cliente (`.vcxproj`, DirectX, WndProc,
  VMProtect, Discord SDK).

**Não é o source do jogo.** Não dá pra recompilar o WorldSvr nem o CabalMain a partir daqui. O que
vale é serem **EP33 batendo com os binários que rodam**, e carregarem as definições que o binário
não entrega.

O que tem de mais útil:

- `Game/Structs/GameStructs.h` — **54 mil linhas**, 3,1 MB. Structs do jogo com bitfields nomeados:
  `ITEM_ID` (511), `ITEM_OPTION` (549), `ITEMDATA` (848), `ITEMUNIT` (961), `ITEMCONTEXT` (1437).
  Ver [[cabal-dar-itens]] para o layout de item que saiu daqui.
- `PacketManager/Protodefs.h` — enums de opcode (`MAINCMD_VALUE_EX`, etc.), mais
  `C2SPackets.h` / `S2CPackets.h` com as structs de pacote.
- Endereços absolutos do binário já mapeados, ex.: `BroadCastEToEveryWorld` = `0x075CDF0`,
  `IPC_CALL_PROC` = `0x0B37CE0`, contexto de servidor em `0x2162628`.

**Why:** confirma independentemente a engenharia reversa que já tinha sido feita —
`MAGIC_CODE 0xB7E2` em `Protodefs.h` é exatamente o marcador achado no crypto do LoginSvr, e
`MASK_ITEMKINDINDEX 0x6000FFF` é a mesma máscara deduzida do LootAnnouncer.

**Atenção:** os endereços absolutos são de um build específico. Antes de usar qualquer um deles no
servidor, conferir contra o binário real — os que foram verificados até agora eram do WorldSvr
Linux em `/etc/cabal_bin/WorldSvr`, cuja conversão é `VA = offset_no_arquivo + 0x400000`.
