Память процесса чтения C++
Я новичок в C++, и это просто боль в заднице, чтобы найти один рабочий пример чтения памяти процесса.
Что я уже пробовал:
После нескольких часов гугления я в конце концов нашел проблеск надежды на этот код:
// ConsoleApplication4.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <windows.h> #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { DWORD address = 0x002B45AC; // This is the address that we want to read from float value = 9999; // This will store our value. In my case, its an integer, which is the timer DWORD pid; //This will store our Process ID, used to read/write into the memory HWND hwnd; //Finally a handle to our window hwnd = FindWindow(NULL, L"minesweeper"); //Finds the Window called "Minesweeper" if (!hwnd) //If none, display an error { cout << "Window not found!\n"; cin.get(); } GetWindowThreadProcessId(hwnd, &pid); //Get the process id and place it in pid HANDLE phandle = OpenProcess(PROCESS_VM_READ, 0, pid); //Get permission to read if (!phandle) //Once again, if it fails, tell us { cout << "Could not get handle!\n"; cin.get(); } while (1) //Forever, or until you force close the program { ReadProcessMemory(phandle, (void*)address, &value, sizeof(value), 0); //Read what is in "address" and store it in "value", then what is the size of what we are going to read which is "value",and finally the number of bytes read, but I dont care about that so I put a 0, or NULL cout << value << "\n"; //Display it Sleep(1000); //I was reading the timer which increases every second, so I made my program go through that loop every second //return 0; } }
Я пытаюсь читать поплавок "ценность"из игрового процесса и вывести его на консоль. Я также пытаюсь писать для обработки памяти, так что если бы кто-нибудь мог мне в этом помочь, я был бы очень признателен!!
Спасибо,
jeron1
Я не использовал эту функцию, но возвращает ли ReadProcessMemory () false? Если да, то что говорит GetLastError ()?
MrJack Mcfreder
GetLastError() возвращает 2990, а ReadProcessMemorry () возвращает ранее объявленное значение "9999", тогда как я хочу, чтобы он считывал значение float в памяти игрового процесса.