Начинающий
- Статус
- Оффлайн
- Регистрация
- 4 Дек 2021
- Сообщения
- 213
- Реакции
- 8
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Пишу клиент на плюсах используя OpenGl хуки и мне нужно написать аим спросил у DeepSeek написал код аима но там нужны адреса памяти и вот столкнулся с проблемой что не могу их найти кто может помочь отпишите вот код аима
Ну или кто может скиньте уже готовый код буду рад:kissingheart:
Ну или кто может скиньте уже готовый код буду рад:kissingheart:
C++:
#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;
}