Detours
Detour Funcional, Testados em outros games tambem como ,warface , crossfire , etcs!...
Codigo :
VOID *Detour ( DWORD src, DWORD new_dst, size_t zslen )
{
void *pAlloc = 0;
DWORD dwProtect = 0,dwProtect2 = 0;
pAlloc = VirtualAlloc( 0, ( zslen + 5 ), 0x1000 | 0x2000, 0x40 );
if( pAlloc == 0 ) {
return 0;
}
if( VirtualProtect( ( void * )src, zslen, 0x40, &dwProtect ) == 0 ) {
return 0;
}
if( memcpy_s( pAlloc, ( zslen + 0x5 ), ( void * )src, ( zslen + 0x5 ) ) != 0 ) {
return 0;
}
*( BYTE * )( ( DWORD )pAlloc + zslen ) = 0xE9;
*( DWORD * )( ( DWORD )pAlloc + zslen + 1 ) = ( ( src + zslen ) - ( ( DWORD )pAlloc + zslen + 5 ) );
*( BYTE * )(src + 0 ) = 0xE9;
*( DWORD * )( src + 1 ) = ( new_dst - ( src + 5 ) );
for( size_t i = 5; i < zslen; i++ ) {
*( BYTE * )( src + i ) = 0x9E;
}
if( VirtualProtect( ( void * )src, zslen, dwProtect, &dwProtect2 ) == 0 ) {
return 0;
}
/* Modo De Usar -> oPresent (tPresent)Detour((DWORD ) dwVTable[1], (DWORD) &hkPresent,5); < */
Creditos : A mim .