How to Cook Counter Strike-2 Legit Brownies With Microsoft Visual Studio

Rio Darmawan
5 min readDec 17, 2023

--

Hello everyone, today ill explain how you can build your own legit brownies for cs2. The article does not explain the initial process of its creation; it only describes how you dump memory and then modify it using a previously made base.

Make sure you have downloaded Microsoft Visual Studio , the dumper program , base hax program (you can request to see my repository github)

Kitchen Rules

even the most experienced cooks need to follow kitchen rules. so whether you’re new to cooking or not, be sure to follow these guidlines so everyone is safe, legit , and ready to have fun.

1. Hygiene

Being clean and careful when you research something, use new account will prevent you from get vac banned and stop you getting poorly. and make sure after using this you can re-verify the game before playing without hax.

2. Safety

please disable your anti-virus and don’t forget re-enable your anti virus after playing with this. and update the offset when the cs2 update the game.

GETTING STARTED

in this article, i will only discuss how to update the offset when the game have daily update.

1. Open your CS2 Program

After the game has successfully entered the lobby, please minimize your game (alt + f4)

2. Run the dumper program

run the cs-2dumper.exe

3. Check the generated folders

After a successful dump, you will see a folder named generated

4. Open The CS2_External.sln with microsoft visual studio

You can find a file called CS2_External.sln in the “ingredients” folder that you downloaded in my private repository.

5. Open The Client.dll with your text editor apps

You can find a file called client.dll in the “generated” folder that you dump at the 2nd step.

6. Update the offset value

After both files are open, you can compare the values ​​in offsets.h which is open in Visual Studio with client.dll in your text editor. The offset at client.dll will change when the official game has updated their version of game you can check it here when the official announce the updates

example i trying edit the offset of healt value

and you must make sure you update the offset value from Health until AuthoritativeWeaponSlots

You can use the offset that I have given notes to in each field. example: if you want to update PlayerPawn you can ctrl+f on client.dll with my notes m_hPlayerPawn get the value and put in the PlayerPawn. Make sure the value has been updated correctly according to the memory value that you dumped.

 struct
{ //client.dll
DWORD Health = ;//m_ihealth
DWORD TeamID = ;//m_iTeamNum
DWORD IsAlive = ;//m_bPawnIsAlive
DWORD PlayerPawn = ;//m_hPlayerPawn < example here!!!!
DWORD iszPlayerName = ;//m_iszPlayerName
DWORD EnemySensor = ; // m_flDetectedByEnemySensorTime
} Entity;

struct
{
DWORD BulletServices = ;//m_pBulletServices
DWORD TotalHit = ;//m_totalHitsOnServer

DWORD Pos = ; // m_vOldOrigin
DWORD MaxHealth = ;//m_iMaxHealth
DWORD CurrentHealth = ; // m_iHealth
DWORD GameSceneNode = ;//m_pGameSceneNode
DWORD BoneArray = ;//tidak dipakai need research
DWORD angEyeAngles = ;//m_angEyeAngles
DWORD vecLastClipCameraPos = ;//m_vecLastClipCameraPos
DWORD pClippingWeapon = ;//m_pClippingWeapon
DWORD iShotsFired = ;//m_iShotsFired
DWORD flFlashDuration = ;//m_flFlashDuration
DWORD aimPunchAngle = ;//m_aimPunchAngle
DWORD aimPunchCache = ;//m_aimPunchCache
DWORD iIDEntIndex = ;//m_iIDEntIndex
DWORD iTeamNum = ;//m_iTeamNum
DWORD CameraServices = ; // m_pCameraServices
DWORD iFovStart = ;// m_iFOVStart
DWORD fFlags = ;//m_fFlags on C_BaseEntity
DWORD bSpottedByMask = 0x1638 + 0xC; // (C_BasePlayerPawn) entitySpottedState + bSpottedByMask
} Pawn;

struct
{
DWORD RealTime = 0x00;//need research
DWORD FrameCount = 0x04;//need research
DWORD MaxClients = 0x10;//need research
DWORD IntervalPerTick = 0x14;//need research
DWORD CurrentTime = 0x2C;//need research
DWORD CurrentTime2 = 0x30;//need research
DWORD TickCount = 0x40;//need research
DWORD IntervalPerTick2 = 0x44;//need research
DWORD CurrentNetchan = 0x0048;//need research
DWORD CurrentMap = 0x0180;//need research
DWORD CurrentMapName = 0x0188;//need research
} GlobalVar;

struct
{
DWORD m_hPawn = ;//m_hPawn
DWORD m_pObserverServices = ;//m_pObserverServices
DWORD m_hObserverTarget = ;//m_hObserverTarget
DWORD m_hController = ;//m_hController
} PlayerController;

struct
{
DWORD m_szName = ;//m_szName
} WeaponBaseData;

struct
{
DWORD m_bBeingDefused = ;//m_bBeingDefused
DWORD m_flDefuseCountDown = ;//m_flDefuseCountDown
DWORD m_nBombSite = ;//m_nBombSite
} C4;

// Never have a try for external skin changer
struct
{
DWORD MusicID = 0x40;
DWORD Rank = 0x44;
DWORD AuthoritativeWeaponSlots = 0x70;
} Inventory;

7. Build your codes

you can see the menus, and you can setup your own config

BEWARE THAT THE ABOVE SCREENSHOTS ARE ONLY DONE IN A NON-COMPETITIVE MODE, AND ONLY STANDS FOR EDUCATIONAL PURPOSES ONLY. I AM NOT RESPONSIBLE FOR ANY ACTION YOU MAKE WITH THE KNOWLEDGE THAT I SHARED WITH YOU.

I have completely changed this program so that it is currently not detected by VAC. Don’t use open source programs on GitHub that haven’t been edited. That can cause you to be detected by VAC because the VAC system recognizes open source programs.

Reference :
https://github.com/TKazer/CS2_External
https://github.com/KisSsArt/CS2-Cheat-Base
https://mark.rxmsolutions.com/basic-anti-cheat-evasion/

--

--