Windows APIの CreateFileMapping ではファイルハンドルに INVALID_HANDLE_VALUE
を渡すと実在しないファイルをmemory-mapped fileとして扱うことができる。たとえば次のコードを実行すると MappedFileTest
という名前でmemory-mapped fileが作られる。
CreateFileMappingA(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, 512, "MappedFileTest");
しかし、ファイルの実体がディスク上にないため1直接ファイルを開いて中身のデータを見るというのができない。 簡単に見る方法はないかなと探したところ、Process Hacker にその機能があった。
対象プロセスのプロパティの "Handles" タブを開くとその中に memory-mapped fileが Section というカテゴリで存在する。コンテキストメニューから "Read Write Memory" を選択すると中身のバイナリデータを直接見れる!すごい!
このデータをそのままバイナリファイルとして保存もできるので、バイナリエディタに移して解析することも可能。 Process Hacker、本当に便利ソフトです。
-
どこかにあるのかもしれないが、場所がわからない↩