Ich habe Probleme, eine sinnvolle Möglichkeit zu finden, den Speicher eines anderen Prozesses in eine Datei zu schreiben.Wie erstellt man einen Binär-/Hex-Speicherauszugsspeicher eines anderen Prozesses?
Nach umfangreichen Suche, ich habe in der Lage gewesen, einen schönen Artikel auf Codeproject zu finden, die meisten * der Funktionalität * hat ich will: Performing a hex dump of another process's memory. Dies macht einen guten Job Berechtigungsprobleme anzugehen und stellt eine gute Grundlage.
Allerdings habe ich gesehen, dass selbst ein kleiner Prozess, wie eine saubere Notepad.exe oder Calc.exe-Instanz, eine Dump-Datei über 24 MB Größe generieren kann, während der Prozess selbst unter 20 KB in ausgeführt wird Speicher nach TaskManager.
Der Artikel hat mich dazu gebracht zu glauben, dass es vielleicht auch Dinge in Shared Memory, möglicherweise DLL-Raum und dergleichen. Zum Beispiel wird ein Dump von Calc.exe umfassen Abschnitte, die Methodennamen enthalten (und vermutlich Speicher) von Kernel32.dll:
²³´µKERNEL32.dll ActivateActCtx AddAtomA AddAtomW AddConsoleAliasA AddConsoleAliasW AddLocalAlternateComputerNameA AddLocalAlternateComputerNameW AddRefActCtx AddVectoredExceptionHandler AllocConsole AllocateUserPhysicalPages AreFileApisANSI AssignProcessToJobObject AttachConsole BackupRead BackupSeek BackupWrite BaseCheckAppcompatCache BaseCleanupAppcompatCache
Gibt es einen besseren Weg, um die Erinnerung an einen anderen Prozess zu entleeren, die doesn führt dies nicht zu einem Mehraufwand oder vielleicht zu einer Verbesserung des Codes des verknüpften Artikels, der dieses Problem löst? Ich möchte die Erinnerung bekommen, die eigentlich zum Prozess selbst gehört. Ich wäre damit einverstanden, den Speicherplatz von Funktionen zu verschwenden, die tatsächlich in DLLs verwendet werden, aber es scheint unnötig zu sein, den * gesamten * Inhalt mehrerer DLLs auszugeben, um den laufenden Speicher des Prozesses zu erhalten.
Ich bin auf der Suche nach einer Möglichkeit, die 30-60KB eines 30KB-Prozesses zu erhalten, anstatt 25MB für einen 30KB-Prozess. Oder zumindest näher, als ich momentan bekommen kann.
Vielen Dank im Voraus für Ihre Anregungen und Anleitungen, es wird geschätzt.
Hinweis: Dies ist für ein Konsolendienstprogramm, daher sind GUI-Elemente wie die im CodeProject-Artikel unwichtig.
Danke für den Link. Ich wünschte nur, der Link enthalten Quelle = ( – KevenK
Nun, vielleicht könnten Sie den Autor kontaktieren. Die meisten Leute, die Freeware schreiben, sind bereit zu helfen und zu kooperieren, wenn Sie ihr Programm nützlich finden. –