Avatar billede sorenml Nybegynder
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
Avatar billede bertelbrander Praktikant
31. juli 2006 - 20:23 #1
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;
        }
      }
  }
}
Avatar billede sorenml Nybegynder
31. juli 2006 - 23:23 #2
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?
Avatar billede bertelbrander Praktikant
31. juli 2006 - 23:55 #3
Avatar billede d34c0n Praktikant
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
Avatar billede d34c0n Praktikant
05. august 2006 - 06:48 #5
men du kan selvfølgelig finde den "rigtige" adresse også :) den du finder er nok bare en pointer til den rigtige.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester