POS external bunnyhop/trigger bot

Posts 115 of 29 · Page 1 of 2
POS external bunnyhop/trigger bot
this was my very first csgo cheat, so far ive moved to internal so this is up for grabs. please excuse the sloppy work as it was built just for learning(same goes for the wrapper which could use a rewrite as it started for one purpose and then went in a different direction). hopefully someone can learn something from this


Main.cpp
Code:
#include <Windows.h>

#include "MemMan.h"



MemMan pInfo;



struct offs

{

    DWORD lPlayer = 0xC5E87C;

    DWORD fJump = 0x50DE048;

    DWORD flags = 0x100;



    DWORD entityList = 0x4C3B384;

    DWORD crosshair = 0xB2B8;

    DWORD team = 0xF0;

    DWORD health = 0xFC;

    DWORD ELD = 0x10;



    DWORD shootlmb = 0x307CA78;

};



bool canLaunch(byte flag)

{

    bool allowed = false;

    if (flag & (1 << 0) && GetAsyncKeyState(VK_SPACE))

    {

        allowed = true;

    }

    return allowed;

}



bool checkShoot(DWORD theDLL, DWORD base, int myTeam, int mCrosshair)

{

    offs ofsetts;

    DWORD enemyCrosshair = pInfo.readMem<DWORD>(theDLL + ofsetts.entityList + ((mCrosshair - 1) * ofsetts.ELD));

    int eTeam = pInfo.readMem<int>(enemyCrosshair + ofsetts.team);

    int eHealth = pInfo.readMem<int>(enemyCrosshair + ofsetts.health);



    if (myTeam == 3)

        if (eTeam == 2 && eHealth >= 1)

            return true;

    if (myTeam == 2)

        if (eTeam == 3 && eHealth >= 1)

            return true;



    return false;

}



int main()

{

    uintptr_t cModule;

    offs ofsetts;

    DWORD localBase;

    int myTeam, notMyTeam, myCrosshair, enemyCrosshair;

    BYTE mflags;

    bool canJump = false;



    pInfo.Process("csgo.exe");

    if (pInfo.handle == NULL)

        return 0;



    cModule = pInfo.getModule(pInfo.process, "client_panorama.dll");

    localBase = pInfo.readMem<DWORD>(cModule + ofsetts.lPlayer);



    myTeam = pInfo.readMem<int>(localBase + ofsetts.team);



    while (true)

    {

        canJump = false;

        myCrosshair = pInfo.readMem<int>(localBase + ofsetts.crosshair);

        mflags = pInfo.readMem<BYTE>(localBase + ofsetts.flags);

        if (checkShoot(cModule, localBase, myTeam, myCrosshair))

        {

            pInfo.writeMem(cModule + ofsetts.shootlmb, 5);

            Sleep(20);

            pInfo.writeMem(cModule + ofsetts.shootlmb, 4);

        }

        if (canLaunch(mflags))

            pInfo.writeMem(cModule + ofsetts.fJump, 6);

        Sleep(1);

    }

    return 0;

}

MemMan.h
Code:
#pragma once

#include <Windows.h>

#include <vector>



class MemMan

{

public:

    MemMan();

    ~MemMan();

    template <class val>

    val readMem(DWORD addr)

    {

        val x;

        ReadProcessMemory(handle, (LPBYTE*)addr, &x, sizeof(x), NULL);

        return x;

    }

    void writeMem(DWORD addr, int x)

    {

        WriteProcessMemory(handle, (LPBYTE*)addr, &x, sizeof(x), NULL);

    }

    void Process(const char*);

    uintptr_t getModule(DWORD, const char*);

    DWORD getAddress(DWORD, std::vector<DWORD>);

    DWORD process;

    HANDLE handle;

    uintptr_t pModule;

};
MemMan.cpp
Code:
#include "MemMan.h"

#include "Windows.h"

#include <TlHelp32.h>



MemMan::MemMan()

{

    process = 0;

    handle = NULL;

}



MemMan::~MemMan()

{

    CloseHandle(handle);

}



void MemMan::Process(const char* proc)

{

    HANDLE hProcessId = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);



    PROCESSENTRY32 pEntry;

    pEntry.dwSize = sizeof(pEntry);



    do

    {

        if (!strcmp(pEntry.szExeFile, proc))

        {

            process = pEntry.th32ProcessID;

            CloseHandle(hProcessId);

            handle = OpenProcess(PROCESS_ALL_ACCESS, false, process);

        }



    } while (Process32Next(hProcessId, &pEntry));

}



uintptr_t MemMan::getModule(DWORD procId, const char* modName)

{

    HANDLE hModule = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, process);



    MODULEENTRY32 mEntry;

    mEntry.dwSize = sizeof(mEntry);



    do

    {

        if (!strcmp(mEntry.szModule, modName))

        {

            CloseHandle(hModule);

            return (DWORD)mEntry.hModule;

        }

    } while (Module32Next(hModule, &mEntry));

    return 2;

}



DWORD MemMan::getAddress(DWORD addr, std::vector<DWORD> vect)

{

    for (int i = 0; i < vect.size(); i++)

    {

        ReadProcessMemory(handle, (BYTE*)addr, &addr, sizeof(addr), 0);

        addr += vect[i];

    }

    return addr;

}


2 virus scans for the .rar
https://www.virustotal.com/#/file/13...fdff/detection
https://metadefender.opswat.com/resu...gular/overview
meh_mpgh.net.rar5 KB · 268 downloads 1/57 malicious
Quote Originally Posted by T-800 View Post
@gogogokitty , please add an in-game proof.
updated main post with video
can you put ready files for compilation?
Quote Originally Posted by hitler1 View Post
can you put ready files for compilation?
let me know if its not clear enough
I do not mean ready exe only about src to visual studio like here
Quote Originally Posted by hitler1 View Post
I do not mean ready exe only about src to visual studio like here
i posted the main.cpp, the memory class header and .cpp file in the main post. literally all you have to do is add those 3 files to your project to use them
Great script, thanks!
yo ill give this a try when my fort is updated
Quote Originally Posted by cbitha01 View Post
yo ill give this a try when my fort is updated
what do you mean by your fort lol?
Quote Originally Posted by gogogokitty View Post
what do you mean by your fort lol?
Fortnite .
Quote Originally Posted by Not Officer View Post


Fortnite .
lets hope not
Quote Originally Posted by play2019Rap View Post
i will make my own cheat soon !
nice, if you need any help getting started just pm me and ill lend a hand. heres a very basic bunny hop tutorial i made last night, it should walk you through it from point a to point b in the simplest way possible
Posts 115 of 29 · Page 1 of 2

Post a Reply

Similar Threads

Tags for this Thread

None

Need help?