|
|
发表于 2025-7-17 20:42:25
|
显示全部楼层
关于 KB4490628 是否不再需要,尚待进一步验证。
KB2533552 这个补丁,抛开是否冗余不谈,为什么其程序集中的部分文件,在system32 和 syswow64 目录中存在同名文件的不同的版本,是因为,这些同名文件的来源不同。
这里提供一个分析思路:
一、准备工作:
1、从 msu 包中提取 KB2533552 的程序集清单:amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17592_none_672ce6c3de2cb17f.manifest,以及包容器清单:_manifest_.cix
2、阅读 support 站点关于该补丁的说明,其中有一句不起眼的描述:
注意 更新包中的文件可能会添加到 %windir%\WinSxS\ 文件夹中,而不是 %windir%\System32\ 文件夹。
二、分析程序集:
1、使用文本编辑器打开程序集清单 amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17592_none_672ce6c3de2cb17f.manifest
文件中的 sourceName 被显式定义,这表明,该 manifest 文件复制的所有文件都存储在更新包根目录(%windir%\WinSxS\)内的 amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17592_none_672ce6c3de2cb17f 目录中;
2、该目录中的 39个对象,就是 KB2533552 包含的程序集。在驱动器的其他位置,如有同名文件,通过对比文件版本或hash,可判断同名文件是否同源;
例如 cmiv2.dll 文件,在 system32 和 syswow64 目录就使用了不同的版本,需要注意的是,这两个目录中的 cmiv2.dll,与 KB2533552 无关。
3、使用文本编辑器打开包容器清单 _manifest_.cix 其中详细记录了程序集的版本及其他信息;
4、任何其他补丁(包括便捷补丁包以及月度汇总)都不会修改、替换 amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17592_none_672ce6c3de2cb17f 目录中的程序集,但是,有可能会修改、替换该目录之外的同源文件。
这里说的有可能,呃,是因为我还没检测。。。。。
忙着去喝大酒,回头找时间再看看
|
|