0

我有一个在 IE10 中运行的 ActiveX 控件(插件),在 Windows 8 中打开了增强保护模式。(它根据http://blogs.msdn.com/b/ieinternals/archive/2012/03/向 CATID_AppContainerCompatible 注册23/understanding-ie10-enhanced-protected-mode-network-security-addons-cookies-metro-desktop.aspx )

我需要我的插件与进程外 COM 服务器通信,但是当我调用 CoCreateInstance 时,我收到“类未注册”错误。我认为这是因为插件对注册表没有读取权限。

有没有办法使这项工作?


更新-

事实证明,我对“类未注册”错误的假设是错误的。

我已经添加了我的解决方案作为答案。我不知道为什么这会破坏它,我猜这与 EPM 的 AppContainer 隔离级别有关。另一个假设:/

如果有人可以对这里发生的事情有所了解,那将很有帮助。

4

2 回答 2

1

打开增强保护模式时,有很多事情是你不能做的,它是一个非常强大的沙盒。与进程外 COM 服务器对话肯定在该列表中很重要。跨进程互操作是病毒黑客最喜欢使用的工具。不仅因为它使清除病毒变得如此困难,它还可以完全而轻松地绕过沙盒限制。当您可以在另一个进程中运行代码时,没有保护模式,它完全破坏了该功能。

只要您依赖该服务器,这里就没有真正的前进道路。

于 2013-06-06T11:15:52.823 回答
0

为了使其工作,我只需将插件 DLL 放在 Program Files 文件夹中,或者将所有应用程序包(读取、读取和执行)添加到其文件权限中。然后我可以共同创建一个 COM 对象并与我的 COM 本地服务器通信。

于 2013-06-26T20:57:13.510 回答