i can use detours api.. I can think 0x03 Hack shield send some security info ^^ and server check this info after expel ^^
PHP Code:
typedef void (WINAPI *pSend)(BYTE bHeader , LPCSTR szFormat , ... );
int __cdecl SendPacket (BYTE bHeader , LPCSTR szFormat , ... );
PHP Code:
DWORD dwFakeSend = dwFindPattern(0x401000,0x2bc000,(BYTE*)"\x55\x8B\xEC\x83\xEC\x18\x83\x3D\x00\x00\x00\x00\x00\x00\x00\x33\xC0","xxxxxxxx???????xx");
DWORD dwRealSendNoCrypt = dwFindPattern(dwFakeSend+1,0x2bc000,(BYTE*)"\x55\x8B\xEC\x83\xEC\x18\x83\x3D\x00\x00\x00\x00\x00\x00\x00\x33\xC0","xxxxxxxx???????xx");
DWORD dwSendBack = dwRealSendNoCrypt+0x06; // Send Addresss
pSend SendFunction = (pSend)(dwRealSendNoCrypt); // Send Function Deoturs
//Memory manupulation Check need send detours
DWORD dwMemCheck = dwFindPattern(0x401000,0xb70000,(BYTE*)"\xE9\x00\x00\x00\x00\x81\xBD\x00\x00\x00\x00\x05\x07\x01\x00\x0F\x84\x00\x00\x00\x00","x????xx????xxxxxx????");
DWORD dwMemCheckReal = dwMemCheck+15;
PHP Code:
//Memory Manupulation Secure Bypass;
DWORD oldProtect=NULL;
BYTE NOP[6]={90,90,90,90,90,90};
VirtualProtect((LPVOID)dwMemCheckReal, 6,PAGE_EXECUTE_READWRITE, &oldProtect);
memcpy((LPVOID)dwMemCheckReal,&NOP,6);
VirtualProtect((LPVOID)dwMemCheckReal, 6,oldProtect, NULL);
//Send Detours Start
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourAttach(&(PVOID&)SendFunction, SendPacket);
PHP Code:
int __declspec(naked) __cdecl SendPacket (BYTE bHeader , LPCSTR szFormat , ... ){
__asm{
push ebp
mov ebp, esp
sub esp, 18h
}
printf("PACKET TYPE:0x%02x FORMAT:%s\n",bHeader,szFormat);
__asm{JMP dwSendBack};
}