Вопрос AimBot на OpenGL хуках

  • Автор темы Автор темы ilp333
  • Дата начала Дата начала
Вы ебанутые а не че тот факт то что майн опен сурс вы че все на гост клиенты екстернал дма фортнайт обход делаете
если бы так и было то на рм и растекс софтов бы былоооо, пиздец же
 
Пишу клиент на плюсах используя OpenGl хуки и мне нужно написать аим спросил у DeepSeek написал код аима но там нужны адреса памяти и вот столкнулся с проблемой что не могу их найти кто может помочь отпишите вот код аима

Ну или кто может скиньте уже готовый код буду рад:kissingheart:

C++:
Expand Collapse Copy
#include <Windows.h>
#include <GL/gl.h>
#include <MinHook.h>
#include <cmath>
#include <iostream>

// Глобальные переменные
DWORD playerBase = 0x12345678; // Замените на базовый адрес игрока
DWORD cameraBase = 0x87654321; // Замените на базовый адрес камеры
float playerX, playerY, playerZ;

// Прототипы функций
typedef void (APIENTRY *glBegin_t)(GLenum mode);
glBegin_t original_glBegin;

// Функция для чтения float из памяти процесса
float ReadFloat(HANDLE processHandle, DWORD address) {
    float value = 0;
    ReadProcessMemory(processHandle, (LPCVOID)address, &value, sizeof(float), nullptr);
    return value;
}

// Функция для получения позиции игрока
void GetPlayerPosition(HANDLE processHandle) {
    playerX = ReadFloat(processHandle, playerBase + 0x30 //Замените на свой адрес);
    playerY = ReadFloat(processHandle, playerBase + 0x34 //Замените на свой адрес);
    playerZ = ReadFloat(processHandle, playerBase + 0x38 //Замените на свой адрес);
}

// Функция для автоматической наводки
void AimAt(float x, float y, float z) {
    float deltaX = x - playerX;
    float deltaY = y - playerY;
    float deltaZ = z - playerZ;

    float yaw = atan2(deltaZ, deltaX) * 180 / M_PI;
    float pitch = -atan2(deltaY, sqrt(deltaX * deltaX + deltaZ * deltaZ)) * 180 / M_PI;

    // Установка углов камеры
    *(float*)(cameraBase + 0x40) = yaw;
    *(float*)(cameraBase + 0x44) = pitch;
}

// Хук для функции glBegin
void APIENTRY hooked_glBegin(GLenum mode) {
    if (mode == GL_TRIANGLES) {
        // Пример: автоматическая наводка на врага с координатами (x, y, z)
        AimAt(100.0f, 64.0f, 200.0f); // Замените на реальные координаты врага
    }
    original_glBegin(mode);
}

// Установка хуков
void InstallHook() {
    MH_Initialize();
    MH_CreateHook(&glBegin, &hooked_glBegin, reinterpret_cast<void**>(&original_glBegin));
    MH_EnableHook(MH_ALL_HOOKS);
}

// Точка входа DLL
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
    if (ul_reason_for_call == DLL_PROCESS_ATTACH) {
        // Получаем handle процесса Minecraft
        HANDLE processHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId());
        if (processHandle == NULL) {
            std::cerr << "Не удалось открыть процесс!" << std::endl;
            return FALSE;
        }

        // Получаем позицию игрока
        GetPlayerPosition(processHandle);

        // Устанавливаем хуки
        InstallHook();
    }
    return TRUE;
}
А для какой цели? Можно же обычный мод запилить и скрыть его в майне, от мода будут палиться только записи в озу
 
:NotLikeThis: В таком случае лучше вообще отказаться от идеи писать что-либо... А почему, объяснили тут -
Пожалуйста, авторизуйтесь для просмотра ссылки.
Поебень по типу "Не делайте потому-что небезопасно и сложно", но мы делаем это не для разных версий JVM, а под одну конкретную
 
Пишу клиент на плюсах используя OpenGl хуки и мне нужно написать аим спросил у DeepSeek написал код аима но там нужны адреса памяти и вот столкнулся с проблемой что не могу их найти кто может помочь отпишите вот код аима

Ну или кто может скиньте уже готовый код буду рад:kissingheart:

C++:
Expand Collapse Copy
#include <Windows.h>
#include <GL/gl.h>
#include <MinHook.h>
#include <cmath>
#include <iostream>

// Глобальные переменные
DWORD playerBase = 0x12345678; // Замените на базовый адрес игрока
DWORD cameraBase = 0x87654321; // Замените на базовый адрес камеры
float playerX, playerY, playerZ;

// Прототипы функций
typedef void (APIENTRY *glBegin_t)(GLenum mode);
glBegin_t original_glBegin;

// Функция для чтения float из памяти процесса
float ReadFloat(HANDLE processHandle, DWORD address) {
    float value = 0;
    ReadProcessMemory(processHandle, (LPCVOID)address, &value, sizeof(float), nullptr);
    return value;
}

// Функция для получения позиции игрока
void GetPlayerPosition(HANDLE processHandle) {
    playerX = ReadFloat(processHandle, playerBase + 0x30 //Замените на свой адрес);
    playerY = ReadFloat(processHandle, playerBase + 0x34 //Замените на свой адрес);
    playerZ = ReadFloat(processHandle, playerBase + 0x38 //Замените на свой адрес);
}

// Функция для автоматической наводки
void AimAt(float x, float y, float z) {
    float deltaX = x - playerX;
    float deltaY = y - playerY;
    float deltaZ = z - playerZ;

    float yaw = atan2(deltaZ, deltaX) * 180 / M_PI;
    float pitch = -atan2(deltaY, sqrt(deltaX * deltaX + deltaZ * deltaZ)) * 180 / M_PI;

    // Установка углов камеры
    *(float*)(cameraBase + 0x40) = yaw;
    *(float*)(cameraBase + 0x44) = pitch;
}

// Хук для функции glBegin
void APIENTRY hooked_glBegin(GLenum mode) {
    if (mode == GL_TRIANGLES) {
        // Пример: автоматическая наводка на врага с координатами (x, y, z)
        AimAt(100.0f, 64.0f, 200.0f); // Замените на реальные координаты врага
    }
    original_glBegin(mode);
}

// Установка хуков
void InstallHook() {
    MH_Initialize();
    MH_CreateHook(&glBegin, &hooked_glBegin, reinterpret_cast<void**>(&original_glBegin));
    MH_EnableHook(MH_ALL_HOOKS);
}

// Точка входа DLL
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
    if (ul_reason_for_call == DLL_PROCESS_ATTACH) {
        // Получаем handle процесса Minecraft
        HANDLE processHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId());
        if (processHandle == NULL) {
            std::cerr << "Не удалось открыть процесс!" << std::endl;
            return FALSE;
        }

        // Получаем позицию игрока
        GetPlayerPosition(processHandle);

        // Устанавливаем хуки
        InstallHook();
    }
    return TRUE;
}
через чит энжин ищи адреса
 
Пишу клиент на плюсах используя OpenGl хуки и мне нужно написать аим спросил у DeepSeek написал код аима но там нужны адреса памяти и вот столкнулся с проблемой что не могу их найти кто может помочь отпишите вот код аима

Ну или кто может скиньте уже готовый код буду рад:kissingheart:

C++:
Expand Collapse Copy
#include <Windows.h>
#include <GL/gl.h>
#include <MinHook.h>
#include <cmath>
#include <iostream>

// Глобальные переменные
DWORD playerBase = 0x12345678; // Замените на базовый адрес игрока
DWORD cameraBase = 0x87654321; // Замените на базовый адрес камеры
float playerX, playerY, playerZ;

// Прототипы функций
typedef void (APIENTRY *glBegin_t)(GLenum mode);
glBegin_t original_glBegin;

// Функция для чтения float из памяти процесса
float ReadFloat(HANDLE processHandle, DWORD address) {
    float value = 0;
    ReadProcessMemory(processHandle, (LPCVOID)address, &value, sizeof(float), nullptr);
    return value;
}

// Функция для получения позиции игрока
void GetPlayerPosition(HANDLE processHandle) {
    playerX = ReadFloat(processHandle, playerBase + 0x30 //Замените на свой адрес);
    playerY = ReadFloat(processHandle, playerBase + 0x34 //Замените на свой адрес);
    playerZ = ReadFloat(processHandle, playerBase + 0x38 //Замените на свой адрес);
}

// Функция для автоматической наводки
void AimAt(float x, float y, float z) {
    float deltaX = x - playerX;
    float deltaY = y - playerY;
    float deltaZ = z - playerZ;

    float yaw = atan2(deltaZ, deltaX) * 180 / M_PI;
    float pitch = -atan2(deltaY, sqrt(deltaX * deltaX + deltaZ * deltaZ)) * 180 / M_PI;

    // Установка углов камеры
    *(float*)(cameraBase + 0x40) = yaw;
    *(float*)(cameraBase + 0x44) = pitch;
}

// Хук для функции glBegin
void APIENTRY hooked_glBegin(GLenum mode) {
    if (mode == GL_TRIANGLES) {
        // Пример: автоматическая наводка на врага с координатами (x, y, z)
        AimAt(100.0f, 64.0f, 200.0f); // Замените на реальные координаты врага
    }
    original_glBegin(mode);
}

// Установка хуков
void InstallHook() {
    MH_Initialize();
    MH_CreateHook(&glBegin, &hooked_glBegin, reinterpret_cast<void**>(&original_glBegin));
    MH_EnableHook(MH_ALL_HOOKS);
}

// Точка входа DLL
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
    if (ul_reason_for_call == DLL_PROCESS_ATTACH) {
        // Получаем handle процесса Minecraft
        HANDLE processHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId());
        if (processHandle == NULL) {
            std::cerr << "Не удалось открыть процесс!" << std::endl;
            return FALSE;
        }

        // Получаем позицию игрока
        GetPlayerPosition(processHandle);

        // Устанавливаем хуки
        InstallHook();
    }
    return TRUE;
}
разеб парни это ваще шок
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Так он на гл хуках делает
так зачем ему это
он все равно должен вызывать xRot Yrot Для наводки
и адреса плееров всегда разные к тому же он еще должен дергать world для получения игроков чтобы получать позицию и находить локального игрока калькулировать до ближ игрока наводится а не за 100 блоков
ну типо да адреса всегда разные из за jvm и там offsetы и базовые адреса не помогут вроде только паттернами
паттерны кринж
 
так зачем ему это
он все равно должен вызывать xRot Yrot Для наводки
и адреса плееров всегда разные к тому же он еще должен дергать world для получения игроков чтобы получать позицию и находить локального игрока калькулировать до ближ игрока наводится а не за 100 блоков

паттерны кринж
Может он хочет векторный аимбот сделать, тут зависит от цели либо на глке ограниченно (дистанцию и на глке просчитать можно) либо на классах
Да и даже если на классах то на JNI будет в разы удобнее
 
Поебень по типу "Не делайте потому-что небезопасно и сложно", но мы делаем это не для разных версий JVM, а под одну конкретную
Не поебень, просто кое кто не думает о том что он возьмет адрес, а потом его GC переместит к хуям куда попало, для того что-бы с этим можно было работать и не пришлось искать эти хендлы вручную, не пришлось подгонять всё под формат самой JVM и используют JNI :NotLikeThis:
 
Не поебень, просто кое кто не думает о том что он возьмет адрес, а потом его GC переместит к хуям куда попало, для того что-бы с этим можно было работать и не пришлось искать эти хендлы вручную, не пришлось подгонять всё под формат самой JVM и используют JNI :NotLikeThis:
Какой адрес он переместит, за все время не видел ничего такого, да и подогнать под отдельную JVM не так уж и трудно
 
Какой адрес он переместит, за все время не видел ничего такого, да и подогнать под отдельную JVM не так уж и трудно
Ты должен знать что у каждого объекта будь то число или массив есть адрес, проблема в том что если они находятся в куче, то условный GC может взять его и переместить в другое место поменяв handle, и что, ты будешь искать где эти хендлы доставать? Или может проще взять JNI и не выебываться?
Я в ахуе просто, откуда вообще такие идеи берутся
 
Ты должен знать что у каждого объекта будь то число или массив есть адрес, проблема в том что если они находятся в куче, то условный GC может взять его и переместить в другое место поменяв handle, и что, ты будешь искать где эти хендлы доставать? Или может проще взять JNI и не выебываться?
Я в ахуе просто, откуда вообще такие идеи берутся
Ещё раз говорю, за все время у меня ни один адрес не переместился все были на местах, с чего бы вдруг gc перемещал их в другое место, я кнш не разбирал gc и может в твоих слова есть правда но опять же, я не заметил ничего такого. Говоря про JNI ещё раз, не всегда есть возможность его использовать
 
Назад
Сверху Снизу