为什么每当我启动游戏时“Windows 游戏资源管理器”都会尝试访问互联网?

为什么每当我启动游戏时“Windows 游戏资源管理器”都会尝试访问互联网?

我正在运行 Windows 7 SP1 Ultimate(64 位),该操作系统正在向互联网发出一些不受欢迎的和无法识别的调用。

每当我启动游戏时(在这种情况下虚幻竞技场65.55.162.26) 我注意到 Windows 尝试通过连接到 IP 地址rundll32.exe

使用 Fiddler(和/或粗略的 Google 搜索)显示该 IP 与以下主机名相关:

games.metaservices.microsoft.com
music.metadata.windowsmedia.com.akadns.net
info.music.metaservices.microsoft.com

我发现这很可能来自“Windows 游戏资源管理器”(或只是“开始菜单”中的“游戏”)。

但是,即使我禁用游戏资源管理器中所有与在线相关的选项,Windows 仍在尝试建立连接。

我想明确指出的是,这不是由游戏本身引发的。

为什么会发生这种情况,因为我已经禁用了 Windows 游戏资源管理器的所有在线功能,我该怎么做(除了在我的hosts文件中阻止上述主机名)来阻止它?

我提出这样的原则:当我明确要求操作系统不要这样做时,它就不应该进行调用。

在此处输入图片描述 在此处输入图片描述

答案1

为什么会发生这种情况?

这一页提出了合理的理由:

Windows 7 中有一个烦人的软件,叫做“游戏资源管理器”,可以通过“开始”菜单中的“游戏”按钮启动。每当启动游戏时,它都会自动从互联网上下载图标、封面和其他微软认为有用的东西。

如何阻止它?

我想象了几种选择(从最干净到最脏):

  1. 从程序兼容性助手(PCA)中排除可执行文件support.microsoft.com/en-us/kb/2545347
  2. Program Compatibility Assistant使用服务面板或通过组策略编辑器禁用。
  3. 将提到的主机重定向到 127.0.0.1。我试过了,但对我的情况不起作用——进程只是挂起。然而,这一页这表明它对 Oblivion 有效。
  4. 限制访问gameux.dll。这就是我为“修复” Project Nomads 所做的工作(见下文)。
  5. 删除C:\Windows\AppPatch\sysmain.sdb。第一个链接表明它有效。

我还没有尝试过#1、#2 和#5。

我的经验

我注意到了完全相同的问题,Project Nomads (2002) 在我打开互联网之前无法启动。游戏 exe 文件会启动,rundll32.exe然后运行C:\Windows\System32\gameux.dll,而这确实请求了65.55.162.26:443

我不想像第一个链接建议的那样尝试删除sysmain.sdb——也许一些旧程序会崩溃?毕竟这是“兼容性”功能。

相反,我获得了所有权gameux.dll并从访问列表中删除了我的用户。现在,当我启动游戏时,它显示Access denied to gameux.dll,我按“确定”,rundll32.exe进程退出,游戏运行正常。没有执行任何请求,游戏无需互联网连接即可运行。

到底是怎么回事?

来自 Windows Shim 数据库 (SDB) 分析器工具页面 ( tzworks.net/prototype_page.php?proto_id=33):

Microsoft 的应用程序兼容性框架使用 Shim 数据库来识别是否以及如何在进程启动和/或 DLL 加载期间对应用程序或 DLL 进行填充。默认的 Shim 数据库位于 \Windows\AppPatch\sysmain.sdb,对于普通的 Win7 系统来说,它可以包含数千个条目。

...应用程序兼容性框架允许在 Windows 系统中安装的应用程序进行“动态”修补(即无需重新启动即可进行修改),并且该修补程序可用于生成其他进程和/或将不需要的 DLL 注入到修补的应用程序中。

我不能肯定地说,但我对你的评论的唯一解释

该调用来自 rundll32.exe,它调用的是 Microsoft 特定的主机,而该主机在该游戏开发几年后才存在

Windows 是注射调用gameux.dll我们无辜的游戏 exe。

Malicious Application Compatibility Shims如果您担心安全问题,可以参阅一篇论文。

PS:抱歉,我不得不欺骗编辑,让他发布>2 个链接,并获得<10 个评价。

相关内容