bool MUtil::findEntityList(DWORD clientDll, DWORD clientDllSize) { DWORD addr = this->findPattern(XorStr("\x05\x00\x00\x00\x00\xC1\xE9\x00\x39\x48\x04"), XorStr("x????xx?xxx"), clientDll, clientDll + clientDllSize, 0); if (addr) { entityList = *(DWORD*)(addr + 1) + *(char*)(addr + 7) - clientDll; return true; } return false; }
bool MUtil::findLocalPlayer(DWORD clientDll, DWORD clientDllSize) { DWORD addr = this->findPattern(XorStr("\x8D\x34\x85\x00\x00\x00\x00\x89\x15\x00\x00\x00\x00\x8B\x41\x08\x8B\x48\x00"), XorStr("xxx????xx????xxxxx?"), clientDll, clientDll + clientDllSize, 0); if (addr) { localPlayer = *(DWORD*)(addr + 3) + *(char*)(addr + 18) - clientDll; return true; } return false; }
void MUtil::init() { do { hClientDll = GetModuleHandleA(XorStr("client.dll")); hEngineDll = GetModuleHandleA(XorStr("engine.dll")); } while (hClientDll == NULL && hEngineDll == NULL); GetModuleInformation(GetCurrentProcess(), hClientDll, &modClientDll, sizeof(MODULEINFO)); GetModuleInformation(GetCurrentProcess(), hEngineDll, &modEngineDll, sizeof(MODULEINFO)); dClientDll = (DWORD)modClientDll.lpBaseOfDll; dEngineDll = (DWORD)modEngineDll.lpBaseOfDll; dClientDllSize = modClientDll.SizeOfImage; dEngineDllSize = modEngineDll.SizeOfImage; netMngr = new NetvarManager::Manager(); netMngr->init(); this->getOffsets(dClientDll, dClientDllSize, dEngineDll, dEngineDllSize); }
T* Interfaces::Grab( const char * module, const char * szinterface ) { tCreateInterface fn = ( tCreateInterface ) GetProcAddress( GetModuleHandle( module ), XorStr( "CreateInterface" ) ); return ( T* ) fn( szinterface, nullptr ); }
T* Interfaces::BruteForce( const char * module, const char * szinterface ) { tCreateInterface fn = ( tCreateInterface ) GetProcAddress( GetModuleHandle( module ), XorStr( "CreateInterface" ) ); char tmp [ 128 ]; for ( int i = 0; i < 100; i++ ) { sprintf_s( tmp, sizeof( tmp ), "%s0%i", szinterface, i ); T* return_ = ( T* ) fn( tmp, nullptr ); if ( return_ ) return return_; sprintf_s( tmp, sizeof( tmp ), "%s00%i", szinterface, i ); return_ = ( T* ) fn( tmp, nullptr ); if ( return_ ) return return_; } return nullptr; }
void MUtil::getOffsets(DWORD clientDll, DWORD clientDllSize, DWORD engineDll, DWORD engineDllSize) { bool offsetsComplete = true; firedShots = netMngr->getOffs(XorStr("CCSPlayer"), XorStr("m_iShotsFired")); flashDur = netMngr->getOffs(XorStr("CCSPlayer"), XorStr("m_flFlashDuration")); compRank = netMngr->getOffs(XorStr("CCSPlayerResource"), XorStr("m_iCompetitiveRanking")); compWins = netMngr->getOffs(XorStr("CCSPlayerResource"), XorStr("m_iCompetitiveWins")); bone = netMngr->getOffs(XorStr("CBaseAnimating"), XorStr("m_nForceBone")); bone += 0x1C; life = netMngr->getOffs(XorStr("CBasePlayer"), XorStr("m_iHealth")); flags = netMngr->getOffs(XorStr("CBasePlayer"), XorStr("m_fFlags")); lifeSt = netMngr->getOffs(XorStr("CBasePlayer"), XorStr("m_lifeState")); viewOrigin = netMngr->getOffs(XorStr("CBaseEntity"), XorStr("m_vecOrigin")); entTeam = netMngr->getOffs(XorStr("CBaseEntity"), XorStr("m_iTeamNum")); vecAngle = netMngr->getOffs(XorStr("CBasePlayer"), XorStr("m_vecViewOffset[0]")); activWeap = netMngr->getOffs(XorStr("CBasePlayer"), XorStr("m_hActiveWeapon")); itmDI = netMngr->getOffs(XorStr("CBaseCombatWeapon"), XorStr("m_iItemDefinitionIndex")); c4Time = netMngr->getOffs(XorStr("CPlantedC4"), XorStr("m_flC4Blow")); c4Tick = netMngr->getOffs(XorStr("CPlantedC4"), XorStr("m_bBombTicking")); c4Def = netMngr->getOffs(XorStr("CPlantedC4"), XorStr("m_bBombDefused")); coll = netMngr->getOffs(XorStr("CBasePlayer"), XorStr("m_Collision")); collGrp = netMngr->getOffs(XorStr("CBasePlayer"), XorStr("m_CollisionGroup")); rgflCoordinateFrame = collGrp - 0x30; entGlowIndex = flashDur + 0x18; if (!this->findLocalPlayer(clientDll, clientDllSize)) offsetsComplete = false; if (!this->findEntityList(clientDll, clientDllSize)) offsetsComplete = false; if (!this->findOffset(clientDll, clientDllSize, XorStr("\xE8\x00\x00\x00\x00\x83\xC4\x04\xB8\x00\x00\x00\x00\xC3\xCC"), XorStr("x????xxxx????xx"), 9, XorStr("glowObjectBase"), &glowObjectBase, true)) offsetsComplete = false; if (!this->findOffset(clientDll, clientDllSize, XorStr("\x89\x15\x00\x00\x00\x00\x8B\x15\x00\x00\x00\x00\xF6\xC2\x03\x74\x03\x83\xCE\x04\xA8\x04\xBF"), XorStr("xx????xx????xxxxxxxxxxx"), 2, XorStr("attackBtn"), &attackBtn, true)) offsetsComplete = false; if (!this->findOffset(clientDll, clientDllSize, XorStr("\x56\x57\x8B\xF9\xC7\x87\x00\x00\x00\x00\x00\x00\x00\x00\x8B\x0D"), XorStr("xxxxxx????xx"), 6, XorStr("inCross"), &inCross)) offsetsComplete = false; if (!this->findOffset(clientDll, clientDllSize, XorStr("\x0F\x7E\x82\x00\x00\x00\x00\x8B\x82\x00\x00\x00\x00\x66\x0F\xD6\x45\xD0\xF3"), XorStr("xxx????xx????xxxxxx"), 3, XorStr("vecPunch"), &vecPunch)) offsetsComplete = false; if (!this->findOffset(engineDll, engineDllSize, XorStr("\xF3\x0F\x5C\xC1\xF3\x0F\x10\x15\x00\x00\x00\x00\x0F\x2F\xD0\x76\x04\xF3\x0F\x58\xC1\xA1\x00\x00\x00\x00\xF3\x0F\x11\x80\x00\x00\x00\x00\xD9\x46\x04"), XorStr("xxxxxxxx????xxxxxxxxxx????xxxx????xxx"), 22, XorStr("engPtr"), &engPtr, true)) offsetsComplete = false; if (!this->findOffset(clientDll, clientDllSize, XorStr("\x8B\x3D\x00\x00\x00\x00\x85\xFF\x0F\x84\x00\x00\x00\x00\x81\xC7"), XorStr("xx????xxxx????xx"), 2, XorStr("gameRes"), &gameRes, true)) offsetsComplete = false; if (!this->findOffset(clientDll, clientDllSize, XorStr("\xA1\x00\x00\x00\x00\x8B\x0C\xB0\x8B\x01\xFF\x50\x00\x46\x3B\x35\x00\x00\x00\x00\x7C\xEA\x8B\x0D"), XorStr("x????xxxxxxx?xxx????xxxx"), 1, XorStr("radar"), &radar, true)) offsetsComplete = false; }
DWORD MUtil::getGlobalVars() { return this->findPattern(XorStr("\xA1\x00\x00\x00\x00\x5F\x8B\x40\x10"), XorStr("x????xxxx"), dClientDll, dClientDll + dClientDllSize, 0); }
DWORD MUtil::getIsRdy() { return this->findPattern(XorStr("\x55\x8B\xEC\x51\x56\x8B\x35\x00\x00\x00\x00\x80\x7E\x58\x00"), XorStr("xxxxxxx????xxxx"), dClientDll, dClientDll + dClientDllSize, 0); }
DWORD MUtil::getClientMode() { return this->findPattern(XorStr("\x8B\x35\x00\x00\x00\x00\x85\xFF\x74\x73"), XorStr("xx????xxxx"), dClientDll, dClientDll + dClientDllSize, 2); }
void CGlow::Act() { /* Start Deklaration für Glow */ std::uintptr_t entity = 0x0; size_t entity_team = 0; size_t entity_health = 0; size_t local_team = 0; std::uintptr_t local = 0x0; size_t classID = 0; size_t glowObjects = 0; GlowObject_t glowObject; std::uintptr_t glowObjectManager = 0x0; /* Ende Deklaration für Glow */ Sleep(50); g_pColor->printColor(XorStr(" [>| Glow wurde erfolgreich geladen. "), CC_RED, CC_WHITE); while (true) { if (g_pChecker->GetGlow() && g_pLocalplayer->fullload() ) { local = g_pLocalplayer->getLocal(); local_team = g_pLocalplayer->LocalPlayerTeam(); glowObjectManager = g_pLocalplayer->getGlowObjectManager(); if (!glowObjectManager) { Sleep(1); continue; } glowObjects = g_pMemory->Read< int >(g_pMemory->getClientAddress() + Offsets::signatures::dwGlowObjectManager + 0xC); if (!glowObjects || glowObjects <= 0) { Sleep(1); continue; } for (int i = 1; i <= glowObjects; i++) { glowObject = g_pMemory->Read< GlowObject_t >(glowObjectManager + i * sizeof(GlowObject_t)); entity = glowObject.pEntity; if (!entity || entity == local) { continue; } classID = g_pEntity->getClassID(entity); if (classID == CPlantedC4 || classID == CC4) { g_pEntity->setGlow(i, 2.f, 0.1f, 2.4f, 1.f, true, false); continue; } if (classID == 9 || classID == 41 || classID == 98 || classID == 130 || classID == 134 || classID == 66 && g_pChecker->getNadeglow() == true) { //Nades g_pEntity->setGlow(i, g_pChecker->nadeglowvalues(0), g_pChecker->nadeglowvalues(1), g_pChecker->nadeglowvalues(2), g_pChecker->nadeglowvalues(3), true, false); continue; } if (classID == 1 || classID == 39 || (classID >= 204 && classID <= 244) && g_pChecker->getWeaponglow() == true ) { //Waffen g_pEntity->setGlow(i, g_pChecker->weaponglowvalues(0), g_pChecker->weaponglowvalues(1), g_pChecker->weaponglowvalues(2), g_pChecker->weaponglowvalues(3), true, false); continue; } entity_health = g_pEntity->getHealth(entity); if (!entity_health || entity_health <= 0) { continue; } entity_team = g_pEntity->getTeam(entity); if (entity_team != local_team && g_pChecker->getEnemyglow() == true) { g_pEntity->setGlow(i, g_pChecker->enemyglowvalues(0), g_pChecker->enemyglowvalues(1), g_pChecker->enemyglowvalues(2), g_pChecker->enemyglowvalues(3), true, false); } if (entity_team == local_team && g_pChecker->getFriendglow() == true) { g_pEntity->setGlow(i, g_pChecker->friendglowvalues(0), g_pChecker->friendglowvalues(1), g_pChecker->friendglowvalues(2), g_pChecker->friendglowvalues(3), true, false); } } } std::this_thread::sleep_for(std::chrono::milliseconds(1)); } }