2010-11-22 7 views
0

Ich habe vor kurzem beschlossen, dass ich eine Anwendung schreiben würde, die eine Open-Source-Alternative zu einigen der geschlossenen Quell-RAM-Dump-Anwendungen auf dem Markt wäre; hauptsächlich als Lernerfahrung.Eine Frage zu den Methoden der Dumping RAM [Alle Sprachen und Plattformen]

Aber ich bin nicht ganz sicher, wo ich anfangen soll (für Windows-Maschinen). Ich denke, dass ich mit einer Routine, die auf der Kernel-Ebene ausgeführt wurde, den Arbeitsspeicher durchlaufen müsste, aber wie ich die Maschine daran hindern würde, irgendetwas zu tun, während sie einen Snapshot macht oder so wenig wie möglich macht oder überhaupt Zugriff darauf hat der Widder so, ich bin verloren.

Jeder mit Erfahrung oder Beratung ist willkommen, sehr interessantes Thema.

Antwort

1

Für Windows alles, was Sie brauchen, ist in dbghelp.dll - Referenz here.

Sie können entweder die Minidump-Funktionen direkt aufrufen oder alle Strukturen manuell ausführen (was viel mehr Arbeit ist, aber mehr im Einklang mit der von Ihnen beschriebenen Lernübung steht).

Für die Prozesskontrolle sollte die Info auf writing a basic debugger nützlich sein.

+0

Sie für den Link Vielen scheint es, als ob das sehr hilfreich sein sollte. – Melony

+0

In zweiter Linie, es sieht nicht so aus, als wäre die dbghelp.dll für den Job in Ordnung, das ist gut für einen Usermode-Speicherauszug; aber ich muss physischen Speicher auf die Festplatte schreiben. – Melony

0

Hier ist ein kurzes Tutorial zum Anhalten eines Prozesses, damit Sie damit spielen können. http://www.infernodevelopment.com/freeze-programs-using-win32-threads

hier sind einige Funktionen nützlich für die Suche nach dem Prozess oder Fenster, das Sie das bei

  1. GetWindowThreadProcessId
  2. EnumWindows
  3. tasklist
  4. GetCurrentProcess

zum Lesen suchen mag Gedächtnis, können Sie den folgenden api Spaß verwenden ctions.

  1. Open
  2. Readprocessmemory

eine Google-Suche nach denen sollte Ihnen einen guten Start