他のプロセスのメモリにアクセスする方法を学ぼうとしています。使用してReadProcessMemoryいますが、アクセスできないメモリから読み取っているため、失敗します。読み込もうとしているメモリが読み取り可能かどうかを最初に使用する必要があると思いますVirtualQueryExが、の結果を解析する方法がわかりませんVirtualQueryEx。
VirtualQueryExここで説明されている構造を返しますhttp://msdn.microsoft.com/en-us/library/windows/desktop/aa366775%28v=vs.85%29.aspx
MEMORY_BASIC_INFORMATION構造内の値がページが読み取り可能かどうかを示す簡単な方法はありますReadProcessMemoryか?
この構造には、私が理解していることから、メモリにアクセスできるかどうかを定義するいくつかのパラメータがあります。
DWORD AllocationProtect;
DWORD State;
DWORD Protect;
DWORD Type;
パラメータのどの組み合わせが実際にメモリの読み取りを許可するか(たとえば、AllocationProtectまたはから保護フラグを読み取る必要がある場合Protect、Stateコミット以外はメモリが読み取り不能であることを意味するなど)、巨大な場合(これはそれであり、それまたはこれはそれです....)クリーンな解決策のようには見えません。
もっと良い方法があるはずですが、私はそれを見つけることができないようです...