Код:
void(__cdecl *_sendPacket)(void *self, char *format, ...) = NULL;
void *_clientSocket = NULL;
int __fastcall new_AddNetworkQueue(unsigned int This, unsigned int EDX, TNetworkPacket *NetworkPacket)
{
if (SendPacket == NULL) {
__asm {
mov ebx, ecx
mov ecx, [ebx + 0x48] ; see offset in disassembler
mov edx, [ecx]
mov _clientSocket, ecx
mov ecx, [edx + 0x6C]; in disassembler too
mov _sendPacket, ecx;
}
}
if ((*(unsigned int*) (KiUserExceptDispADR + 10) + KiUserExceptDispADR < hNtDllStart) || (*(unsigned int*) (KiUserExceptDispADR + 10) + KiUserExceptDispADR > hNtDllEnd))
ErrorExit("Bot Program Detected #0!");
unsigned int retAddr = *((unsigned int*) &NetworkPacket - 1);
if ((retAddr < hEngineStart) || (retAddr > hEngineEnd))
ErrorExit("Bot Program Detected #1!");
if (NetworkPacket->subid == 0xFFFF)
{
switch (NetworkPacket->id)
{
case 0x2E:
decodeKey(NetworkPacket->data + 1);
break;
case 0x74:
_sendPacket(_clientSocket, .....);
break;
}
}
return true_AddNetworkQueue(This, EDX, NetworkPacket);
}