Speicherabbild erzeugen

stephsto

Erfahrenes Mitglied
Hallo zusammen,

hab mal ne Frage. Ist es möglich und wenn ja wie ein Programm zu schreiben, dass ein komplettes Speicherabbild ausgibt. Also Beipiel:

von Adresse 00FA bis 00FF.

Gruß stephsto
 
Ja, ist wohl möglich.

A) Es ist dein Speicher, dann ist das ja trivial.

B) Es ist nicht dein Speicher, dann wird's kompliziert. Dann musst du schon an OS-spezifische Funktionen ran, damit du dir Leserechte auf irgendeinen Speicher holen kannst. Und ich bin mir sicher, dass es wesentlich aufwendiger wird, als nur das. Ich hab das selber nie gemacht, meine aber, dass es da unter Windows ein paar Funktionen in dem Bereich gibt.
 
moin


Das ist relativ einfach, ob es nun "dein" Speicher ist oder der Speicher eines anderes Programms.

Folgender Code wird dir helfen:
Code:
#include <windows.h>
#include <iostream>

int _tmain(int argc, _TCHAR* argv[])
{
     HWND hwnd;
     DWORD ID;
     DWORD rw=0;
     HANDLE handle;

     int puffer = 0;
     unsigned adresse = 0x0012FEE4; 

     hwnd = FindWindow(NULL, "cracking opfer");
     if(!hwnd)
     {
          std::cout<<"Fehler! Konnte Opfer nicht finden";
          Sleep(1000);
          return 0;
     }

     GetWindowThreadProcessId(hwnd, &ID);

     handle = OpenProcess(PROCESS_ALL_ACCESS, false, ID);

     ReadProcessMemory(handle, (LPCVOID)adresse, &puffer, sizeof(puffer), &rw);
     std::cout<< puffer;                                                           

     WriteProcessMemory(handle, (LPVOID)adresse, &(puffer+=1), sizeof(int), &rw); 
                                   
     Sleep(2000);
     CloseHandle(handle);
     return 0;
}

Hab den Code schonmal in einem Thread namens "Andere Programme manipulieren" vorgestellt.

Wenn du fragen zu dem Code hast, dann frag.


mfg
umbrasaxum
 
Zuletzt bearbeitet:
Zurück