Einzelnen Beitrag anzeigen

NicoDE
(Gast)

n/a Beiträge
 
#10

Re: hauptspeicher ab offset 0 auslesen?

  Alt 6. Jul 2004, 19:56
Zitat von richard_boderich:
gut dann hab ich ein handle auf dem speicherbereich, aber wie gehe ich an eine bestimmte stelle im speicher und lese die aus?
Ich gehe mal davon aus, dass wir hier nur über die aufwendigere Methode unter Windows NT sprechen (MS-DOS und Win9x sind ja kein Problem)...

Unter WindowsNT:
- wird der für Dich interessante Speicherbereich nicht in den Adressraum von Prozessen gemappt
- dass heißt, dass kein Prozeß auf den Speicherbereich direkt zugreifen kann
- weiterhin gibt es keine Win32 API-Funktion um an den betreffenden Bereich zu kommen
(es können mit der Win32 API keine benannten Objekte mit '\' im Namen geöffnet werden...)
Was möglich ist:
- das benannte Kernel-Objekt '\Device\PhysicalMemory' mit Hilfe einer NT-internen Funktion zu öffnen
(das Objekt repräsentiert den physikalischen Speicher, geht nur als lokaler Admin)
- mit dem Handle kann nun ein Bereich aus dem 'physikalischen Speicher' in den Adreßraum Deines Prozesses gemappt werden
(diesen Bereich kannst Du nun lesen...)

NTVDM:
- der Speicherbereich wird vom '16-Bit Emulator' bereitgestellt

Win9x:
- der entspechende Speicherbereich wird in jedem Adressraum gemappt (direkter Zugriff möglich)


Gruss Nico

edit: wenn Du versuchen willst unter WinNT direkt in den Bildschirmspeicher zu schreiben: such Dir eine andere Herausforderung
  Mit Zitat antworten Zitat