31. juli 2006 - 20:07
Der er
5 kommentarer
Read Process Memory
Jeg søger et eksempel på hvordan man kan læse en anden process's memory.
Fx søge efter streng eller tal og finde ud af hvad "address" den har og så overvåge den.
Eksempel vil være at læse "wow.exe", som er et computerspil, og finde ud af hvor meget liv man har.
Eksemplet skal være i cpp og så simpelt som muligt
Et lille program der forsøger at læse 4 bytes fra alle de programmer det kan finde:
#include <iostream>
#include <windows.h>
#include <psapi.h>
using namespace std;
int main()
{
DWORD ProcessId[1024], NumProcesses;
EnumProcesses(ProcessId, 1024, &NumProcesses);
DWORD counter;
for(counter = 0; counter < NumProcesses; counter++)
{
HANDLE Proc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcessId[counter]);
if(Proc)
{
char Buffer[1024];
GetModuleBaseName(Proc, 0, Buffer, sizeof(Buffer));
long Addr= 0x40000;
long i = 0;
SIZE_T BytesRead = 0;
if(ReadProcessMemory(Proc, &Addr, &i, 4, &BytesRead))
{
cout << "Success: " << BytesRead << ", " << ProcessId[counter] << ", " << i << ", " << Buffer << endl;
}
}
}
}
Ser ikke rigtig ud til jeg har psapi.h, bruger Microsoft Visual Studio. Jeg kunne heller ikke google den, så kan du smide et link til den include?
05. august 2006 - 06:47
#4
hvis du vil lave en trainer så brug evt et memory search tool og find adressen for health og lav en funktion som læser den.
men jeg går ud fra et den virtuelle adresse er dynamisk allokeret så den ændrer sig nok for hver gang du starter spillet igen