DPAPIのCryptProtectMemory
APIを使用すると、CRYPTPROTECTMEMORY_SAME_PROCESS
フラグを渡すことができます。これにより、他のプロセスがメモリを復号化できなくなります。これを回避する1つの方法は、、、を使用OpenProcess
してWriteProcessMemory
、CreateRemoteThread
ターゲットプロセスにコードを挿入し、それを呼び出すことCryptUnprotectMemory
です。これにより、メモリが復号化され、他のプロセスにリークされます。
両方のプロセスがWindowsVista以降で同じ制限付き特権ユーザー(つまり、管理者ではない)のコンテキストで実行されていると仮定すると、これはまだ可能ですか?プロセスACLに関係なく、限られたユーザーに対してプロセスメモリの書き込み操作が拒否されたという印象を受けましたが、間違っている可能性があります。