01-09-2016, 06:14
Public bunny hop
by SP1K3
Code source d'un bunny hop en c++
Les offsets sont a modifié dans source.cpp
Download
[hide]
Source.cpp
[/hide]
Credit: SP1K3
by SP1K3
Code source d'un bunny hop en c++
Les offsets sont a modifié dans source.cpp
Download
[hide]
Code :
class cMemory
{
public:
HANDLE HandleProcess;
DWORD ProcessID;
bool FindProcess(const char* name)
{
PROCESSENTRY32 ProcessEntry;
ProcessEntry.dwSize = sizeof(PROCESSENTRY32);
HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
if (hSnap == INVALID_HANDLE_VALUE) return 0;
do
{
if (!strcmp(ProcessEntry.szExeFile, name))
{
ProcessID = ProcessEntry.th32ProcessID;
CloseHandle(hSnap);
HandleProcess = OpenProcess(PROCESS_VM_WRITE | PROCESS_VM_READ | PROCESS_VM_OPERATION, false, ProcessID);
return true;
}
} while (Process32Next(hSnap, &ProcessEntry));
CloseHandle(hSnap);
// std::cout << "Error 1\n\n";
}
DWORD ModulePointer(const char* name)
{
MODULEENTRY32 ModuleEntry = { 0 };
HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, ProcessID);
if (!hSnap) return NULL;
ModuleEntry.dwSize = sizeof(ModuleEntry);
BOOL Run = Module32First(hSnap, &ModuleEntry);
while (Run) {
if (!strcmp(ModuleEntry.szModule, name))
{
CloseHandle(hSnap);
return (DWORD)ModuleEntry.modBaseAddr;
}
Run = Module32Next(hSnap, &ModuleEntry);
}
CloseHandle(hSnap);
// std::cout << "Error 2\n\n";
return NULL;
}
};
cMemory *pMemory = new cMemory;
template <class T>
T RM(DWORD adress)
{
T out;
ReadProcessMemory(pMemory->HandleProcess, (LPVOID)adress, &out, sizeof(T), NULL);
return out;
}
template <class T>
void WM(DWORD adress, T value)
{
WriteProcessMemory(pMemory->HandleProcess, (LPVOID)adress, &value, sizeof(T), 0);
}Source.cpp
Code :
#include <windows.h>
#include <iostream>
#include <tlhelp32.h>
#include "Memory.h"
using namespace std;
namespace Offsets {
DWORD Client;
DWORD dwLocal = 0x00A3343C;
DWORD dwJump = 0x04EE6194;
DWORD dwHealth = 0xFC;
DWORD dwFlags = 0x100;
}
#define FL_ONGROUND ( 1 << 0 )
struct Player
{
DWORD Base()
{
return RM<DWORD>(Offsets::Client + Offsets::dwLocal);
}
int Jump()
{
return RM<int>(Offsets::Client + Offsets::dwJump);
}
int Flags()
{
DWORD Base = this->Base();
return RM<int>(Base + Offsets::dwFlags);
}
void SetJump(int v)
{
WM<int>(Offsets::Client + Offsets::dwJump, v);
}
};
struct Player *pPlayer;
DWORD WINAPI Loop(PVOID pThreadParameter)
{
for (;; Sleep(7)) {
if (pPlayer->Jump() == 5) {
while (GetAsyncKeyState(VK_SPACE)) {
if (pPlayer->Flags() & FL_ONGROUND)
pPlayer->SetJump(5);
else
pPlayer->SetJump(4);
}
}
if (!FindWindow(NULL, "Counter-Strike: Global Offensive"))
exit(0);
if (GetAsyncKeyState(VK_HOME))
exit(0);
}
}
void Console()
{
cout << "~ Public BunnyHop by SP1K3\n";
cout << "~ Telegram: @SP1K3\n";
cout << "~ Skype: sp1ke_x\n";
cout << "~ Press Home to exit hack\n";
}
int main()
{
if (!FindWindow(NULL, "Counter-Strike: Global Offensive")) {
cout << "\n > CS:GO isn't running.\n";
system("pause");
exit(0);
}
while (!Offsets::Client) {
pMemory->FindProcess("csgo.exe");
Offsets::Client = pMemory->ModulePointer("client.dll");
}
Console();
HANDLE Threads[] = {
CreateThread(0, 0, &Loop, 0, 0, 0),
};
WaitForMultipleObjects(sizeof(Threads) / sizeof(HANDLE), Threads, TRUE, INFINITE);
return 0;
}Credit: SP1K3
