たちはPROCESS_VM_READ|PROCESS_VM_OPERATION|PROCESS_VM_WRITE
でオープンなプロセスを必要とする他のプロセスのメモリ空間を言う。これは必須ではありません必要性のためにSE_DEBUG_PRIVILEGE
を持っている - プロセスがデバッガとして同じセッションで実行されている場合は、同じを持っていますトークン - 通常、セキュリティ記述子(DACL
)は、このデバッガに対してオープンします。これは絶対に期待されます。ここで質問してください - デバッグのためのフルアクセスでプロセスを開くことができますか?この "ピア"プロセス(同じユーザーで同じ権限で実行されている場合) - なぜですか?
とDebugActiveProcess機能
からデバッガはPROCESS_ALL_ACCESSするためのプロセスを開くことができなければなりません ターゲットプロセスへの適切なアクセス権を持っている、としなければなりません。 DebugActiveProcessは、デバッガにフルアクセス未満のものを許可するセキュリティ記述子を使用してターゲットプロセスを作成すると失敗することがあります。 デバッグプロセスがSE_DEBUG_NAME特権 を許可して有効にしている場合、デバッグプロセスはどのプロセスもデバッグできます。
、自分から発言
- 保護されたプロセスを除いて、もし(保護の小さくないレベルで)
DebugActiveProcessも保護されたプロセスと呼ばれるだけで、あなたのデバッガ
ありがとう(はい、これも可能デバッグ保護プロセスです)徹底的な答えのために。私は大学で手術システムを勉強したとき、私は全く知らなかったこのウィンドウのセキュリティ管理について言わなかった。あなたの答えといくつかの研究に基づいて、今私はこの質問をよく理解することができます。 –
@DanielGarcíaRubio - どのプロセスにもセキュリティ記述子があります。我々は完全なアクセスでそれを開くことができる場合、プロセスをデバッグすることができます。既定では、同じログオンセッション内のプロセスが相互に許可します。通常のデバッガであり、ログオンセッションからプロセスをデバッグできます。昇格されたシステムプロセスまたは他のログオンセッションで既に実行されているシステムプロセスとそのSDが、上昇したデバッガではなくフルアクセスを許可していないという別の問題です。 'SE_DEBUG_PRIVILEGE'は動作を変更します – RbMm