我有从 function 收到的内核对象列表NtQUeryDirectoryObject()
。
如何获取此对象的安全描述符?我需要阅读DACL
所有这些对象,但所有尝试都失败并出现错误"acces is denied"。
来自 MSDN GetSecurityInfo() 注释: *要从对象的安全描述符中读取所有者、组或 DACL,调用进程必须在打开句柄时被授予 READ_CONTROL 访问权限。要获得 READ_CONTROL 访问权限,调用者必须是对象的所有者,或者对象的 DACL 必须授予访问权限。*
基本上,据我了解,DACL 是零加访问控制条目。这些中的每一个都有一个带有 SID 的表,并且访问被拒绝或授予。现在,DACL 由对象的所有者控制。所有者绝对可以给其他人控制权(在 MSDN 中搜索适当的 API),或者我认为其他人也可以通过调用 SetKernelObjectSecurity(forgot params..:))..
我认为这会有所不同,具体取决于您正在处理的“什么”内核对象。还有关于 DACL - 研究它是关于空和空的。