Windows PE 结构中的管理进程位

Admin Process Bit in Windows PE Structure

假设我们为任何给定的 PE 图像填充了 PIMAGE_NT_HEADERSPIMAGE_DOS_HEADER 结构。我的问题是,这些结构中的哪个变量告诉我们进程是否需要管理员权限才能执行(如果它的应用程序图标旁边有小安全盾)?如果两者都不是,那么请告诉我如何从 PE 结构集中解决这个问题(不使用 API)。

该信息未存储在应用程序的 PE 中 header。

Elevation 由 Application Manifest 控制,它通常存储在应用的资源中 ID 为 1 的 RT_MANIFEST(类型 24)资源中(清单也可以存储为与应用程序位于同一文件夹中的外部文件,尽管这种情况不太常见)。

如果启用了 UAC 并且应用程序的清单中的 <requestedExecutionLevel> 元素设置为 requireAdministrator

,应用程序将需要 运行 的管理员权限

有关详细信息,请参阅 How User Account Control (UAC) Affects Your Application

The following flowchart describes how your application will run depending on whether UAC is enabled and whether the application has a UAC manifest