Disconnect
Hi guys
this bypass Disconnect from Server Is it still working?
if working can you share new pattern
this bypass Disconnect from Server Is it still working?
if working can you share new pattern
Code:
#define check1 0x1B8F28 // aob: 75 ?? 32 ?? 5B 8B ?? ?? ?? ?? ??
#define check2 0x1B8F52 // aob: 73 ?? 85 ?? ?? ?? 85 ?? ?? ?? 32
#define check3 0x1B8F56 // aob: 7E ?? 85 ?? ?? ?? 32 ??
#define check4 0x1B8F5A // aob: 75 ?? 32 ?? E9 ?? ?? ?? ?? 55
#define check5 0x1B8F82 // aob: 7E ?? 57 53 E8 ?? ?? ?? ??
#define check6 0x1B8F9D // aob: 7E ?? 57 8D ?? ?? ?? 53 51 E8
#define hackDetect_1 0x1B8F86 // aob: E8 ?? ?? ?? ?? 83 ?? ?? 8B ?? 85 ?? 8B ?? 89 ?? ?? ??
#define hackDetect_2 0x1B920B // aob: E8 ?? ?? ?? ?? 8D ?? ?? 83 ?? ?? 89 ?? ?? 8B ?? 2B ??
#define hackDetect_3 0x1B9F5B // aob: E8 ?? ?? ?? ?? ?? ?? A1 ?? ?? ?? ?? 83 C0 ?? 83
#define hackDetect_4 0x1BA782 // aob: E8 ?? ?? ?? ?? 8B ?? ?? ?? 83 ?? ?? 89 ?? 33 ?? 85 ??
#define hackDetect_5 0x1BAB53 // aob: E8 ?? ?? ?? ?? 83 ?? ?? 39 ?? ?? ?? ?? ?? 55
#define hackDetect_6 0x1BACDA // aob: E8 ?? ?? ?? ?? 83 ?? ?? 39 ?? ?? ?? ?? ?? 55
void WINAPIV DisconectFromServer()
{
__asm
{
MOV ECX, DWORD PTR DS:[ ESP + 0x4 ]
XOR EAX, EAX
CMP [ ESP + 0x8 ], EAX
JMP RET_JE
RET_JNZ: MOVZX EDX, BYTE PTR DS:[ ECX ]
DEC [ ESP + 0x8 ]
XOR EDX, EAX
AND EDX, 0x0FF
SHR EAX, 0x8
XOR EAX, DWORD PTR DS:[ EDX*4 + 0x75A908 ]
INC ECX
CMP [ ESP + 0x8 ], 0x0
JNZ RET_JNZ
RET_JE: NOT EAX
}
}
void DetourCreateE8( BYTE *src, DWORD dst, DWORD len )
{
DWORD OldProtection, RealAddress;
VirtualProtect( src, len, PAGE_EXECUTE_READWRITE, &OldProtection );
RealAddress = ( DWORD ) ( ( dst + 1 ) - ( DWORD ) src ) - 5;
*src = 0xE8;
*( DWORD * ) ( src + 0x01 ) = RealAddress;
VirtualProtect( src, len, OldProtection, 0 );
return;
}
void check ()
{
DWORD Engine = (DWORD)GetModuleHandleA("crossfire.exe");
memcpy((VOID*)( Engine + check1 ), "\xEB", 1);
memcpy((VOID*)( Engine + check2 ), "\xEB", 1);
memcpy((VOID*)( Engine + check3 ), "\xEB", 1);
memcpy((VOID*)( Engine + check4 ), "\xEB", 1);
memcpy((VOID*)( Engine + check5 ), "\xEB", 1);
memcpy((VOID*)( Engine + check6 ), "\xEB", 1);
}
void CALLBypass ( )
{
check();
DWORD Engine = (DWORD)GetModuleHandleA("crossfire.exe");
DetourCreateE8( ( PBYTE ) ( Engine + hackDetect_1 ), ( DWORD ) DisconectFromServer, 5 );
DetourCreateE8( ( PBYTE ) ( Engine + hackDetect_2 ), ( DWORD ) DisconectFromServer, 5 );
DetourCreateE8( ( PBYTE ) ( Engine + hackDetect_3 ), ( DWORD ) DisconectFromServer, 5 );
DetourCreateE8( ( PBYTE ) ( Engine + hackDetect_4 ), ( DWORD ) DisconectFromServer, 5 );
DetourCreateE8( ( PBYTE ) ( Engine + hackDetect_5 ), ( DWORD ) DisconectFromServer, 5 );
DetourCreateE8( ( PBYTE ) ( Engine + hackDetect_6 ), ( DWORD ) DisconectFromServer, 5 );
}