А ну плюсеры сюда

короче пишу читы для клиента вин10, для теста решил написать ричи, заодно плюсы изучаю

#include <iostream>
#include <Windows.h>
#include <TlHelp32.h>
using namespace std;
 
DWORD GetProcessIdByName(const wstring& processName);
uintptr_t GetModuleBaseAddress(DWORD processId, const wstring& moduleName);
 
const float BASE_REACH = 3.000f;
 
int main()
{
    setlocale(LC_ALL, "Russian");
   
    wstring processName = L"Minecraft.Windows.exe";
 
    DWORD processId = GetProcessIdByName(processName);
    if (processId == 0)
    {
        cout << "Не удалось получить ID процесса Minecraft." << endl;
        return 1;
    }
 
    uintptr_t moduleBaseAddress = GetModuleBaseAddress(processId, processName);
    if (moduleBaseAddress == 0)
    {
        cout << "Не удалось получить базовый адрес модуля Minecraft." << endl;
        return 1;
    }
 
    uintptr_t reachAddress = moduleBaseAddress + 0x11F5718;
 
    HANDLE processHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processId);
    if (processHandle == NULL)
    {
        cout << "Не удалось открыть процесс Minecraft." << endl;
        return 1;
    }
 
    if (WriteProcessMemory(processHandle, (LPVOID)reachAddress, &BASE_REACH, sizeof(BASE_REACH), NULL))
    {
        cout << "Значение дальности успешно изменено." << endl;
    }
    else
    {
        cout << "Ошибка при изменении значения дальности." << endl;
    }
 
    CloseHandle(processHandle);
 
    return 0;
}
 
DWORD GetProcessIdByName(const std::wstring& processName)
{
    DWORD processId = 0;
    HANDLE snapshotHandle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (snapshotHandle != INVALID_HANDLE_VALUE)
    {
        PROCESSENTRY32 processEntry;
        processEntry.dwSize = sizeof(processEntry);
        if (Process32First(snapshotHandle, &processEntry))
        {
            do
            {
                if (processName.compare(processEntry.szExeFile) == 0)
                {
                    processId = processEntry.th32ProcessID;
                    break;
                }
            } while (Process32Next(snapshotHandle, &processEntry));
        }
    }
    CloseHandle(snapshotHandle);
    return processId;
}
 
uintptr_t GetModuleBaseAddress(DWORD processId, const wstring& moduleName)
{
    uintptr_t moduleBaseAddress = 0;
    HANDLE snapshotHandle = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE32, processId);
    if (snapshotHandle != INVALID_HANDLE_VALUE)
    {
        MODULEENTRY32 moduleEntry;
        moduleEntry.dwSize = sizeof(moduleEntry);
        if (Module32First(snapshotHandle, &moduleEntry))
        {
            do
            {
                if (moduleName.compare(moduleEntry.szModule) == 0)
                {
                    moduleBaseAddress = (uintptr_t)moduleEntry.modBaseAddr;
                    break;
                }
            } while (Module32Next(snapshotHandle, &moduleEntry));
        }
    }
    CloseHandle(snapshotHandle);
    return moduleBaseAddress;
}

короче трабл в том, что новое значение не пишется в полученный мною адрес (бейс адрес + офсет рича, который я отрыл в чит енджине)

знает кто, подскажите, пожалуйста

пастбин для удобства

-----

image
в поле Address после + идет оффсет рича, я же все правильно понял? (cheat engine)

что не так?)

Читор фу

Пласеры уважаемые люди в чулочках и неко ушках, а ты нас с говном связал (читами)
#мыНедолбимсявочко

Урааа ждем новые читы

ну че реально никто не знает

С читерастами не работаем

попробуй получить последнюю ошибку поможет наверн

ну блять я просто не знаю что еще на плюсах написать, я же ебучий майнкрафтер

я ричи такие простенькие решил написать чтобы с адресами научиться работать а потом уже целый клиент

ладно завтра попробую длл инжектить в майнкрафт

Вот упертый читерюга

читы плохо удали