0x8CEED4 - nProtect GameGuard 0x8CEEE8 - nProtect GameGuard - Not Running Error 0x8CEF08 - GameMon Check Error 0x8CE424 - BlackShot/Data/ check address 0x8CE340 - BlackShot/Data/ check address
void function_list_dump( )
{
dwGameGuardClassBase = GetGameGuard( );
do
{
GGMethodTable = *(PDWORD*)dwGameGuardClassBase;
Sleep(10);
}
while( !GGMethodTable );
while( *(PDWORD)((DWORD)dwGameGuardClassBase + 4) == NULL )
Sleep(10);
do
{
GGMethodTable2 = **(PDWORD**)((DWORD)dwGameGuardClassBase + 4);
}
while( !GGMethodTable2 );
#ifdef LOG_GG
pLog->log("\n-------------\nGG Method Table 1\nsize = %d", dwGetMethodCount(GGMethodTable));
PrintMethodLocations( GGMethodTable );
pLog->log("\n-------------\nGG Method Table 2\nsize = %d", dwGetMethodCount(GGMethodTable2));
PrintMethodLocations( GGMethodTable2 );
ExitProcess(0);
#endif
}
typedef PVOID (__cdecl* tGetGameGuard)( ); tGetGameGuard GetGameGuard = (tGetGameGuard)GGPTR;
mov eax, offset off_D25874 retn
void PrintMethodLocations( PDWORD pdwVMT )
{
DWORD dwIndex = 0;
for ( dwIndex = 0; pdwVMT[ dwIndex ]; dwIndex++ )
{
if ( IsBadCodePtr( ( FARPROC ) pdwVMT[ dwIndex ] ) )
{
break;
}
pLog->log("%i [ 0x%x ]", dwIndex, pdwVMT[dwIndex]);
}
}