【问题标题】:User Interface Privilege Isolation in XP SP3XP SP3 中的用户界面权限隔离
【发布时间】:2008-11-07 13:48:25
【问题描述】:

经过一番确认,真的:

XP SP3 是否实现了 Vista 中的用户界面特权隔离 (UIPI) 机制?

人类兴趣的背景故事 :) 我最近将 C++ 源代码交给了一个相当大的应用程序。遗憾的是,自 90 年代中期以来,该应用程序的唯一开发人员最近去世了,这使我们处于非常紧张的境地,直到我们可以聘请新的开发人员。

最近用户报告说该应用程序已随机停止工作和/或以前工作的某些功能似乎根本没有触发“尽管没有任何改变我的结局!”。 “没有改变”原来是 SP3 :)

知道这一点,虽然我不是 C/C++ 人,但我想我应该看看源代码,看看是否能找到任何东西(我花了很多时间研究防火墙、病毒扫描仪和其他外部因素)。

我跟踪到调用 Api 函数 SendMessage 的一个错误,并前往 MSDN 文档查看。它明确指出“Microsoft Windows Vista 及更高版本。消息发送受用户界面特权隔离 (UIPI) 的约束。进程的线程只能将消息发送到完整性级别较低或相等的进程中的线程的消息队列。” 虽然我不能 100% 确定,但这似乎是一个可能的原因。

干杯!

莱尼。

【问题讨论】:

    标签: c++ security winapi windows-xp uipi


    【解决方案1】:

    不,XP SP3 没有实现任何 Vista 安全更改,至少没有任何与窗口管理器相关的更改。您并没有真正提供太多背景信息来提供帮助,但是您会遇到与 SendMessage() 相关的哪种错误?

    SendMessage() 是一个使用非常广泛的例程,它只是将 Windows 消息发送到窗口,所以我希望错误与接收者窗口如何处理传入消息(或不处理)有关,而不是与 SendMessage( ) 本身。与其将 SendMessage() 视为一个 Windows 函数,不如将其视为一个函数,该函数最终会在任何拥有您将消息发送到的窗口的应用程序中调用进一步的应用程序代码 - 特别是SendMessage() 的返回代码告诉您窗口的应用程序是如何尝试处理消息的。

    【讨论】:

      【解决方案2】:

      UIPI 不会在 SendMessage 上报告错误 - 如果您收到错误返回,那么它是另一回事。其他评论者是对的,UIPI 仅在 Vista 上,您不会被这个无论如何所困扰,除非您尝试向服务发送消息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-16
        • 2011-02-24
        • 1970-01-01
        相关资源
        最近更新 更多