1

権限が制限されたC++プログラムを作成したい。インターネットで調べたところ、トークンを作成してから、AdjustTokenPrivileges()メソッドを使用してその特権を変更する必要があることがわかりました。

しかし、私はこれがどのように行われるべきかを完全には理解していませんでした。誰かがトークンを作成してその特権を無効にする方法の例を教えてもらえますか?ありがとう :)

4

1 に答える 1

1

C ++を使用した特権操作の実行の例を確認しましたか?GetTokenInformation()関数を使用した後、どのトークンがどのトークンであるかを把握し、それらの一部を無効にする必要があるようです。

[編集]もう少し詳しく説明します。

  • GetTokenInformation()を最初に呼び出すと、トークン特権情報オブジェクトの長さがバイト単位で取得されます。
  • 次に、実際にそのサイズのバッファーをヒープ上に構築します。
  • 2番目の呼び出しは、トークン情報オブジェクトを取得し、それをバッファーに格納します。
  • 次に、バッファをTOKEN_PRIVILEGES *に再キャストします。これにより、バッファを正しく解釈できます。
  • 次に、このオブジェクトのPrivilegesメンバーをループして、さまざまな属性を許可に設定します。

TOKEN_PRIVILEDGES構造の詳細は次のとおりです。Priviledges配列のメンバーごとに、LookupPrivilegeNameを使用して特権の名前を検索できます。

これが特権の名前と説明のリストです。

それがどのような特権であるかを知った後(つまり、名前を確認することによって)、Priviledges[i]メンバーの属性を次のいずれかに設定できます。

  • SE_PRIVILEGE_ENABLED
  • SE_PRIVILEGE_ENABLED_BY_DEFAULT
  • SE_PRIVILEGE_REMOVED
  • SE_PRIVILEGE_USED_FOR_ACCESS

あなたの場合、私はそれがほとんど3番目になると思います。

于 2012-11-08T14:51:31.030 に答える