他のプロセスのメモリにアクセスする方法を学ぼうとしています。使用して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
コミット以外はメモリが読み取り不能であることを意味するなど)、巨大な場合(これはそれであり、それまたはこれはそれです....)クリーンな解決策のようには見えません。
もっと良い方法があるはずですが、私はそれを見つけることができないようです...