Не подскажешь пожалуйста в чем может быть проблема?Структуру GlowObjectDefinition_t чекни и там int m_nNextFreeSlot перенеси в начало, перед m_pEntity и всё
Не подскажешь пожалуйста в чем может быть проблема?Структуру GlowObjectDefinition_t чекни и там int m_nNextFreeSlot перенеси в начало, перед m_pEntity и всё
#include "include.h"
using namespace offsets::netvars;
using namespace offsets::signatures;
BOOL WINAPI glowThread(HMODULE hModule)
{
uintptr_t GameModule = (uintptr_t)GetModuleHandle("client.dll");
for (;!GetAsyncKeyState(VK_END); std::this_thread::sleep_for(std::chrono::microseconds(1)))
{
uintptr_t localPlayer = *(uintptr_t*)(GameModule + dwLocalPlayer);
uintptr_t GlowObjectManager = *(uintptr_t*)(GameModule + dwGlowObjectManager);
uintptr_t EntityList = *(uintptr_t*)(GameModule + dwEntityList);
if (localPlayer == NULL) continue;
uint32_t localTeam = *(uint32_t*)(localPlayer + m_iTeamNum);
for (int x = 0; x < 32; x++)
{
uintptr_t Enemy = *(uintptr_t*)(GameModule + dwEntityList + x * 0x10);
if (Enemy == NULL) continue;
uint32_t glowIndex = *(uint32_t*)(Enemy + m_iGlowIndex);
uint32_t enemyTeam = *(uint32_t*)(Enemy + m_iTeamNum);
if (enemyTeam != localTeam)
{
*(float*)(GlowObjectManager + glowIndex * 0x38 + 0x8) = 0.f; // R
*(float*)(GlowObjectManager + glowIndex * 0x38 + 0xC) = 1.f; // G
*(float*)(GlowObjectManager + glowIndex * 0x38 + 0x10) = 1.f; // B
*(float*)(GlowObjectManager + glowIndex * 0x38 + 0x14) = 1.7f; //A
}
*(float*)(GlowObjectManager + glowIndex * 0x38 + 0x28) = true;
*(float*)(GlowObjectManager + glowIndex * 0x38 + 0x29) = false;
}
}
FreeLibraryAndExitThread(hModule, 0);
return 0;
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls(hModule);
CreateThread(0, 0, 0, (LPTHREAD_START_ROUTINE)glowThread, 0, 0);
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
Крашить из-за нефикшенного глова не должно, насколько я знаю. Паттерн / оффсет обновил?У меня интернал, и я не понял что куда добавлять (добавил по 0x4 байт но крашит)
C++:#include "include.h" using namespace offsets::netvars; using namespace offsets::signatures; BOOL WINAPI glowThread(HMODULE hModule) { uintptr_t GameModule = (uintptr_t)GetModuleHandle("client.dll"); for (;!GetAsyncKeyState(VK_END); std::this_thread::sleep_for(std::chrono::microseconds(1))) { uintptr_t localPlayer = *(uintptr_t*)(GameModule + dwLocalPlayer); uintptr_t GlowObjectManager = *(uintptr_t*)(GameModule + dwGlowObjectManager); uintptr_t EntityList = *(uintptr_t*)(GameModule + dwEntityList); if (localPlayer == NULL) continue; uint32_t localTeam = *(uint32_t*)(localPlayer + m_iTeamNum); for (int x = 0; x < 32; x++) { uintptr_t Enemy = *(uintptr_t*)(GameModule + dwEntityList + x * 0x10); if (Enemy == NULL) continue; uint32_t glowIndex = *(uint32_t*)(Enemy + m_iGlowIndex); uint32_t enemyTeam = *(uint32_t*)(Enemy + m_iTeamNum); if (enemyTeam != localTeam) { *(float*)(GlowObjectManager + glowIndex * 0x38 + 0x8) = 0.f; // R *(float*)(GlowObjectManager + glowIndex * 0x38 + 0xC) = 1.f; // G *(float*)(GlowObjectManager + glowIndex * 0x38 + 0x10) = 1.f; // B *(float*)(GlowObjectManager + glowIndex * 0x38 + 0x14) = 1.7f; //A } *(float*)(GlowObjectManager + glowIndex * 0x38 + 0x28) = true; *(float*)(GlowObjectManager + glowIndex * 0x38 + 0x29) = false; } } FreeLibraryAndExitThread(hModule, 0); return 0; } BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: DisableThreadLibraryCalls(hModule); CreateThread(0, 0, 0, (LPTHREAD_START_ROUTINE)glowThread, 0, 0); case DLL_PROCESS_DETACH: break; } return TRUE; }
оффсеты последние с hazedumperПаттерн / оффсет обновил?
#pragma once
#include <cstdint>
#include <cstddef>
// 2021-07-07 17:54:59.023569200 UTC
namespace offsets {
constexpr ::std::int64_t timestamp = 1625680499;
namespace netvars {
constexpr ::std::ptrdiff_t cs_gamerules_data = 0x0;
constexpr ::std::ptrdiff_t m_ArmorValue = 0xB37C;
constexpr ::std::ptrdiff_t m_Collision = 0x320;
constexpr ::std::ptrdiff_t m_CollisionGroup = 0x474;
constexpr ::std::ptrdiff_t m_Local = 0x2FBC;
constexpr ::std::ptrdiff_t m_MoveType = 0x25C;
constexpr ::std::ptrdiff_t m_OriginalOwnerXuidHigh = 0x31C4;
constexpr ::std::ptrdiff_t m_OriginalOwnerXuidLow = 0x31C0;
constexpr ::std::ptrdiff_t m_SurvivalGameRuleDecisionTypes = 0x1328;
constexpr ::std::ptrdiff_t m_SurvivalRules = 0xD00;
constexpr ::std::ptrdiff_t m_aimPunchAngle = 0x302C;
constexpr ::std::ptrdiff_t m_aimPunchAngleVel = 0x3038;
constexpr ::std::ptrdiff_t m_angEyeAnglesX = 0xB380;
constexpr ::std::ptrdiff_t m_angEyeAnglesY = 0xB384;
constexpr ::std::ptrdiff_t m_bBombDefused = 0x29B0;
constexpr ::std::ptrdiff_t m_bBombPlanted = 0x9A5;
constexpr ::std::ptrdiff_t m_bBombTicking = 0x2980;
constexpr ::std::ptrdiff_t m_bFreezePeriod = 0x20;
constexpr ::std::ptrdiff_t m_bGunGameImmunity = 0x3944;
constexpr ::std::ptrdiff_t m_bHasDefuser = 0xB38C;
constexpr ::std::ptrdiff_t m_bHasHelmet = 0xB370;
constexpr ::std::ptrdiff_t m_bInReload = 0x32A5;
constexpr ::std::ptrdiff_t m_bIsDefusing = 0x3930;
constexpr ::std::ptrdiff_t m_bIsQueuedMatchmaking = 0x74;
constexpr ::std::ptrdiff_t m_bIsScoped = 0x3928;
constexpr ::std::ptrdiff_t m_bIsValveDS = 0x7C;
constexpr ::std::ptrdiff_t m_bSpotted = 0x93D;
constexpr ::std::ptrdiff_t m_bSpottedByMask = 0x980;
constexpr ::std::ptrdiff_t m_bStartedArming = 0x33F0;
constexpr ::std::ptrdiff_t m_bUseCustomAutoExposureMax = 0x9D9;
constexpr ::std::ptrdiff_t m_bUseCustomAutoExposureMin = 0x9D8;
constexpr ::std::ptrdiff_t m_bUseCustomBloomScale = 0x9DA;
constexpr ::std::ptrdiff_t m_clrRender = 0x70;
constexpr ::std::ptrdiff_t m_dwBoneMatrix = 0x26A8;
constexpr ::std::ptrdiff_t m_fAccuracyPenalty = 0x3330;
constexpr ::std::ptrdiff_t m_fFlags = 0x104;
constexpr ::std::ptrdiff_t m_flC4Blow = 0x2990;
constexpr ::std::ptrdiff_t m_flCustomAutoExposureMax = 0x9E0;
constexpr ::std::ptrdiff_t m_flCustomAutoExposureMin = 0x9DC;
constexpr ::std::ptrdiff_t m_flCustomBloomScale = 0x9E4;
constexpr ::std::ptrdiff_t m_flDefuseCountDown = 0x29AC;
constexpr ::std::ptrdiff_t m_flDefuseLength = 0x29A8;
constexpr ::std::ptrdiff_t m_flFallbackWear = 0x31D0;
constexpr ::std::ptrdiff_t m_flFlashDuration = 0xA420;
constexpr ::std::ptrdiff_t m_flFlashMaxAlpha = 0xA41C;
constexpr ::std::ptrdiff_t m_flLastBoneSetupTime = 0x2924;
constexpr ::std::ptrdiff_t m_flLowerBodyYawTarget = 0x3A90;
constexpr ::std::ptrdiff_t m_flNextAttack = 0x2D70;
constexpr ::std::ptrdiff_t m_flNextPrimaryAttack = 0x3238;
constexpr ::std::ptrdiff_t m_flSimulationTime = 0x268;
constexpr ::std::ptrdiff_t m_flTimerLength = 0x2994;
constexpr ::std::ptrdiff_t m_hActiveWeapon = 0x2EF8;
constexpr ::std::ptrdiff_t m_hBombDefuser = 0x29B4;
constexpr ::std::ptrdiff_t m_hMyWeapons = 0x2DF8;
constexpr ::std::ptrdiff_t m_hObserverTarget = 0x338C;
constexpr ::std::ptrdiff_t m_hOwner = 0x29CC;
constexpr ::std::ptrdiff_t m_hOwnerEntity = 0x14C;
constexpr ::std::ptrdiff_t m_hViewModel = 0x32F8;
constexpr ::std::ptrdiff_t m_iAccountID = 0x2FC8;
constexpr ::std::ptrdiff_t m_iClip1 = 0x3264;
constexpr ::std::ptrdiff_t m_iCompetitiveRanking = 0x1A84;
constexpr ::std::ptrdiff_t m_iCompetitiveWins = 0x1B88;
constexpr ::std::ptrdiff_t m_iCrosshairId = 0xB3E8;
constexpr ::std::ptrdiff_t m_iDefaultFOV = 0x332C;
constexpr ::std::ptrdiff_t m_iEntityQuality = 0x2FAC;
constexpr ::std::ptrdiff_t m_iFOVStart = 0x31E8;
constexpr ::std::ptrdiff_t m_iGlowIndex = 0xA438;
constexpr ::std::ptrdiff_t m_iHealth = 0x100;
constexpr ::std::ptrdiff_t m_iItemDefinitionIndex = 0x2FAA;
constexpr ::std::ptrdiff_t m_iItemIDHigh = 0x2FC0;
constexpr ::std::ptrdiff_t m_iMostRecentModelBoneCounter = 0x2690;
constexpr ::std::ptrdiff_t m_iObserverMode = 0x3378;
constexpr ::std::ptrdiff_t m_iShotsFired = 0xA390;
constexpr ::std::ptrdiff_t m_iState = 0x3258;
constexpr ::std::ptrdiff_t m_iTeamNum = 0xF4;
constexpr ::std::ptrdiff_t m_lifeState = 0x25F;
constexpr ::std::ptrdiff_t m_nBombSite = 0x2984;
constexpr ::std::ptrdiff_t m_nFallbackPaintKit = 0x31C8;
constexpr ::std::ptrdiff_t m_nFallbackSeed = 0x31CC;
constexpr ::std::ptrdiff_t m_nFallbackStatTrak = 0x31D4;
constexpr ::std::ptrdiff_t m_nForceBone = 0x268C;
constexpr ::std::ptrdiff_t m_nTickBase = 0x3430;
constexpr ::std::ptrdiff_t m_nViewModelIndex = 0x29C0;
constexpr ::std::ptrdiff_t m_rgflCoordinateFrame = 0x444;
constexpr ::std::ptrdiff_t m_szCustomName = 0x303C;
constexpr ::std::ptrdiff_t m_szLastPlaceName = 0x35B4;
constexpr ::std::ptrdiff_t m_thirdPersonViewAngles = 0x31D8;
constexpr ::std::ptrdiff_t m_vecOrigin = 0x138;
constexpr ::std::ptrdiff_t m_vecVelocity = 0x114;
constexpr ::std::ptrdiff_t m_vecViewOffset = 0x108;
constexpr ::std::ptrdiff_t m_viewPunchAngle = 0x3020;
constexpr ::std::ptrdiff_t m_zoomLevel = 0x33D0;
} // namespace netvars
namespace signatures {
constexpr ::std::ptrdiff_t anim_overlays = 0x2980;
constexpr ::std::ptrdiff_t clientstate_choked_commands = 0x4D30;
constexpr ::std::ptrdiff_t clientstate_delta_ticks = 0x174;
constexpr ::std::ptrdiff_t clientstate_last_outgoing_command = 0x4D2C;
constexpr ::std::ptrdiff_t clientstate_net_channel = 0x9C;
constexpr ::std::ptrdiff_t convar_name_hash_table = 0x2F0F8;
constexpr ::std::ptrdiff_t dwClientState = 0x588FEC;
constexpr ::std::ptrdiff_t dwClientState_GetLocalPlayer = 0x180;
constexpr ::std::ptrdiff_t dwClientState_IsHLTV = 0x4D48;
constexpr ::std::ptrdiff_t dwClientState_Map = 0x28C;
constexpr ::std::ptrdiff_t dwClientState_MapDirectory = 0x188;
constexpr ::std::ptrdiff_t dwClientState_MaxPlayer = 0x388;
constexpr ::std::ptrdiff_t dwClientState_PlayerInfo = 0x52C0;
constexpr ::std::ptrdiff_t dwClientState_State = 0x108;
constexpr ::std::ptrdiff_t dwClientState_ViewAngles = 0x4D90;
constexpr ::std::ptrdiff_t dwEntityList = 0x4DA21AC;
constexpr ::std::ptrdiff_t dwForceAttack = 0x31D26EC;
constexpr ::std::ptrdiff_t dwForceAttack2 = 0x31D26F8;
constexpr ::std::ptrdiff_t dwForceBackward = 0x31D2740;
constexpr ::std::ptrdiff_t dwForceForward = 0x31D274C;
constexpr ::std::ptrdiff_t dwForceJump = 0x524BF9C;
constexpr ::std::ptrdiff_t dwForceLeft = 0x31D2764;
constexpr ::std::ptrdiff_t dwForceRight = 0x31D2758;
constexpr ::std::ptrdiff_t dwGameDir = 0x627780;
constexpr ::std::ptrdiff_t dwGameRulesProxy = 0x52BF28C;
constexpr ::std::ptrdiff_t dwGetAllClasses = 0xDB101C;
constexpr ::std::ptrdiff_t dwGlobalVars = 0x588CF0;
constexpr ::std::ptrdiff_t dwGlowObjectManager = 0x52EA640;
constexpr ::std::ptrdiff_t dwInput = 0x51F3770;
constexpr ::std::ptrdiff_t dwInterfaceLinkList = 0x944B44;
constexpr ::std::ptrdiff_t dwLocalPlayer = 0xD892CC;
constexpr ::std::ptrdiff_t dwMouseEnable = 0xD8EE18;
constexpr ::std::ptrdiff_t dwMouseEnablePtr = 0xD8EDE8;
constexpr ::std::ptrdiff_t dwPlayerResource = 0x31D0A60;
constexpr ::std::ptrdiff_t dwRadarBase = 0x51D6F24;
constexpr ::std::ptrdiff_t dwSensitivity = 0xD8ECB4;
constexpr ::std::ptrdiff_t dwSensitivityPtr = 0xD8EC88;
constexpr ::std::ptrdiff_t dwSetClanTag = 0x8A1B0;
constexpr ::std::ptrdiff_t dwViewMatrix = 0x4D93AC4;
constexpr ::std::ptrdiff_t dwWeaponTable = 0x51F4230;
constexpr ::std::ptrdiff_t dwWeaponTableIndex = 0x325C;
constexpr ::std::ptrdiff_t dwYawPtr = 0xD8EA78;
constexpr ::std::ptrdiff_t dwZoomSensitivityRatioPtr = 0xD93D18;
constexpr ::std::ptrdiff_t dwbSendPackets = 0xD76CA;
constexpr ::std::ptrdiff_t dwppDirect3DDevice9 = 0xA7050;
constexpr ::std::ptrdiff_t find_hud_element = 0x5759F720;
constexpr ::std::ptrdiff_t force_update_spectator_glow = 0x3AF66A;
constexpr ::std::ptrdiff_t interface_engine_cvar = 0x3E9EC;
constexpr ::std::ptrdiff_t is_c4_owner = 0x3BC2C0;
constexpr ::std::ptrdiff_t m_bDormant = 0xED;
constexpr ::std::ptrdiff_t m_flSpawnTime = 0xA370;
constexpr ::std::ptrdiff_t m_pStudioHdr = 0x294C;
constexpr ::std::ptrdiff_t m_pitchClassPtr = 0x51D71C0;
constexpr ::std::ptrdiff_t m_yawClassPtr = 0xD8EA78;
constexpr ::std::ptrdiff_t model_ambient_min = 0x58C064;
constexpr ::std::ptrdiff_t set_abs_angles = 0x1E0AC0;
constexpr ::std::ptrdiff_t set_abs_origin = 0x1E0900;
} // namespace signatures
} // namespace hazedumper
Если с дампера то должно быть норм, они там актуальные. Продебаж, вряд-ли это из-за глова.оффсеты последние с hazedumper
C++:#pragma once #include <cstdint> #include <cstddef> // 2021-07-07 17:54:59.023569200 UTC namespace offsets { constexpr ::std::int64_t timestamp = 1625680499; namespace netvars { constexpr ::std::ptrdiff_t cs_gamerules_data = 0x0; constexpr ::std::ptrdiff_t m_ArmorValue = 0xB37C; constexpr ::std::ptrdiff_t m_Collision = 0x320; constexpr ::std::ptrdiff_t m_CollisionGroup = 0x474; constexpr ::std::ptrdiff_t m_Local = 0x2FBC; constexpr ::std::ptrdiff_t m_MoveType = 0x25C; constexpr ::std::ptrdiff_t m_OriginalOwnerXuidHigh = 0x31C4; constexpr ::std::ptrdiff_t m_OriginalOwnerXuidLow = 0x31C0; constexpr ::std::ptrdiff_t m_SurvivalGameRuleDecisionTypes = 0x1328; constexpr ::std::ptrdiff_t m_SurvivalRules = 0xD00; constexpr ::std::ptrdiff_t m_aimPunchAngle = 0x302C; constexpr ::std::ptrdiff_t m_aimPunchAngleVel = 0x3038; constexpr ::std::ptrdiff_t m_angEyeAnglesX = 0xB380; constexpr ::std::ptrdiff_t m_angEyeAnglesY = 0xB384; constexpr ::std::ptrdiff_t m_bBombDefused = 0x29B0; constexpr ::std::ptrdiff_t m_bBombPlanted = 0x9A5; constexpr ::std::ptrdiff_t m_bBombTicking = 0x2980; constexpr ::std::ptrdiff_t m_bFreezePeriod = 0x20; constexpr ::std::ptrdiff_t m_bGunGameImmunity = 0x3944; constexpr ::std::ptrdiff_t m_bHasDefuser = 0xB38C; constexpr ::std::ptrdiff_t m_bHasHelmet = 0xB370; constexpr ::std::ptrdiff_t m_bInReload = 0x32A5; constexpr ::std::ptrdiff_t m_bIsDefusing = 0x3930; constexpr ::std::ptrdiff_t m_bIsQueuedMatchmaking = 0x74; constexpr ::std::ptrdiff_t m_bIsScoped = 0x3928; constexpr ::std::ptrdiff_t m_bIsValveDS = 0x7C; constexpr ::std::ptrdiff_t m_bSpotted = 0x93D; constexpr ::std::ptrdiff_t m_bSpottedByMask = 0x980; constexpr ::std::ptrdiff_t m_bStartedArming = 0x33F0; constexpr ::std::ptrdiff_t m_bUseCustomAutoExposureMax = 0x9D9; constexpr ::std::ptrdiff_t m_bUseCustomAutoExposureMin = 0x9D8; constexpr ::std::ptrdiff_t m_bUseCustomBloomScale = 0x9DA; constexpr ::std::ptrdiff_t m_clrRender = 0x70; constexpr ::std::ptrdiff_t m_dwBoneMatrix = 0x26A8; constexpr ::std::ptrdiff_t m_fAccuracyPenalty = 0x3330; constexpr ::std::ptrdiff_t m_fFlags = 0x104; constexpr ::std::ptrdiff_t m_flC4Blow = 0x2990; constexpr ::std::ptrdiff_t m_flCustomAutoExposureMax = 0x9E0; constexpr ::std::ptrdiff_t m_flCustomAutoExposureMin = 0x9DC; constexpr ::std::ptrdiff_t m_flCustomBloomScale = 0x9E4; constexpr ::std::ptrdiff_t m_flDefuseCountDown = 0x29AC; constexpr ::std::ptrdiff_t m_flDefuseLength = 0x29A8; constexpr ::std::ptrdiff_t m_flFallbackWear = 0x31D0; constexpr ::std::ptrdiff_t m_flFlashDuration = 0xA420; constexpr ::std::ptrdiff_t m_flFlashMaxAlpha = 0xA41C; constexpr ::std::ptrdiff_t m_flLastBoneSetupTime = 0x2924; constexpr ::std::ptrdiff_t m_flLowerBodyYawTarget = 0x3A90; constexpr ::std::ptrdiff_t m_flNextAttack = 0x2D70; constexpr ::std::ptrdiff_t m_flNextPrimaryAttack = 0x3238; constexpr ::std::ptrdiff_t m_flSimulationTime = 0x268; constexpr ::std::ptrdiff_t m_flTimerLength = 0x2994; constexpr ::std::ptrdiff_t m_hActiveWeapon = 0x2EF8; constexpr ::std::ptrdiff_t m_hBombDefuser = 0x29B4; constexpr ::std::ptrdiff_t m_hMyWeapons = 0x2DF8; constexpr ::std::ptrdiff_t m_hObserverTarget = 0x338C; constexpr ::std::ptrdiff_t m_hOwner = 0x29CC; constexpr ::std::ptrdiff_t m_hOwnerEntity = 0x14C; constexpr ::std::ptrdiff_t m_hViewModel = 0x32F8; constexpr ::std::ptrdiff_t m_iAccountID = 0x2FC8; constexpr ::std::ptrdiff_t m_iClip1 = 0x3264; constexpr ::std::ptrdiff_t m_iCompetitiveRanking = 0x1A84; constexpr ::std::ptrdiff_t m_iCompetitiveWins = 0x1B88; constexpr ::std::ptrdiff_t m_iCrosshairId = 0xB3E8; constexpr ::std::ptrdiff_t m_iDefaultFOV = 0x332C; constexpr ::std::ptrdiff_t m_iEntityQuality = 0x2FAC; constexpr ::std::ptrdiff_t m_iFOVStart = 0x31E8; constexpr ::std::ptrdiff_t m_iGlowIndex = 0xA438; constexpr ::std::ptrdiff_t m_iHealth = 0x100; constexpr ::std::ptrdiff_t m_iItemDefinitionIndex = 0x2FAA; constexpr ::std::ptrdiff_t m_iItemIDHigh = 0x2FC0; constexpr ::std::ptrdiff_t m_iMostRecentModelBoneCounter = 0x2690; constexpr ::std::ptrdiff_t m_iObserverMode = 0x3378; constexpr ::std::ptrdiff_t m_iShotsFired = 0xA390; constexpr ::std::ptrdiff_t m_iState = 0x3258; constexpr ::std::ptrdiff_t m_iTeamNum = 0xF4; constexpr ::std::ptrdiff_t m_lifeState = 0x25F; constexpr ::std::ptrdiff_t m_nBombSite = 0x2984; constexpr ::std::ptrdiff_t m_nFallbackPaintKit = 0x31C8; constexpr ::std::ptrdiff_t m_nFallbackSeed = 0x31CC; constexpr ::std::ptrdiff_t m_nFallbackStatTrak = 0x31D4; constexpr ::std::ptrdiff_t m_nForceBone = 0x268C; constexpr ::std::ptrdiff_t m_nTickBase = 0x3430; constexpr ::std::ptrdiff_t m_nViewModelIndex = 0x29C0; constexpr ::std::ptrdiff_t m_rgflCoordinateFrame = 0x444; constexpr ::std::ptrdiff_t m_szCustomName = 0x303C; constexpr ::std::ptrdiff_t m_szLastPlaceName = 0x35B4; constexpr ::std::ptrdiff_t m_thirdPersonViewAngles = 0x31D8; constexpr ::std::ptrdiff_t m_vecOrigin = 0x138; constexpr ::std::ptrdiff_t m_vecVelocity = 0x114; constexpr ::std::ptrdiff_t m_vecViewOffset = 0x108; constexpr ::std::ptrdiff_t m_viewPunchAngle = 0x3020; constexpr ::std::ptrdiff_t m_zoomLevel = 0x33D0; } // namespace netvars namespace signatures { constexpr ::std::ptrdiff_t anim_overlays = 0x2980; constexpr ::std::ptrdiff_t clientstate_choked_commands = 0x4D30; constexpr ::std::ptrdiff_t clientstate_delta_ticks = 0x174; constexpr ::std::ptrdiff_t clientstate_last_outgoing_command = 0x4D2C; constexpr ::std::ptrdiff_t clientstate_net_channel = 0x9C; constexpr ::std::ptrdiff_t convar_name_hash_table = 0x2F0F8; constexpr ::std::ptrdiff_t dwClientState = 0x588FEC; constexpr ::std::ptrdiff_t dwClientState_GetLocalPlayer = 0x180; constexpr ::std::ptrdiff_t dwClientState_IsHLTV = 0x4D48; constexpr ::std::ptrdiff_t dwClientState_Map = 0x28C; constexpr ::std::ptrdiff_t dwClientState_MapDirectory = 0x188; constexpr ::std::ptrdiff_t dwClientState_MaxPlayer = 0x388; constexpr ::std::ptrdiff_t dwClientState_PlayerInfo = 0x52C0; constexpr ::std::ptrdiff_t dwClientState_State = 0x108; constexpr ::std::ptrdiff_t dwClientState_ViewAngles = 0x4D90; constexpr ::std::ptrdiff_t dwEntityList = 0x4DA21AC; constexpr ::std::ptrdiff_t dwForceAttack = 0x31D26EC; constexpr ::std::ptrdiff_t dwForceAttack2 = 0x31D26F8; constexpr ::std::ptrdiff_t dwForceBackward = 0x31D2740; constexpr ::std::ptrdiff_t dwForceForward = 0x31D274C; constexpr ::std::ptrdiff_t dwForceJump = 0x524BF9C; constexpr ::std::ptrdiff_t dwForceLeft = 0x31D2764; constexpr ::std::ptrdiff_t dwForceRight = 0x31D2758; constexpr ::std::ptrdiff_t dwGameDir = 0x627780; constexpr ::std::ptrdiff_t dwGameRulesProxy = 0x52BF28C; constexpr ::std::ptrdiff_t dwGetAllClasses = 0xDB101C; constexpr ::std::ptrdiff_t dwGlobalVars = 0x588CF0; constexpr ::std::ptrdiff_t dwGlowObjectManager = 0x52EA640; constexpr ::std::ptrdiff_t dwInput = 0x51F3770; constexpr ::std::ptrdiff_t dwInterfaceLinkList = 0x944B44; constexpr ::std::ptrdiff_t dwLocalPlayer = 0xD892CC; constexpr ::std::ptrdiff_t dwMouseEnable = 0xD8EE18; constexpr ::std::ptrdiff_t dwMouseEnablePtr = 0xD8EDE8; constexpr ::std::ptrdiff_t dwPlayerResource = 0x31D0A60; constexpr ::std::ptrdiff_t dwRadarBase = 0x51D6F24; constexpr ::std::ptrdiff_t dwSensitivity = 0xD8ECB4; constexpr ::std::ptrdiff_t dwSensitivityPtr = 0xD8EC88; constexpr ::std::ptrdiff_t dwSetClanTag = 0x8A1B0; constexpr ::std::ptrdiff_t dwViewMatrix = 0x4D93AC4; constexpr ::std::ptrdiff_t dwWeaponTable = 0x51F4230; constexpr ::std::ptrdiff_t dwWeaponTableIndex = 0x325C; constexpr ::std::ptrdiff_t dwYawPtr = 0xD8EA78; constexpr ::std::ptrdiff_t dwZoomSensitivityRatioPtr = 0xD93D18; constexpr ::std::ptrdiff_t dwbSendPackets = 0xD76CA; constexpr ::std::ptrdiff_t dwppDirect3DDevice9 = 0xA7050; constexpr ::std::ptrdiff_t find_hud_element = 0x5759F720; constexpr ::std::ptrdiff_t force_update_spectator_glow = 0x3AF66A; constexpr ::std::ptrdiff_t interface_engine_cvar = 0x3E9EC; constexpr ::std::ptrdiff_t is_c4_owner = 0x3BC2C0; constexpr ::std::ptrdiff_t m_bDormant = 0xED; constexpr ::std::ptrdiff_t m_flSpawnTime = 0xA370; constexpr ::std::ptrdiff_t m_pStudioHdr = 0x294C; constexpr ::std::ptrdiff_t m_pitchClassPtr = 0x51D71C0; constexpr ::std::ptrdiff_t m_yawClassPtr = 0xD8EA78; constexpr ::std::ptrdiff_t model_ambient_min = 0x58C064; constexpr ::std::ptrdiff_t set_abs_angles = 0x1E0AC0; constexpr ::std::ptrdiff_t set_abs_origin = 0x1E0900; } // namespace signatures } // namespace hazedumper
А что за паттерн? объясни, я овощь)
Отладка ничего не показалаПродебаж, вряд-ли это из-за глова.
#include "include.h"
using namespace offsets::netvars;
using namespace offsets::signatures;
BOOL WINAPI glowThread(HMODULE hModule)
{
uintptr_t GameModule = (uintptr_t)GetModuleHandle("client.dll");
for (;!GetAsyncKeyState(VK_END); std::this_thread::sleep_for(std::chrono::microseconds(1)))
{
uintptr_t localPlayer = (uintptr_t)(GameModule + dwLocalPlayer);
if (localPlayer == NULL) continue;
uintptr_t GlowObjectManager = *(uintptr_t*)(GameModule + dwGlowObjectManager);
uintptr_t EntityList = *(uintptr_t*)(GameModule + dwEntityList);
uint32_t localTeam = *(uint32_t*)(localPlayer + m_iTeamNum);
for (int x = 0; x < 32; x++)
{
uintptr_t Enemy = *(uintptr_t*)(GameModule + dwEntityList + x * 0x10);
if (Enemy == NULL) continue;
uint32_t glowIndex = *(uint32_t*)(Enemy + m_iGlowIndex);
uint32_t enemyTeam = *(uint32_t*)(Enemy + m_iTeamNum);
if (enemyTeam != localTeam)
{
*(float*)(GlowObjectManager + glowIndex * 0x38 + 0x8) = 0.f; // R
*(float*)(GlowObjectManager + glowIndex * 0x38 + 0xC) = 1.f; // G
*(float*)(GlowObjectManager + glowIndex * 0x38 + 0x10) = 1.f; // B
*(float*)(GlowObjectManager + glowIndex * 0x38 + 0x14) = 1.7f; //A
}
*(bool*)(GlowObjectManager + glowIndex * 0x38 + 0x28) = true;
*(bool*)(GlowObjectManager + glowIndex * 0x38 + 0x29) = false;
}
}
FreeLibraryAndExitThread(hModule, 0);
return 0;
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls(hModule);
CreateThread(0, 0, 0, (LPTHREAD_START_ROUTINE)glowThread, 0, 0);
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
Инжектить пустой билд без глова пробовал?Отладка ничего не показала
Я чуть менял код, когда в лобби (или в игре) инжекчу в кс дллку чита, то кс зависает и вылетает без ошибки
C++:#include "include.h" using namespace offsets::netvars; using namespace offsets::signatures; BOOL WINAPI glowThread(HMODULE hModule) { uintptr_t GameModule = (uintptr_t)GetModuleHandle("client.dll"); for (;!GetAsyncKeyState(VK_END); std::this_thread::sleep_for(std::chrono::microseconds(1))) { uintptr_t localPlayer = (uintptr_t)(GameModule + dwLocalPlayer); if (localPlayer == NULL) continue; uintptr_t GlowObjectManager = *(uintptr_t*)(GameModule + dwGlowObjectManager); uintptr_t EntityList = *(uintptr_t*)(GameModule + dwEntityList); uint32_t localTeam = *(uint32_t*)(localPlayer + m_iTeamNum); for (int x = 0; x < 32; x++) { uintptr_t Enemy = *(uintptr_t*)(GameModule + dwEntityList + x * 0x10); if (Enemy == NULL) continue; uint32_t glowIndex = *(uint32_t*)(Enemy + m_iGlowIndex); uint32_t enemyTeam = *(uint32_t*)(Enemy + m_iTeamNum); if (enemyTeam != localTeam) { *(float*)(GlowObjectManager + glowIndex * 0x38 + 0x8) = 0.f; // R *(float*)(GlowObjectManager + glowIndex * 0x38 + 0xC) = 1.f; // G *(float*)(GlowObjectManager + glowIndex * 0x38 + 0x10) = 1.f; // B *(float*)(GlowObjectManager + glowIndex * 0x38 + 0x14) = 1.7f; //A } *(bool*)(GlowObjectManager + glowIndex * 0x38 + 0x28) = true; *(bool*)(GlowObjectManager + glowIndex * 0x38 + 0x29) = false; } } FreeLibraryAndExitThread(hModule, 0); return 0; } BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: DisableThreadLibraryCalls(hModule); CreateThread(0, 0, 0, (LPTHREAD_START_ROUTINE)glowThread, 0, 0); case DLL_PROCESS_DETACH: break; } return TRUE; }
Тогда хз, я не по интерналам. Создай отдельную тему с вопросом.Нет, только что попробовал и снова краш, не подскажешь что делать?
Посмотреть вложение 161891
Привет, удалось ли тебе решить проблему ?Нет, только что попробовал и снова краш, не подскажешь что делать?
Посмотреть вложение 161891
Тема довольно старая. Попробуй какой-нибудь VAC Bypass инжектор, авось поможет) Если через ПХ инжектит, то не думаю, что проблема в коде.Привет, удалось ли тебе решить проблему ?
Лично у меня чит получается инжектить только через Process Hacker,
любой другой ижектор крашит игру.
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz