Jump to content

Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. If you already have an account, login here - otherwise create an account for free today!

Make sure that your threads are placed in the correct sections. It saves the Moderation team some work.
KATE

How to make a CSGO external WH cheat in C#

Recommended Posts

Screenshot.png

Begin. Guide by CoderAlmir 💛

First, we create a Console application project in Visual C#.

Don't forget to connect System.Diagnostics!

Then we need to download a library to read and write memory to our game.

DOWNLOAD: Memory.zip

Next, in our namespace (in other words, as you named your project), or rather inside our namespace, we declare two variables.

1. Memory

Memory mem;

2. Our client

private static int client.dll;

So, now you can write the following code inside our main function:

static void Main()
{
    try
    {
    Process csgo = Process.GetProcessesByName("csgo")[0]; //Getting the process name
    mem = new Memory("csgo");
    
    foreach (ProcessModule module in csgo.Modules) //Module receiving cycle
    {

        if (module.ModuleName == "client_panorama.dll") // Condition, if this is the module we need, then assign the value to our client

            client_dll = (int)module.BaseAddress;
    }
    Console.WriteLine("The module was not received successfully!");
    }
    catch //Exception handling
    {
        Console.WriteLine("The module was not received successfully!");
    }
}

So, we wrote getting the module and conditions, whether it is our module, and also did exception handling.

Now let's proceed to the next step, making an infinite loop:

static void Main()
{
    try
    {
    Process csgo = Process.GetProcessesByName("csgo")[0]; //Get the process name
    mem = new Memory("csgo");
    
    foreach (ProcessModule module in csgo.Modules) //Module receiving cycle
    {

        if (module.ModuleName == "client_panorama.dll") // Condition, if this is the module we need, then assign the value to our client
            client_dll = (int)module.BaseAddress;
    }
    Console.WriteLine("The module was successfully received!");
    }
    catch //Обработка исключений
    {
        Console.WriteLine("The module was successfully received!");
    }
    while (true)
    {
        Thread.Sleep(1);

                int LocalPlayer = mem.Read<int>(bClient + Offsets.LocalPlayer);
                int PlayerTeam = mem.Read<int>(LocalPlayer + Offsets.TeamNum);

                for (int i = 0; i < 64; i++)
                {

                    int EntityList = mem.Read<int>(bClient + Offsets.entitylist + i * 0x10);
                    int EntityTeam = mem.Read<int>(EntityList + Offsets.TeamNum);

                    if (EntityTeam != 0 && EntityTeam != PlayerTeam)
                    {
                        int GlowIndex = mem.Read<int>(EntityList + Offsets.glowindex);
                        float HP = mem.Read<int>(EntityList + Offsets.health);

                        DrawEntityHP(GlowIndex, HP);
                    }
                }
    }

So we declared a variable and did our player rendering cycle.

Now declare our function that is in the loop.

public static void DrawEntityHP(int GlowIndex, float HP)
        {
            int GlowObject = mem.Read<int>(bClient + Offsets.glowobjectmanager);
            mem.Write(GlowObject + (GlowIndex * 0x38) + 4, 1 - HP / 100f);
            mem.Write(GlowObject + (GlowIndex * 0x38) + 8, HP / 100f);
            mem.Write(GlowObject + (GlowIndex * 0x38) + 12, 0 / 100f);
            mem.Write(GlowObject + (GlowIndex * 0x38) + 0x10, 255 / 100f);
            mem.Write(GlowObject + (GlowIndex * 0x38) + 0x24, true);
            mem.Write(GlowObject + (GlowIndex * 0x38) + 0x25, false);
        }

The function is declared, now what? Now, as we can see, if there is a word like "Offsets", what is it? "Offsets" are offsets in our game.

Then we declare the Offsets class, the class where our offsets will be stored

class Offsets
    {
        public const Int32 m_ArmorValue = 0xB340;
        public const Int32 m_Collision = 0x31C;
        public const Int32 m_CollisionGroup = 0x474;
        public const Int32 m_Local = 0x2FBC;
        public const Int32 m_MoveType = 0x25C;
        public const Int32 m_OriginalOwnerXuidHigh = 0x31B4;
        public const Int32 m_OriginalOwnerXuidLow = 0x31B0;
        public const Int32 m_SurvivalGameRuleDecisionTypes = 0x1320;
        public const Int32 m_SurvivalRules = 0xCF8;
        public const Int32 m_aimPunchAngle = 0x302C;
        public const Int32 m_aimPunchAngleVel = 0x3038;
        public const Int32 m_angEyeAnglesX = 0xB344;
        public const Int32 m_angEyeAnglesY = 0xB348;
        public const Int32 m_bBombPlanted = 0x99D;
        public const Int32 m_bFreezePeriod = 0x20;
        public const Int32 m_bGunGameImmunity = 0x392C;
        public const Int32 m_bHasDefuser = 0xB350;
        public const Int32 m_bHasHelmet = 0xB334;
        public const Int32 m_bInReload = 0x3285;
        public const Int32 m_bIsDefusing = 0x3918;
        public const Int32 m_bIsQueuedMatchmaking = 0x74;
        public const Int32 m_bIsScoped = 0x3910;
        public const Int32 m_bIsValveDS = 0x75;
        public const Int32 m_bSpotted = 0x93D;
        public const Int32 m_bSpottedByMask = 0x980;
        public const Int32 m_bStartedArming = 0x33D0;
        public const Int32 m_clrRender = 0x70;
        public const Int32 m_dwBoneMatrix = 0x26A8;
        public const Int32 m_fAccuracyPenalty = 0x3310;
        public const Int32 m_fFlags = 0x104;
        public const Int32 m_flC4Blow = 0x2990;
        public const Int32 m_flDefuseCountDown = 0x29AC;
        public const Int32 m_flDefuseLength = 0x29A8;
        public const Int32 m_flFallbackWear = 0x31C0;
        public const Int32 m_flFlashDuration = 0xA3F4;
        public const Int32 m_flFlashMaxAlpha = 0xA3F0;
        public const Int32 m_flLastBoneSetupTime = 0x2924;
        public const Int32 m_flLowerBodyYawTarget = 0x3A78;
        public const Int32 m_flNextAttack = 0x2D70;
        public const Int32 m_flNextPrimaryAttack = 0x3218;
        public const Int32 m_flSimulationTime = 0x268;
        public const Int32 m_flTimerLength = 0x2994;
        public const Int32 m_hActiveWeapon = 0x2EF8;
        public const Int32 m_hMyWeapons = 0x2DF8;
        public const Int32 m_hObserverTarget = 0x3388;
        public const Int32 m_hOwner = 0x29CC;
        public const Int32 m_hOwnerEntity = 0x14C;
        public const Int32 m_iAccountID = 0x2FC8;
        public const Int32 m_iClip1 = 0x3244;
        public const Int32 m_iCompetitiveRanking = 0x1A84;
        public const Int32 m_iCompetitiveWins = 0x1B88;
        public const Int32 m_iCrosshairId = 0xB3AC;
        public const Int32 m_iEntityQuality = 0x2FAC;
        public const Int32 m_iFOV = 0x31E4;
        public const Int32 m_iFOVStart = 0x31E8;
        public const Int32 glowindex = 0xA40C;
        public const Int32 health = 0x100;
        public const Int32 m_iItemDefinitionIndex = 0x2FAA;
        public const Int32 m_iItemIDHigh = 0x2FC0;
        public const Int32 m_iMostRecentModelBoneCounter = 0x2690;
        public const Int32 m_iObserverMode = 0x3374;
        public const Int32 m_iShotsFired = 0xA380;
        public const Int32 m_iState = 0x3238;
        public const Int32 TeamNum = 0xF4;
        public const Int32 m_lifeState = 0x25F;
        public const Int32 m_nFallbackPaintKit = 0x31B8;
        public const Int32 m_nFallbackSeed = 0x31BC;
        public const Int32 m_nFallbackStatTrak = 0x31C4;
        public const Int32 m_nForceBone = 0x268C;
        public const Int32 m_nTickBase = 0x342C;
        public const Int32 m_rgflCoordinateFrame = 0x444;
        public const Int32 m_szCustomName = 0x303C;
        public const Int32 m_szLastPlaceName = 0x35B0;
        public const Int32 m_thirdPersonViewAngles = 0x31D8;
        public const Int32 vecOriginPosition = 0x138;
        public const Int32 m_vecVelocity = 0x114;
        public const Int32 m_vecViewOffset = 0x108;
        public const Int32 m_viewPunchAngle = 0x3020;
        public const Int32 clientstate_choked_commands = 0x4D28;
        public const Int32 clientstate_delta_ticks = 0x174;
        public const Int32 clientstate_last_outgoing_command = 0x4D24;
        public const Int32 clientstate_net_channel = 0x9C;
        public const Int32 convar_name_hash_table = 0x2F0F8;
        public const Int32 dwClientState = 0x58CCFC;
        public const Int32 dwClientState_GetLocalPlayer = 0x180;
        public const Int32 dwClientState_IsHLTV = 0x4D40;
        public const Int32 dwClientState_Map = 0x28C;
        public const Int32 dwClientState_MapDirectory = 0x188;
        public const Int32 dwClientState_MaxPlayer = 0x388;
        public const Int32 dwClientState_PlayerInfo = 0x52B8;
        public const Int32 dwClientState_State = 0x108;
        public const Int32 dwClientState_ViewAngles = 0x4D88;
        public const Int32 entitylist = 0x4D05AD4;
        public const Int32 dwForceAttack = 0x31371C0;
        public const Int32 dwForceAttack2 = 0x31371CC;
        public const Int32 dwForceBackward = 0x3137214;
        public const Int32 dwForceForward = 0x3137220;
        public const Int32 jumpforce = 0x51A918C;
        public const Int32 dwForceLeft = 0x313719C;
        public const Int32 dwForceRight = 0x3137190;
        public const Int32 dwGameDir = 0x632F70;
        public const Int32 dwGameRulesProxy = 0x521B4D4;
        public const Int32 dwGetAllClasses = 0xD1895C;
        public const Int32 dwGlobalVars = 0x58CA00;
        public const Int32 glowobjectmanager = 0x5245FE8;
        public const Int32 dwInput = 0x5150B20;
        public const Int32 dwInterfaceLinkList = 0x8C8014;
        public const Int32 LocalPlayer = 0xCF3A3C;
        public const Int32 dwMouseEnable = 0xCF9588;
        public const Int32 dwMouseEnablePtr = 0xCF9558;
        public const Int32 dwPlayerResource = 0x313551C;
        public const Int32 dwRadarBase = 0x513A834;
        public const Int32 dwSensitivity = 0xCF9424;
        public const Int32 dwSensitivityPtr = 0xCF93F8;
        public const Int32 dwSetClanTag = 0x896A0;
        public const Int32 dwViewMatrix = 0x4CF7504;
        public const Int32 dwWeaponTable = 0x51515E4;
        public const Int32 dwWeaponTableIndex = 0x323C;
        public const Int32 dwYawPtr = 0xCF91E8;
        public const Int32 dwZoomSensitivityRatioPtr = 0xCFE408;
        public const Int32 dwbSendPackets = 0xD28FA;
        public const Int32 dwppDirect3DDevice9 = 0xA6030;
        public const Int32 force_update_spectator_glow = 0x393362;
        public const Int32 interface_engine_cvar = 0x3E9EC;
        public const Int32 is_c4_owner = 0x39F5A0;
        public const Int32 Dormant = 0xED;
        public const Int32 m_pStudioHdr = 0x294C;
        public const Int32 m_pitchClassPtr = 0x513AAE0;
        public const Int32 m_yawClassPtr = 0xCF91E8;
        public const Int32 model_ambient_min = 0x58FD1C;
        public const Int32 set_abs_angles = 0x1CA8B0;
        public const Int32 set_abs_origin = 0x1CA6F0;
        }

How can I find the latest updated offsets? Keep the link: https://github.com/frk1/hazedumper/blob/master/csgo.cs 

What should I do now? Click the "Build" button, wait until compiled and then run our cheat and rejoice! 

  • Like 3

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...