Delphi で VirtualAllocEx を使用して、次のような外部プロセスでメモリを予約しています。
var
p : pointer;
begin
p := VirtualAllocEx(Process, nil, SizeOf(Integer), MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE);
end;
ProcessHandle は以前に開かれていPROCESS_ALL_ACCESS
ます。
その後、私のプログラムは次のように、割り当てられたアドレスに単純な整数値を書き込みます。
WriteProcessMemory(Process, p, @MyInteger, SizeOf(Integer), BytesWritten);
アドレスはp
- に保存されるので、別のアプリケーションで使用するためにアドレスを保存できます。他のアプリケーションは、外部プロセスのアドレスにアクセス/書き込むために、外部プロセスを再度開く必要があります。
私の質問は次のとおりです。外部プロセスでこのアドレスを読み書きできるのは誰ですか?
すべてのプロセスが書き込みを許可されていますか? すべてのプロセスが読み取りを許可されていますか? 管理者権限を持つプロセスのみに読み取り/書き込み権限がありますか?
ご回答有難うございます。