Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <Windows.h>
- #include <TlHelp32.h>
- using namespace std;
- ULONG Client;
- ULONG GameOverlayRenderer;
- ULONG VGUIMatSurface;
- HANDLE PHandle;
- int ONLADDER();
- int INWATER();
- int ONGROUND();
- int INCHAT();
- void JUMP();
- ULONG GetModuleAddress(const char *szModuleName, const ULONG dwProcessId);
- HANDLE GetProcessHandle(const char *ProcessName, DWORD& ProcessID);
- int main()
- {
- DWORD PID = 0;
- PHandle = GetProcessHandle("hl2.exe", PID);
- Client = GetModuleAddress("client.dll", PID);
- GameOverlayRenderer = GetModuleAddress("gameoverlayrenderer.dll", PID);
- VGUIMatSurface = GetModuleAddress("vguimatsurface.dll", PID);
- if(PHandle)
- {
- cout << "External bunnyhop enabled\nPut <unbind space> in console\nHold SPACE to bunnyhop";
- long int FL_ONGROUND = 0, FL_INWATER = 0, FL_ONLADDER = 0, FL_INCHAT = 0;
- while(1)
- {
- FL_INCHAT = INCHAT(); FL_ONGROUND = ONGROUND(); FL_INWATER = INWATER(); FL_ONLADDER = ONLADDER();
- if(GetKeyState(VK_SPACE) & (1 << 15) && !FL_INCHAT)
- {
- if(FL_ONGROUND != -1 || FL_INWATER != 0 && FL_INWATER != 1 || FL_ONLADDER == 9)
- JUMP();
- }
- else Sleep(1);
- }
- }
- cin.get();
- return 0;
- }
- int ONLADDER()
- {
- int OnLadder = 0;
- ReadProcessMemory(PHandle, LPCVOID(Client+0x76202C), &OnLadder, sizeof(OnLadder), NULL);
- ReadProcessMemory(PHandle, LPCVOID(OnLadder+0x13c), &OnLadder, sizeof(OnLadder), NULL);
- return OnLadder;
- }
- int INWATER()
- {
- int InWater = 0;
- ReadProcessMemory(PHandle, LPCVOID(Client+0x77FE3C), &InWater, sizeof(InWater), NULL);
- return InWater;
- }
- int ONGROUND()
- {
- int OnGround = 0;
- ReadProcessMemory(PHandle, LPCVOID(Client+0x782158), &OnGround, sizeof(OnGround), NULL);
- return OnGround;
- }
- int INCHAT()
- {
- int InChat = 0, InChat2 = 0;
- ReadProcessMemory(PHandle, LPCVOID(GameOverlayRenderer + 0x7BE70), &InChat, sizeof(InChat), NULL);
- ReadProcessMemory(PHandle, LPCVOID(VGUIMatSurface+0x114064), &InChat2, sizeof(InChat2), NULL);
- if (InChat || !InChat2) return 1;
- else return 0;
- }
- void JUMP()
- {
- int JUMP = 5;
- WriteProcessMemory(PHandle, LPVOID(Client+0x7711E8), &JUMP, sizeof(JUMP), NULL);
- Sleep(1);
- JUMP = 4;
- WriteProcessMemory(PHandle, LPVOID(Client+0x7711E8), &JUMP, sizeof(JUMP), NULL);
- }
- HANDLE GetProcessHandle(const char *ProcessName, DWORD& ProcessID)
- {
- PROCESSENTRY32 entry;
- entry.dwSize = sizeof(PROCESSENTRY32);
- HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
- if (Process32First(snapshot, &entry) == TRUE)
- {
- while (Process32Next(snapshot, &entry) == TRUE)
- {
- if (strcmp(entry.szExeFile, ProcessName) == 0)
- {
- ProcessID=entry.th32ProcessID;
- return OpenProcess(PROCESS_ALL_ACCESS, FALSE, entry.th32ProcessID);
- }
- }
- }
- CloseHandle(snapshot);
- return 0;
- }
- ULONG GetModuleAddress(const char *szModuleName, const ULONG dwProcessId)
- {
- if (!szModuleName || !dwProcessId)
- return 0;
- HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessId);
- if (hSnap == INVALID_HANDLE_VALUE)
- return 0;
- MODULEENTRY32 me;
- me.dwSize = sizeof(MODULEENTRY32);
- if (Module32First(hSnap, &me))
- {
- while (Module32Next(hSnap, &me))
- {
- if (strcmp(reinterpret_cast<const char*>(me.szModule), szModuleName)==0)
- {
- CloseHandle(hSnap);
- return (ULONG)me.modBaseAddr;
- }
- }
- }
- CloseHandle(hSnap);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement