如何获取内核对象的安全描述符

How can I get Security descriptor of kernel objects?

本文关键字:对象 安全 描述 内核 何获取 获取      更新时间:2023-10-16

我有从函数NtQUeryDirectoryObject()收到的内核对象列表。

如何获取此对象的安全描述符?我需要阅读所有这些对象的DACL,但所有尝试都失败,并显示错误"访问被拒绝"。

来自 MSDN GetSecurityInfo() 备注:*若要从对象的安全描述符读取所有者、组或 DACL,必须在打开句柄时授予调用进程READ_CONTROL访问权限。若要获取READ_CONTROL访问权限,调用方必须是对象的所有者,或者对象的 DACL 必须授予访问权限。

基本上据我了解,DACL 是零加访问控制条目。其中每个都有带有 SID 和拒绝或授予访问的表。现在,DACL 由对象的所有者控制。所有者绝对可以给其他人控制权(在MSDN中搜索适当的API),或者我认为其他人也可以通过调用SetKernelObjectSecurity之类的东西来设置它(忘记参数..:))。

我认为它会有所不同,具体取决于您正在处理的"什么"内核对象。还有关于DACL - 研究它是关于空和空的。