c++ - 如何获取内核对象的安全描述符?

标签 c++ winapi kernel

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

我怎样才能得到这个对象的安全描述符?我需要读取所有这些对象的 DACL,但所有尝试都失败并出现错误 “acces is denied”

最佳答案

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

据我了解,DACL 基本上是零加上访问控制条目。其中每一个都有一个带有 SID 的表,访问被拒绝或授予。现在,DACL 由对象的所有者控制。所有者绝对可以授予其他人控制权(在 MSDN 中搜索适当的 API),或者我认为其他人也可以通过调用类似 SetKernelObjectSecurity(forgot params..:))..

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

关于c++ - 如何获取内核对象的安全描述符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18685028/

相关文章:

c - 哪些IO口用于编码引擎、传感器

linux 内核 - 如何获取物理地址(内存管理)?

c++ - 多次同时调用 uv_write 有时不起作用

c++ - Qt:如何将不同类的静态信号连接到插槽?

c++ - 使用 C++ for Windows 加速套接字 WinHttp API 终止的方法

c++ - 检查文本框控件是否为空 C++ Win32

kernel - 用户/内核模式和保护/实模式有什么区别?他们是一样的吗?

c++ - 图形时间线创建用于分析多线程 C++ 程序的软件 API

c++ - 在 clang 中返回 std::initializer_list

c++ - SetWindowshookEx 有时在 dll 注入(inject)后不起作用