了解应用程序是否需要管理员权限

Windows 7使用自动机制来检测应用程序是否需要提升的管理员权限。 或者应用程序本身有一个清单。

有没有办法通过编程来找出指定应用程序是否需要提升管理员权限? 我不想开始发现它。

谢谢 ;)。


实际上只有一种方法可以告诉Windows,程序需要升级,这是通过清单文件。 清单文件可以嵌入程序集(exe / dll)中,也可以位于名为<YOUR_APP>.exe.manifest的单独文件中。 这是唯一的方法,也许是唯一可以安全检查的方法。 正式。

Windows还包含一个用于应用程序兼容性的巨大数据库。 如果微软已经测试了一个应用程序,并发现它在操作系统升级发生时中断,他们有时会在数据库中创建一个条目来实质上破解该应用程序。 有时候他们会说当前的操作系统版本,有时候他们会自动以管理员身份运行,有时他们会做很多其他的事情。 您可以使用应用程序兼容性工具包查看数据库。 我不知道是否有官方的方式来通过代码查询数据库。 这篇博客文章讨论了博主作出的一​​个工具,但显然从未发布。

最后一个自动提升机制是试图确定该应用是否为安装程序的算法。 根据MSDN,这些属性被检查:

  • 文件名包含“安装”,“设置”,“更新”等关键字。
  • 以下“版本控制资源”字段中的关键字:供应商,公司名称,产品名称,文件说明,原始文件名,内部名称和导出名称。
  • 嵌入在可执行文件中的并行清单中的关键字。
  • 可执行文件中链接的特定StringTable条目中的关键字。
  • 在可执行文件中链接的RC数据中的关键属性。
  • 目标可执行文件中的字节序列。
  • 关键字和字节序列是从各种安装技术中观察到的共同特征导出的。

    最后,应用程序可以像普通用户一样运行,但会产生需要提升权限的子进程。 我不知道是否真的有办法实际检测到反编译应用程序本身的缺点。

    链接地址: http://www.djcxy.com/p/55417.html

    上一篇: Find out whether an application needs administrator privileges

    下一篇: Inspecting a variable in the lisp SLIME debugger