2

すべての Win-Kernel オブジェクトへのアクセス権のリストを取得する必要があります。私がやること:

for (int i=0; i<9999; i++)
    GetKernelObjectSecurity( i, ... ) //result in security_descriptor
    GetSecurityDescriptorDacl( security_descriptor, ... ) // result in lpbDaclPresent
    if (lpbDaclPresent)
        //lpbDaclPresent - need to get

DACL = Null の場合 -> "all can do all"

DACL != Null の場合 -> DACL マスクを解析中


私は正しい軌道に乗っていますか?ちなみに、私は持っています:

DACL なしで最大 300 ハンドル

DACL を使用した最大 100 ハンドル (Windows 7 でのテスト)

4

1 に答える 1

2

HANDLES をブルートフォースしたい場合は、9999 で止まらないでください。すべての 32 ビット値を調べてください。

または、すべての Usermode-Process-Handles を列挙することもできます: http://forum.sysinternals.com/howto-enumerate-handles_topic18892.html

この方法の利点は、必要に応じて、DuplicateHandle を使用するためのハンドルの元のプロセスを知っていることです。

于 2013-01-28T11:54:10.297 に答える