Windows 主题文件 (aero.msstyles) 是否可以在其资源中侧载间谍软件,特别是在 UI 脚本中

Can Windows Theme files (aero.msstyles) be sideloaded with spyware in their resources, specifically in UI scripts

简短版本:见主题

详细版:

我想为 Windows 使用特定的第 3 方主题。我已经在使用我自己编译的开源解决方案来禁用 Window 对主题的限制。

过去,当使用 DLL 附带的与第 3 方主题相关的模组时(例如 authui.dll 用于登录 ui,或 imageres.dll 用于模组系统图标),我通过简单地将未知 DLL 的主题相关资源(例如位图、图标组或 UI 脚本)复制到它的原始 MS Dll 副本,避免使用未知 DLL。我将此称为资源嫁接,即资源被更改但 DLL 或 exe 的可执行元素保持不变。

回到我要安装的主题,我使用 sha256 哈希确定只有 aero.msstyles 也可以被资源黑客修改。所以我做了我通常做的同样的事情,并且 t运行 将资源从第三方主题转移到 Window 自己的 aero.msstyles。问题是我 运行 进入了一种我无法读取或不知道其内容的资源类型。它叫做 VARIANT。从在 VM 中进行的一些实验来看,它似乎是资源黑客无法反编译的某种二进制 UI 脚本。我通常希望能够阅读我 运行 提供的任何 UI 脚本,但我无法阅读这个脚本。

这会构成任何真正的安全风险吗? UI 脚本可以通过某种漏洞进行旁加载吗?对我来说似乎不太可能,因为主题文件 (msstyle) 的功能是协调系统 UI 的外观 运行ce,但我对整个主题系统的内部工作知之甚少确定。我想在我从虚拟机中取出主题之前我会得到一些其他观点。

我使用 vBinDiff 将修改后的 VARIANT/NORMAL 二进制文件的十六进制代码与原始主题的十六进制代码进行比较。您还可以复制 binhexes 并将它们保存到两个文本文件中,您可以将其与 WinMerge 进行比较。

vBinDiff 和 WinMerge 将突出显示对二进制文件所做的修改和 additions/substractions,并排显示。我通读了差异,其中 90% 不大于 4 个八进制(4 字节),这通常是您在使用十六进制编辑器修改颜色时期望看到的。最大的差异是增加了 32 字节的代码。

对于这样的添加有两种可能的解释:(1) 作者添加了额外的图像资源并添加了引用它们所需的条目,(2) 有某种不需要的代码被偷偷溜进去了。

为了解决2的可能性,我搜索了一下木马代码有多小。编译UI个脚本,木马被塞进32bytes的可能性有多大?我发现了一些关于 DOS 时代的旧 17 字节病毒的提及,称为 trivial,我立即忽略了它,因为鉴于它的已知行为,它会很快变得明显。至于具有后门和下载功能的完整木马,我发现最小的是 20kb (trojan tinba),发现于 2012 年。还有 Catchy32,它仍然被认为是木马,但具有更简单和非常具体的功能,大约 580 字节(reference)。基于此信息,我确定在 32 字节的代码中插入任何代码的可能性很小(如果不是不可能的话),并确定所讨论的资源是干净的。

请注意,这并没有回答我问的问题(主题中的二进制 UI 脚本资源可以携带恶意代码)但它确实解决了我的困境。以为我会分享它。