他のプロセスのメモリをファイルにダンプする妥当な方法を見つけるのが難しいです。広範な検索した後、私は私が望む機能のほとんど*たCodeProjectので素晴らしい記事*を見つけることができました別のプロセスのメモリのバイナリ/ 16進ダンプを作成するには?
: Performing a hex dump of another process's memory.これは、権限の問題に対処する良い仕事をして、良い基盤を設定します。
しかし、このユーティリティを使用すると、Clean Notepad.exeやCalc.exeインスタンスなどの小さなプロセスでも、24 MBを超えるダンプファイルが生成され、プロセス自体は20 KB未満で実行されることがわかりました。 TaskManagerに従ってメモリに保存します。
この記事では、恐らく共有メモリ、おそらくDLL空間などに物を投げ捨てていると私は思っています。例えば、CALC.EXEのダンプは、Kernel32.dllのからメソッド名(およびおそらくメモリ)が含まセクションが含まれます:
²³´µKERNEL32.dll ActivateActCtx AddAtomA AddAtomW AddConsoleAliasA AddConsoleAliasW AddLocalAlternateComputerNameA AddLocalAlternateComputerNameW AddRefActCtx AddVectoredExceptionHandler AllocConsole AllocateUserPhysicalPages AreFileApisANSI AssignProcessToJobObject AttachConsole BackupRead BackupSeek BackupWrite BaseCheckAppcompatCache BaseCleanupAppcompatCache
をdoesnの別のプロセスのメモリをダンプするためのより良い方法はありますこのオーバーヘッドにつながるのか、おそらくこの問題を解決するリンクされた記事のコードを改善したのでしょうか?私は実際にプロセス自体に属するメモリを取得したい。 DLLで実際に使用されている関数のメモリ空間をダンプするのは問題ありませんが、複数のDLLの*全体の内容をダンプしてプロセスの実行メモリを取得する必要はありません。
私は、30KBプロセスでは30-60KB、25MBではなく30KBプロセスを取得する方法を探しています。少なくとも私は現在入手できるよりも近くにいる。
事前にお寄せいただきありがとうございます。
注:これはコンソールユーティリティのため、CodeProjectの記事のようなGUI要素は重要ではありません。
リンクありがとうございます。 ソースが含まれていればいいと思う=( – KevenK
)著者に連絡することができます。フリーウェアを書いているほとんどの人は、自分のプログラムが役に立ったら助けて協力してくれるでしょう。 –