我正在玩弄这里的代码,它使用RawSecurityDescriptor
类从 Windows 注册表读取安全描述符,对其进行更改,然后将更改后的描述符存储回来。这与“dcomperm”Microsoft SDK 示例的功能基本相同。
然而,“dcomperm”样本进行了两次转换——一旦从注册表中读取描述符,它就会从“selt-relative”转换为“absolute” MakeAbsoluteSD()
,然后以这种形式进行更改,一旦更改完成,它就会转换回“self” -relative”MakeSelfRelativeSD()
以“自相关”形式使用和存储。
在我链接到的代码中没有这样的转换。
它们是如何在 C# 中完成的?它们是由 .NET 框架在内部完成的,还是我必须使用 P/Invoke 自己完成?