Hi guys
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 );
}