Вопрос ReadMemoryProcess не может прочитать память, ошибка 299

Начинающий
Статус
Оффлайн
Регистрация
9 Апр 2024
Сообщения
5
Реакции[?]
0
Поинты[?]
0
Только начал изучать написание читов под кс го и наткнулся на проблему с тем что память не читается, я попробывал прочитать память без offset и все работает, но при добавлении offset ReadMemoryProcess завершается не успешно и при последующем вызове GetLastError выдает ошибку 299
C++:
#include <Windows.h>
#include <iostream>
#include <tlhelp32.h>

uintptr_t client_dll;
int main() {
    HWND windows = FindWindowA(NULL, "Counter-Strike 2");
    DWORD ProcessId;
    GetWindowThreadProcessId(windows, &ProcessId);
    HANDLE ProcessCS2 = OpenProcess(PROCESS_ALL_ACCESS | PROCESS_VM_READ, FALSE, ProcessId);
    if (ProcessCS2 != INVALID_HANDLE_VALUE) {
        MODULEENTRY32 Module;
        Module.dwSize = sizeof(MODULEENTRY32);
        HANDLE Snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE, ProcessId);
        if (Snapshot != INVALID_HANDLE_VALUE) {
            if (Module32First(Snapshot, &Module)) {
                do
                {
                    if (lstrcmpiW(Module.szModule, L"client.dll")) {
                        client_dll = (uintptr_t)Module.modBaseAddr;
                        break;
                    }
                } while (Module32Next(Snapshot, &Module));
            }
        }
        CloseHandle(Snapshot);
        uintptr_t value = 0;
        ReadProcessMemory(ProcessCS2, (LPVOID*)(client_dll + 0x191157), &value, sizeof(value), NULL);
        std::cout << GetLastError();
        int FOV = 160;
        WriteProcessMemory(ProcessCS2, (LPVOID*)(value), &FOV, sizeof(FOV), NULL);
        CloseHandle(ProcessCS2);

    }
}
 
Начинающий
Статус
Оффлайн
Регистрация
9 Апр 2024
Сообщения
5
Реакции[?]
0
Поинты[?]
0
теперь новая проблема
C++:
#include <Windows.h>
#include <iostream>
#include <tlhelp32.h>

uintptr_t client_dll;
int main() {
    HWND windows = FindWindowA(NULL, "Counter-Strike 2");
    DWORD ProcessId;
    GetWindowThreadProcessId(windows, &ProcessId);
    HANDLE ProcessCS2 = OpenProcess(PROCESS_ALL_ACCESS | PROCESS_VM_READ, FALSE, ProcessId);
    if (ProcessCS2 != INVALID_HANDLE_VALUE) {
        MODULEENTRY32 Module;
        Module.dwSize = sizeof(MODULEENTRY32);
        HANDLE Snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE | TH32CS_SNAPMODULE, ProcessId);
        if (Snapshot != INVALID_HANDLE_VALUE) {
            if (Module32First(Snapshot, &Module)) {
                do
                {
                    if (lstrcmpiW(Module.szModule, L"client.dll")) {
                        client_dll = (uintptr_t)Module.modBaseAddr;
                        break;
                    }
                } while (Module32Next(Snapshot, &Module));
            }
        }
        CloseHandle(Snapshot);
        uintptr_t value = 0;
        ReadProcessMemory(ProcessCS2, (LPVOID*)(client_dll + uintptr_t(0x191157)), &value, sizeof(value), NULL);
        std::cout << GetLastError();
        int fov = 160;
        WriteProcessMemory(ProcessCS2, (LPVOID*)(value), &fov, sizeof(fov), NULL);
        std::cout << GetLastError();
        CloseHandle(ProcessCS2);

    }
}
теперь WriteProcessMemory возвращает ошибку 998
 
Сверху Снизу