Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

#define WIN32_LEAN_AND_MEAN

#include <Windows.h>

#include <cstdint>
#include <thread>

namespace offset
{
constexpr ::std::ptrdiff_t dwLocalPlayer = 0xDEB99C;
constexpr ::std::ptrdiff_t dwForceJump = 0x52BCD88;
constexpr ::std::ptrdiff_t m_iHealth = 0x100;
constexpr ::std::ptrdiff_t m_fFlags = 0x104;

void BunnyHop(const HMODULE instance) noexcept


{
const auto client =
reinterpret_cast<std::uintptr_t>(GetModuleHandle("client.dll"));

//hack loop
while (!GetAsyncKeyState(VK_END))
{
std::this_thread::sleep_for(std::chrono::milliseconds(1));

if (!GetAsyncKeyState(VK_SPACE))
continue;

// get local player


const auto localPlayer = *reinterpret_cast<std::uintptr_t*>(client +
offset::dwLocalPlayer);

// is valid
if (!localPlayer)
continue;

const auto health = *reinterpret_cast<std::int32_t*>(localPlayer +


offset::m_iHealth);

// is alive
if (!health)
continue;

const auto flags = *reinterpret_cast<std::int32_t*>(localPlayer +


offset::m_fFlags);

// on ground
(flags & (1 << 0)) ?
*reinterpret_cast<std::uintptr_t*>(client + offset::dwForceJump)
= 6 : // force jumpy
*reinterpret_cast<std::uintptr_t*>(client + offset::dwForceJump) =
4; // no no jump because no on ground :(

//uninject
FreeLibraryAndExitThread(instance, 0);
}
int __stdcall DllMain(
const HMODULE instance,
const std::uintptr_t reason,
const void* reserved
)
{
DisableThreadLibraryCalls(instance);

const auto thread = CreateThread(


nullptr,
0,
reinterpret_cast<LPTHREAD_START_ROUTINE>(BunnyHop),
instance,
0,
nullptr
);

if (thread)
CloseHandle(thread);

return 1;
}

You might also like