• Приватные и секретные разделы доступны только зарегистрированным пользователям.

    Вся важная информация в нашем ТГ: t.me/gtablack

    На данном форуме запрещено публиковать контент нарушающий Российское законодательство, за это последует блокировка ФА.

Use at own risk internal BunnyHop для CS2

Количество просмотров: 62

Riveriks

Называй меня молодой монстр
Редактор
Регистрация
12 Июн 2025
Сообщения
24
Реакции
2
Баллы
3
1.11 Код брать исключительно под специальный тег [CODE][/CODE].
Привет всем!
Решил поделиться своим первым internal читом для CS2 — простой BunnyHop.
Если знаешь, как его улучшить — пиши в комменты, буду рад услышать идеи и советы 🙂


🔧 Актуальные оффсеты:
dwLocalPlayerPawn = 0x1874040
m_fFlags = 0x3EC
jump = 0x186CD50

⚠️ После обновлений CS2 могут слетать оффсеты — не забывай проверять и обновлять вручную.
Я постараюсь выкладывать актуальные, когда будет возможность.

💉 Рекомендованный инжектор:
NinjaCS (последняя версия)
Включи функцию отключения VAC
Используй на свой страх и риск — есть шанс словить VAC бан
Исходный ход:
Код:
#include <Windows.h>
#include <cstdint>
#include <cstddef>
#include <thread>
#include <chrono>
#include <iostream>

namespace Offsets
{
    constexpr std::ptrdiff_t dwLocalPlayerPawn = 0x18560D0;
    constexpr std::ptrdiff_t m_fFlags = 0x3EC;
    constexpr std::ptrdiff_t jump = 0x184EE00;
    constexpr int fl_ground = 65665;                         
    constexpr int fl_ground2 = 65667;                        
}

uintptr_t GetClientModule()
{
    return reinterpret_cast<uintptr_t>(GetModuleHandleA("client.dll"));
}

template <typename T>
T ReadMemory(uintptr_t address)
{
    return reinterpret_cast<T>(address);
}

template <typename T>
void WriteMemory(uintptr_t address, T value)
{
    reinterpret_cast<T>(address) = value;
}

void BunnyHop()
{
    uintptr_t client = GetClientModule();
    if (!client) {
        std::cout << "Ошибка: client.dll не найден." << std::endl;
        return;
    }

    while (true)
    {
        std::this_thread::sleep_for(std::chrono::milliseconds(1));

        if (GetAsyncKeyState(VK_SPACE) & 0x8000)
        {
            uintptr_t localPlayer = ReadMemory<uintptr_t>(client + Offsets::dwLocalPlayerPawn);
            if (!localPlayer) continue;

            int flags = ReadMemory<int>(localPlayer + Offsets::m_fFlags);

            if (flags == Offsets::fl_ground || flags == Offsets::fl_ground2)
            {
                std::this_thread::sleep_for(std::chrono::milliseconds(10));
                WriteMemory<uint32_t>(client + Offsets::jump, 65537);
            }
            else
            {
                std::this_thread::sleep_for(std::chrono::milliseconds(10));
                WriteMemory<uint32_t>(client + Offsets::jump, 256);
            }
        }
    }
}

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
    if (fdwReason == DLL_PROCESS_ATTACH)
    {
        DisableThreadLibraryCalls(hinstDLL);
        CreateThread(nullptr, 0, (LPTHREAD_START_ROUTINE)BunnyHop, nullptr, 0, nullptr);
    }
    return TRUE;
}
Инструкция по использованию
 
Последнее редактирование модератором:
Сверху Снизу