# (CS-GO) External Glow Esp (C++)

Sumber: https://nyit-nyit.net/threads/cs-go-external-glow-esp-c.235755/
Forum: Counter-Strike 2 (CS2) — Config & Cheat
Dibuat: 2023-09-03 oleh IvanKurniawan
Balasan: 2, dilihat: 1819

## Post pertama

Halo agan" N3 yang masih aktif :)

kali ini ane akan sharing source code glow esp untuk game "**CSGO**" ::nyengirn3::

base cheat ini bersifat external, jadi agan hanya perlu **run **'.exe' saja, tidak perlu DLL Injector dan semacamnya, karena file jadinya tidak bersifat .dll :)

Disclaimer: 
****

 VAC Protection"] VAC Protection"] VAC Protection"]
Klik kanan **CSGO **di Library -> Properties -> Launch Options

Kemudian enter:
-insecure

**(Dalam Mode ini tentunya anda tidak akan bisa join ke server manapun, kecuali bermain dengan bots!)**

[MS Visual Studio Community 2022](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&channel=Release&version=VS2022&source=VSLandingPage&cid=2030&passive=false)

64jDeHvShZI

**Berikut ini adalah Source Codenya:**

```
#pragma once
#include <TlHelp32.h>

// declare variable
uintptr_t moduleBase;
DWORD procID;
HWND hwnd;
HANDLE hProcess;

// offsets up2date from: https://github.com/frk1/hazedumper/blob/master/csgo.hpp (hazedumper)
namespace offsets
{
 // client.dll
 const uintptr_t dwLocalPlayer = 0xDEB99C;
 const uintptr_t dwGlowObjectManager = 0x535BAD0;
 const uintptr_t dwEntityList = 0x4E0102C;

 // entity object
 const uintptr_t m_iGlowIndex = 0x10488;
 const uintptr_t m_iTeamNum = 0xF4;
 const uintptr_t m_iHealth = 0x100;
 const uintptr_t m_bDormant = 0xED;
}

// utils
uintptr_t GetModuleBaseAddress(const char* modName) {
 HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, procID);
 if (hSnap != INVALID_HANDLE_VALUE) {
 MODULEENTRY32 modEntry;
 modEntry.dwSize = sizeof(modEntry);
 if (Module32First(hSnap, &modEntry)) {
 do {
 if (!strcmp(modEntry.szModule, modName)) {
 CloseHandle(hSnap);
 return (uintptr_t)modEntry.modBaseAddr;
 }
 } while (Module32Next(hSnap, &modEntry));
 }
 }
}

// Simplified Write process memory
template<typename T> T RPM(SIZE_T address) {
 T buffer;
 ReadProcessMemory(hProcess, (LPCVOID)address, &buffer, sizeof(T), NULL);
 return buffer;
}

// Simplified Read process memory
template<typename T> void WPM(SIZE_T address, T buffer) {
 WriteProcessMemory(hProcess, (LPVOID)address, &buffer, sizeof(buffer), NULL);
}
```

```
/*
* Simple Glow Esp External
* Inspired by: @Cyborg Elf from YT (https://www.youtube.com/watch?v=-FWjLMlD0Rs)
* Source Code by: Ivan Kurniawan
* Special thanks: @cazzywastaken & @pxcvbe
*/
#include <iostream>
#include <Windows.h>
#include "offsets.h"

DWORD getLocalPlayer() {
 return RPM<DWORD>(moduleBase + offsets::dwLocalPlayer);
}

DWORD isDormant(unsigned int Entity) {
 return RPM<DWORD>(Entity + offsets::m_bDormant);
}

int main()
{
 hwnd = FindWindowA(0, "Counter-Strike: Global Offensive - Direct3D 9");
 GetWindowThreadProcessId(hwnd, &procID);
 moduleBase = GetModuleBaseAddress("client.dll");
 hProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, procID);

 // loop and set panic keys
 while (!GetAsyncKeyState(VK_END))
 {
 uintptr_t dwGlowObjManager = RPM<uintptr_t>(moduleBase + offsets::dwGlowObjectManager);
 int localTeam = RPM<int>(getLocalPlayer() + offsets::m_iTeamNum);

 // loop through entity
 for (int i = 1; i < 64; i++)
 {
 uintptr_t dwEntity = RPM<uintptr_t>(moduleBase + offsets::dwEntityList + i * 0x10); // // tiap entity berikutnya didalam game harus dikali 10! (contoh: tempatke1 adalah 0, tempatke2 adalah 10, tempatke2 adalah 20, dst)

 int iGlowIndex = RPM<int>(dwEntity + offsets::m_iGlowIndex);
 int enemyHealth = RPM<int>(dwEntity + offsets::m_iHealth);
 int entityTeam = RPM<int>(dwEntity + offsets::m_iTeamNum);
 isDormant(dwEntity + offsets::m_bDormant);

 // skip draw dead player & health > 100
 if (enemyHealth < 1 || enemyHealth > 100)
 continue;

 // skip bDormant
 if (isDormant(dwEntity))
 continue;

 if (localTeam == entityTeam) // buat warna team menjadi hijau (green)
 {
 WPM<float>(dwGlowObjManager + (iGlowIndex * 0x38) + 0x8, 0.f); // red
 WPM<float>(dwGlowObjManager + (iGlowIndex * 0x38) + 0xC, 1.f); // green
 WPM<float>(dwGlowObjManager + (iGlowIndex * 0x38) + 0x10, 0.f); // blue
 WPM<float>(dwGlowObjManager + (iGlowIndex * 0x38) + 0x14, 1.f); // alpha
 }
 else // buat warna musuh menjadi merah (red)
 {
 WPM<float>(dwGlowObjManager + (iGlowIndex * 0x38) + 0x8, 1.f); // red
 WPM<float>(dwGlowObjManager + (iGlowIndex * 0x38) + 0xC, 0.f); // green
 WPM<float>(dwGlowObjManager + (iGlowIndex * 0x38) + 0x10, 0.f); // blue
 WPM<float>(dwGlowObjManager + (iGlowIndex * 0x38) + 0x14, 1.f); // alpha
 }

 // buat glow menjadi 'true'
 WPM<bool>(dwGlowObjManager + (iGlowIndex * 0x38) + 0x27, true);
 WPM<bool>(dwGlowObjManager + (iGlowIndex * 0x38) + 0x28, true);
 }
 }

 return 0;
}
```

Credits:
- [Ivan K](https://www.youtube.com/@ivankurniawan6825/videos)
- (https://github.com/pxcvbe)
- (https://github.com/frk1) & (https://github.com/ReactiioN1337) (hazedumper)
- [Cyborg Elf](https://www.youtube.com/watch?v=-FWjLMlD0Rs) (Original Source Code)
- (https://www.youtube.com/@cazz) (CSGO Hacking Fundamental)

## Balasan

### NyitNyitJamanDulu, 2023-09-03

Widiihh mantaap. Makasih banyak gaan udah sharee. Keep share yaa !!

### IvanKurniawan, 2023-09-04

siap, thanks gan :)

