0

短版:见主题

详细版本:

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

过去,在使用 DLL 附带的 3rd 方主题相关模组时(例如用于登录 ui 的 authui.dll,或用于修改系统图标的 imageres.dll),我通过简单地复制未知 DLL 的主题相关资源来避免使用未知 DLL (例如位图、图标组或 UI 脚本)到它的原始 MS Dll 对应物。我称之为资源嫁接,其中资源被更改,但 DLL 或 exe 的可执行元素被单独保留。

回到我想安装的主题,我使用 sha256 哈希确定只有 aero.msstyles 也可以被资源黑客修改。所以我做了和平时一样的事情,把第三方主题的资源转移到了Window自己的aero.msstyles中。问题是我遇到了一种我无法阅读或知道其内容的资源。它被称为变体。从在 VM 中进行的一些实验来看,它似乎是资源黑客无法反编译的某种二进制 UI 脚本。我通常希望能够阅读我传输的任何 UI 脚本,但我无法使用这个。

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

4

1 回答 1

0

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

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

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

为了解决2的可能性,我做了一个搜索,看看小木马代码可以得到多少。如果编译的 UI 脚本,木马被塞进 32 字节的可能性有多大?我发现了一些关于 DOS 时代的旧 17 字节病毒,称为 trivial,我立即忽略了它,因为鉴于它的已知行为,它很快就会变得明显。至于具有后门和下载能力的成熟木马,我发现的最小的是 20kb(木马 tinba),发现于 2012 年。还有 Catchy32,它仍然被认为是木马,但功能更简单、更具体,大约 580 字节(参考)。基于此信息,我确定在 32 字节代码中添加任何代码的可能性极小(如果不是不可能的话),并确定相关资源是干净的。

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

于 2017-05-08T02:23:12.043 回答