Use clientpatch para interceptar os pacotes diretamente via cliente
🔹 Funções IAT (Import Address Table) - WS2_32.DLL:
#define WYD_RECV 0x00477c9c // recv() @ IAT
#define WYD_SEND 0x00477cac // send() @ IAT
// Endereços absolutos (com ImageBase 0x00400000):
recv @ 0x00877c9c
send @ 0x00877cac
🔹RVAs (Relative Virtual Address):
#define WYD_CSENDPACKET 0x000C8670 // CSendPacket (RVA)
#define WYD_SENDPACKET 0x000C8510 // SendPacket (RVA)
#define WYD_CSOCKADDR 0x005AA460 // Socket Manager (RVA)
// Cálculo em runtime:
DWORD imageBase = GetModuleHandle(NULL);
CSendPacket = imageBase + 0x000C8670 // = ~0x004C8670
SendPacket = imageBase + 0x000C8510 // = ~0x004C8510
CSockAddr = imageBase + 0x005AA460 // = ~0x009AA460
🌐 CONEXÃO COM TMSRV
🔹 Ponteiro Global de Socket:
// ATUAL:
#define WYD_NEW_CSOCKADDR imageBase + 0x005AA460
// Uso em ASM:
MOV ECX, DWORD PTR DS:[0x2453BC0] // Carregar ponteiro socket
caso seu vc seja pego pelo ant-cheat do global:
🛡️ BYPASS DO .DLL AO CLIENTE
🔹 Método de Hook IAT:
// 1. Aguardar desempacotamento (JProtect):
Sleep(2000); // 2 segundos
// 2. Calcular endereços IAT:
DWORD imageBase = GetModuleHandle(NULL);
DWORD iatRecvAddr = imageBase + 0x00477c9c;
DWORD iatSendAddr = imageBase + 0x00477cac;
// 3. Salvar originais:
Original_recv = *(DWORD*)iatRecvAddr;
Original_send = *(DWORD*)iatSendAddr;
// 4. Aplicar hooks:
VirtualProtect(iatRecvAddr, 4, PAGE_EXECUTE_READWRITE, &oldProtect);
*(DWORD*)iatRecvAddr = (DWORD)Hook_recv;
VirtualProtect(iatRecvAddr, 4, oldProtect, &oldProtect);
VirtualProtect(iatSendAddr, 4, PAGE_EXECUTE_READWRITE, &oldProtect);
*(DWORD*)iatSendAddr = (DWORD)Hook_send;
VirtualProtect(iatSendAddr, 4, oldProtect, &oldProtect);
🔹checksum principal:
#define RVA_CHECKSUM_MAIN 0x0011D232 // ✅ CONFIRMADO
// Assembly:
// 0x0011D232: 74 0B (JE +0x0B) ->
// 0x0011D232: EB 0B (JMP +0x0B)
// Código de patch:
DWORD patchAddr = imageBase + 0x0011D232;
*(BYTE*)patchAddr = 0xEB; // JE -> JMP
Endereços pode mudar com a versão do cliente que vc usa:
📋 RESUMO DOS ENDEREÇOS PRINCIPAIS:
Função Versão Antiga (RVA) Versão Atual (RVA) Absoluto Padrão
recv() IAT 0x00477c9c 0x00477c9c 0x00877c9c
send() IAT 0x00477cac 0x00477cac 0x00877cac
CSendPacket 0x0364F0 0x0C8670 0x004C8670
SendPacket 0x17A100 0x0C8510 0x004C8510
CSockAddr 0x02053BC0 0x5AA460 0x009AA460
Checksum Principal 0x1645B3 0x11D232 0x0051D232
isso vai te ajudar interceptar cliente e TMSRV todos os pacotes recv e send boa sorte