Arbeitsspeicher auslesen
-
Tach Leute. Bin eigentlich C++ Coder aber ich hab die Befürchtung, dass ich jetzt nicht um Assembler herum komme. Es gibt ja Programme wie RamSpy oder ShowMem die einem den Inhalt des Arbeitsspeichers anzeigen. Die sind in Assembler programmiert und erfüllen ihren Zweck. Wenn ich allerdings den kompletten Arbeitsspeicher auslesen will bekomme ich Fehlermeldungen vom System ("Access violation"). Gibt es in Assembler eine Möglichkeit sich den Speicher an irgendeiner Adresse in eine BYTE-Variable zu holen ohne dass Windows wegen der Zugriffsrechte meckert??? Wäre euch für eine Lösung sehr dankbar...
-
Original erstellt von MaSTaH:
Tach Leute. Bin eigentlich C++ Coder aber ich hab die Befürchtung, dass ich jetzt nicht um Assembler herum komme. Es gibt ja Programme wie RamSpy oder ShowMem die einem den Inhalt des Arbeitsspeichers anzeigen. Die sind in Assembler programmiert und erfüllen ihren Zweck. Wenn ich allerdings den kompletten Arbeitsspeicher auslesen will bekomme ich Fehlermeldungen vom System ("Access violation"). Gibt es in Assembler eine Möglichkeit sich den Speicher an irgendeiner Adresse in eine BYTE-Variable zu holen ohne dass Windows wegen der Zugriffsrechte meckert??? Wäre euch für eine Lösung sehr dankbar...Kurzgesagt nein Warum nein? Weil der Protected Mode erfunen wurde um genau das zu verhindern
Lang ausgeholt nur eine Minimal kleine bzw. zwei.
- Du kannst den virtuellen Speicher eines anderen Prozesses auslesen (zumindest Windows unterstützt das), sofern du Administrator bist (siehe GetProcessMemory)
- Du kannst dir einen Betriebssystemtreiber schreiben, der sich in einem getrennten Prozess ein Page Table Directory baut, so dass dieser Prozess den realen Speicehr sieht, ist aber denke ich relativ komplex und meistens die Mühe nicht Wert denke ich