Advertisement
chrondog

Untitled

Dec 30th, 2012
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.70 KB | None | 0 0
  1. #include <iostream>
  2. #include <Windows.h>
  3. #include <TlHelp32.h>
  4. using namespace std;
  5.  
  6. ULONG Client;
  7. ULONG GameOverlayRenderer;
  8. ULONG VGUIMatSurface;
  9. HANDLE PHandle;
  10.  
  11. int ONLADDER();
  12. int INWATER();
  13. int ONGROUND();
  14. int INCHAT();
  15. void JUMP();
  16.  
  17. ULONG GetModuleAddress(const char *szModuleName, const ULONG dwProcessId);
  18. HANDLE GetProcessHandle(const char *ProcessName, DWORD& ProcessID);
  19.  
  20. int main()
  21. {
  22.         DWORD PID = 0;
  23.         PHandle = GetProcessHandle("hl2.exe", PID);
  24.         Client = GetModuleAddress("client.dll", PID);
  25.         GameOverlayRenderer = GetModuleAddress("gameoverlayrenderer.dll", PID);
  26.         VGUIMatSurface = GetModuleAddress("vguimatsurface.dll", PID);
  27.         if(PHandle)
  28.         {
  29.                 cout << "External bunnyhop enabled\nPut <unbind space> in console\nHold SPACE to bunnyhop";
  30.                 long int FL_ONGROUND = 0, FL_INWATER = 0, FL_ONLADDER = 0, FL_INCHAT = 0;
  31.                 while(1)
  32.                 {
  33.                     FL_INCHAT = INCHAT(); FL_ONGROUND = ONGROUND(); FL_INWATER = INWATER(); FL_ONLADDER = ONLADDER();
  34.                     if(GetKeyState(VK_SPACE) & (1 << 15) && !FL_INCHAT)
  35.                     {
  36.                         if(FL_ONGROUND != -1 || FL_INWATER != 0 && FL_INWATER != 1 || FL_ONLADDER == 9)
  37.                             JUMP();
  38.                     }
  39.                     else Sleep(1);
  40.                 }
  41.         }
  42.         cin.get();
  43.         return 0;
  44. }
  45.  
  46. int ONLADDER()
  47. {
  48.     int OnLadder = 0;
  49.     ReadProcessMemory(PHandle, LPCVOID(Client+0x76202C), &OnLadder, sizeof(OnLadder), NULL);
  50.     ReadProcessMemory(PHandle, LPCVOID(OnLadder+0x13c), &OnLadder, sizeof(OnLadder), NULL);
  51.     return OnLadder;
  52. }
  53.  
  54. int INWATER()
  55. {
  56.     int InWater = 0;
  57.     ReadProcessMemory(PHandle, LPCVOID(Client+0x77FE3C), &InWater, sizeof(InWater), NULL);
  58.     return InWater;
  59. }
  60.  
  61. int ONGROUND()
  62. {
  63.     int OnGround = 0;
  64.     ReadProcessMemory(PHandle, LPCVOID(Client+0x782158), &OnGround, sizeof(OnGround), NULL);
  65.     return OnGround;
  66. }
  67.  
  68. int INCHAT()
  69. {
  70.     int InChat = 0, InChat2 = 0;
  71.     ReadProcessMemory(PHandle, LPCVOID(GameOverlayRenderer + 0x7BE70), &InChat, sizeof(InChat), NULL);
  72.     ReadProcessMemory(PHandle, LPCVOID(VGUIMatSurface+0x114064), &InChat2, sizeof(InChat2), NULL);
  73.     if (InChat || !InChat2) return 1;
  74.     else return 0;
  75. }
  76.  
  77. void JUMP()
  78. {
  79.     int JUMP = 5;
  80.     WriteProcessMemory(PHandle, LPVOID(Client+0x7711E8), &JUMP, sizeof(JUMP), NULL);
  81.     Sleep(1);
  82.     JUMP = 4;
  83.     WriteProcessMemory(PHandle, LPVOID(Client+0x7711E8), &JUMP, sizeof(JUMP), NULL);
  84. }
  85.  
  86.  
  87. HANDLE GetProcessHandle(const char *ProcessName, DWORD& ProcessID)
  88. {
  89.     PROCESSENTRY32 entry;
  90.     entry.dwSize = sizeof(PROCESSENTRY32);
  91.  
  92.     HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
  93.  
  94.     if (Process32First(snapshot, &entry) == TRUE)
  95.     {
  96.         while (Process32Next(snapshot, &entry) == TRUE)
  97.         {
  98.             if (strcmp(entry.szExeFile, ProcessName) == 0)
  99.             {  
  100.                 ProcessID=entry.th32ProcessID;
  101.                 return OpenProcess(PROCESS_ALL_ACCESS, FALSE, entry.th32ProcessID);
  102.             }
  103.         }
  104.     }
  105.     CloseHandle(snapshot);
  106.     return 0;
  107. }
  108.  
  109. ULONG GetModuleAddress(const char *szModuleName, const ULONG dwProcessId)
  110. {
  111.     if (!szModuleName || !dwProcessId)
  112.         return 0;
  113.         HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessId);
  114.     if (hSnap == INVALID_HANDLE_VALUE)
  115.         return 0;
  116.         MODULEENTRY32 me;
  117.     me.dwSize = sizeof(MODULEENTRY32);
  118.     if (Module32First(hSnap, &me))
  119.     {
  120.         while (Module32Next(hSnap, &me))
  121.         {
  122.             if (strcmp(reinterpret_cast<const char*>(me.szModule), szModuleName)==0)
  123.             {
  124.                 CloseHandle(hSnap);
  125.                 return (ULONG)me.modBaseAddr;
  126.             }
  127.         }
  128.     }
  129.     CloseHandle(hSnap);
  130.     return 0;
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement