Jump to content

Making RCS CONTROL (CSGO HACKING)


KATE
 Share

Recommended Posts

Hello everyone, today we will make an internal cheat that will control our returns, and so we will start...

Guide by emily

At the beginning of our program we write: 

#include <Windows.h>

Next comes the class of vectors

// vec3 class
struct Vec3 {
    float x, y, z;

    Vec3 operator+(Vec3 d) {
        return { x + d.x, y + d.y, z + d.z };
    }
    Vec3 operator-(Vec3 d) {
        return { x - d.x, y - d.y, z - d.z };
    }
    Vec3 operator*(float d) {
        return { x * d, y * d, z * d };
    }

    void Normalize() {
        while (y < -180) { y += 360; }
        while (y > 180) { y -= 360; }
        if (x > 89) { x = 89; }
        if (x < -89) { x = -89; }
    }
};

Next, we need to get offsets, namely offsets (dwLocalPlayer, dwClientState, dwClientState_viewAngles, m_iShotsFired, m_aimPunchAngle )
To do this, we need a hazedumper.

Go in https://github.com/frk1/hazedumper and go to csgo.h and look for these offsets (in the code specifically do not put, in order for you to practice yourself)

// offsets
// localPlayer
uintptr_t dwLocalPlayer = ;
// clientState
uintptr_t dwClientState = ;
// viewAngles
uintptr_t dwClientState_viewAngles = ;
// shotsFired
uintptr_t m_iShotsFired = ;
// aimpunchangle
uintptr_t m_aimPunchAngle = ;

Next, we need the settings, write...

uintptr_t exitKey = VK_ESCAPE;

After all this, we write...

int WINAPI HackThread(HMODULE hModule) {

    // data
    // clientModule
    uintptr_t clientModule = (uintptr_t)GetModuleHandle("client_panorama.dll");
    // engineModule
    uintptr_t engineModule = (uintptr_t)GetModuleHandle("engine.dll");
    // localPlayer ptr
    uintptr_t localPlayer = *(uintptr_t*)(clientModule + dwLocalPlayer);
    // viewAngles ptr
    Vec3* viewAngles = (Vec3*)(*(uintptr_t*)(engineModule + dwClientState) + dwClientState_viewAngles);
    // shotsFired ptr
    int* iShotsFired = (int*)(localPlayer + m_iShotsFired);
    // aimPunch ptr
    Vec3* aimPunchAngle = (Vec3*)(localPlayer + m_aimPunchAngle)
    Vec3 oPunch{ 0,0,0 };;

Next, we write the most important code of our program.

while (!GetAsyncKeyState(exitKey)) {
        Vec3 punchAngle = *aimPunchAngle * 2;
        if (*iShotsFired > 1) {
            // calc rcs
            Vec3 newAngle = *viewAngles + oPunch - punchAngle;
            // normalize
            newAngle.Normalize();
            // set
            *viewAngles = newAngle;
        }
        // fix
        oPunch = punchAngle;
    }

    FreeLibraryAndExitThread(hModule, 0);
    CloseHandle(hModule);
    return 0;
}

And at the very end we write something without which our program will not work...

BOOL APIENTRY DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved) {
    if (ul_reason_for_call == DLL_PROCESS_ATTACH)
        CreateThread(0, 0, (LPTHREAD_START_ROUTINE)HackThread, hModule, 0, 0);
    return TRUE;
}

We made a controller for our recoil
Thank you all!

  • Like 4
Link to comment
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.   Restore formatting

  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.

 Share

×
×
  • Create New...