如何获取内核对象的安全描述符
How can I get Security descriptor of kernel objects?
我有从函数NtQUeryDirectoryObject()
收到的内核对象列表。
如何获取此对象的安全描述符?我需要阅读所有这些对象的DACL
,但所有尝试都失败,并显示错误"访问被拒绝"。
来自 MSDN GetSecurityInfo() 备注:*若要从对象的安全描述符读取所有者、组或 DACL,必须在打开句柄时授予调用进程READ_CONTROL访问权限。若要获取READ_CONTROL访问权限,调用方必须是对象的所有者,或者对象的 DACL 必须授予访问权限。
基本上据我了解,DACL 是零加访问控制条目。其中每个都有带有 SID 和拒绝或授予访问的表。现在,DACL 由对象的所有者控制。所有者绝对可以给其他人控制权(在MSDN中搜索适当的API),或者我认为其他人也可以通过调用SetKernelObjectSecurity之类的东西来设置它(忘记参数..:))。
我认为它会有所不同,具体取决于您正在处理的"什么"内核对象。还有关于DACL - 研究它是关于空和空的。
相关文章:
- 在什么条件下使用 std::memcpy 在对象之间复制是安全的?
- 线程调用的函数对对象删除是否安全?
- 将对象的字节复制到数组并再次复制回来是否安全
- std::memmove在同一对象之间是否始终安全
- asio 链对象线程安全吗?
- 同时调用 ASIO 对象的 API 是否安全?
- 如何将带有缓冲区的对象从插件发送到节点线程安全
- 对于琐碎的对象,在"this"上调用新放置是否安全?
- 单一实例对象是否通过线程安全返回shared_ptr
- 编译器在 const ref 类型参数上使用临时对象时是否应该警告不安全的行为?
- 我怎么知道C++编译器是否制作线程安全的静态对象代码
- 在容器中存储指向对象的指针时的线程安全
- 将对象(如 STL 对象)传入和传出静态库是否安全
- 原子对象在普通对象安全的任何上下文中都是不安全的
- 编写安全包装类以管理用户定义对象的指针
- 链接 gcc 6、gcc 7 和 gcc 8 对象是否安全?
- 关于"pure"函数对象的常量和线程安全
- 通过引用从 c++ 函数异常返回对象是否安全
- 调用不访问已删除对象中的任何类成员的类方法是否安全
- 对象切片:通过按值派生为 Base - 安全还是危险?