2017-01-05 3 views
2

タイトルは私の質問をまとめていますが、私は詳しく説明します。私はいつも、管理者権限を持たないプロセスは、他のプロセスのメモリスペースにアクセスできず、実行を停止できないはずだと考えてきました。管理者権限のないプロセスにビジュアルスタジオを添付することができます

ただし、非特権アカウントで実行されているVisual Studioでは、同じアカウントで実行されているいくつかのプロセスにアタッチしてデバッグできます。これはなぜ可能ですか?手術システムがこれを防ぐべきではないか?アクセスのための

事前に感謝と歓声

答えて

2

たちはPROCESS_VM_READ|PROCESS_VM_OPERATION|PROCESS_VM_WRITEでオープンなプロセスを必要とする他のプロセスのメモリ空間を言う。これは必須ではありません必要性のためにSE_DEBUG_PRIVILEGEを持っている - プロセスがデバッガとして同じセッションで実行されている場合は、同じを持っていますトークン - 通常、セキュリティ記述子(DACL)は、このデバッガに対してオープンします。これは絶対に期待されます。ここで質問してください - デバッグのためのフルアクセスでプロセスを開くことができますか?この "ピア"プロセス(同じユーザーで同じ権限で実行されている場合) - なぜですか?

DebugActiveProcess機能

からデバッガはPROCESS_ALL_ACCESSするためのプロセスを開くことができなければなりません ターゲットプロセスへの適切なアクセス権を持っている、としなければなりません。 DebugActiveProcessは、デバッガにフルアクセス未満のものを許可するセキュリティ記述子を使用してターゲットプロセスを作成すると失敗することがあります。 デバッグプロセスがSE_DEBUG_NAME特権 を許可して有効にしている場合、デバッグプロセスはどのプロセスもデバッグできます。

、自分から発言

- 保護されたプロセスを除いて、もし(保護の小さくないレベルで) DebugActiveProcessも保護されたプロセスと呼ばれるだけで、あなたのデバッガ

+0

ありがとう(はい、これも可能デバッグ保護プロセスです)徹底的な答えのために。私は大学で手術システムを勉強したとき、私は全く知らなかったこのウィンドウのセキュリティ管理について言わなかった。あなたの答えといくつかの研究に基づいて、今私はこの質問をよく理解することができます。 –

+0

@DanielGarcíaRubio - どのプロセスにもセキュリティ記述子があります。我々は完全なアクセスでそれを開くことができる場合、プロセスをデバッグすることができます。既定では、同じログオンセッション内のプロセスが相互に許可します。通常のデバッガであり、ログオンセッションからプロセスをデバッグできます。昇格されたシステムプロセスまたは他のログオンセッションで既に実行されているシステムプロセスとそのSDが、上昇したデバッガではなくフルアクセスを許可していないという別の問題です。 'SE_DEBUG_PRIVILEGE'は動作を変更します – RbMm

関連する問題