//=================================================================================== DWORD CSignature::GetEngineSignature(char* chPattern) { static HMODULE hmModule = GetModuleHandleSafe("engine.dll"); static PIMAGE_DOS_HEADER pDOSHeader = (PIMAGE_DOS_HEADER)hmModule; static PIMAGE_NT_HEADERS pNTHeaders = (PIMAGE_NT_HEADERS)(((DWORD)hmModule) + pDOSHeader->e_lfanew); return dwFindPattern(((DWORD)hmModule) + pNTHeaders->OptionalHeader.BaseOfCode, ((DWORD)hmModule) + pNTHeaders->OptionalHeader.SizeOfCode, chPattern); }
DWORD WINAPI HookThread( LPVOID lpArguments ) { GetAllClasses_t gac; int index = 0; GetClientInterface( GetModuleHandleSafe( "client" ) ); //std::cout << "Version: %i" << cliversion << std::endl; //return -1; //-- switch( cliversion ) { //case 11: //case 12: //case 13: // CSS Engine // index = 5; // std::cout << "Source detected" << std::endl; // break; //case 15: // OB Engine // index = 6; // std::cout << "OB detected" << std::endl; // break; //case 16: // L4D 1 // index = 7; // std::cout << "L4D1 detected" << std::endl; // break; //case 17: // L4D 2 // index = 3; // std::cout << "L4D2 detected" << std::endl; // break; case 16: index = 8; std::cout << "Modern OB" << std::endl; break; default: std::cout << "Unknown engine! Version: " << cliversion << std::endl; return -1; } //-- gac = reinterpret_cast<GetAllClasses_t> ( GetFuncAdd( ClientInterface, index ) ); //-- std::cout << "Dumping to " << g_Directory << "netvars.h" << std::endl; //-- NetVars::Analyze( gac( ClientInterface ) ); NetVars::GenCode( ( g_Directory + "netvars.h").c_str() ); //-- std::cout << "NetVars dumped" << std::endl; return TRUE; }
DWORD WINAPI HookThread(LPVOID lpArguments) { GetAllClasses_t gac; int index = 0; GetClientInterface(GetModuleHandleSafe("client")); //-- switch(cliversion) { case 11: case 12: case 13: // CSS Engine index = 5; std::cout << "Source detected" << std::endl; break; case 15: // OB Engine index = 6; std::cout << "OB detected" << std::endl; break; case 16: // L4D 1 index = 7; std::cout << "L4D1 detected" << std::endl; break; case 17: // L4D 2 index = 3; std::cout << "L4D2 detected" << std::endl; break; } //-- gac = reinterpret_cast<GetAllClasses_t>(GetFuncAdd(ClientInterface, index)); //-- std::cout << "Dumping to " << g_Directory << "netvars.h" << std::endl; //-- NetVars::Analyze(gac(ClientInterface)); NetVars::GenCode((g_Directory + "netvars.h").c_str()); //-- std::cout << "NetVars dumped" << std::endl; return TRUE; }