无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: wu733
打印 上一主题 下一主题

Win7 SP1集成补丁过程的取代、衍生和依存关系归纳汇总(持续更新中......)

    [复制链接]
181#
 楼主| 发表于 2025-3-19 10:08:49 | 只看该作者
本帖最后由 wu733 于 2025-3-19 10:15 编辑

外网有一种取代的定义:元数据取代metadata-supersedence。该取代类型由微软在服务器端更新补丁的元数据信息触发。当新补丁发布时,微软会通过元数据标记旧补丁为“被取代”,导致旧补丁从WU推送列表中移除。在此场景中,补丁B被标记为取代补丁A,因此安装B后,系统根据元数据判断B已覆盖A的功能,无需重复推送A,故A从列表中消失。所以,这种元数据取代跟我的推送取代就是一样的定义
回复

使用道具 举报

182#
 楼主| 发表于 2025-3-30 15:56:22 | 只看该作者
将原来的继承取代定义取消,改为:
2、官载取代:由微软官方在取代列表Package Details里面详细记载的取代关系。
回复

使用道具 举报

183#
 楼主| 发表于 2025-4-24 18:43:06 | 只看该作者
本帖最后由 wu733 于 2025-5-6 21:13 编辑

(五)常见无公告取代既不是官载取代也不是推送取代或直接被微软废弃的情况
KB0977206  2010年01月04日免除Windows Virtual PC和XP Mode的硬件需求       微软于2010年3月18日取消了Windows XP Mode对硬件虚拟化技术的强制要求,故此补丁已被微软废弃
KB2533623  2011年06月05日Windows新的API增强功能       已被微软废弃KB3063858后续月度汇总取代
KB2639308  2011年11月21日支持ASLR(地址空间布局随机化)新功能       ASLR 技术本身存在一定局限性(如内存地址随机化范围有限、绕过攻击手段演变等),故KB2639308难以适应现代攻击防御需求,已被微软废弃
KB2731771  2012年08月22日提供了用于本地时间和UTC之间转换的新API      
已被微软废弃KB2758857KB2726535后续月度汇总取代
KB2913751  2013年11月27日RDP 8.1更新       已被微软废弃,被KB2923545取代,见KB2923545的微软支持信息页面的“更新替换信息
KB4012212  2017年03月28日仅安全更新,永恒之蓝补丁       后续月度汇总取代,感谢隔壁论坛的gwaijyut提供了这一重要结论
三个跟HyperV有关的补丁
KB3063109  2015年10月 主要修复了Windows 7环境下Hyper-V虚拟机在动态迁移(Live Migration)过程中可能出现的连接中断问题,同时优化了虚拟网络适配器的兼容性。此更新还解决了部分场景下虚拟机启动失败或性能下降的缺陷。已被微软废弃后续月度汇总取代
KB3158627  2016年04月 修复了Hyper-V宿主机与虚拟机之间因网络协议栈漏洞导致的潜在拒绝服务攻击(DoS)风险。此外,它还增强了虚拟交换机的数据包处理能力,提升了网络吞吐量稳定性。已被微软废弃后续月度汇总取代
KB4072650  2019年08月 该补丁针对Hyper-V的内存管理模块进行了优化,修复了因内存页分配错误导致的虚拟机崩溃问题。同时,它解决了Windows 7宿主机与高版本Hyper-V集成服务(如Windows Server 2016)之间的兼容性冲突。已被微软废弃后续月度汇总取代
回复

使用道具 举报

184#
 楼主| 发表于 2025-4-25 07:50:06 | 只看该作者
更新一下
回复

使用道具 举报

185#
 楼主| 发表于 2025-4-25 19:24:25 | 只看该作者
本帖最后由 wu733 于 2025-5-11 01:30 编辑

(六)部分取代(微软官方在取代列表Package Details里面微软支持信息页面虽然列出了此补丁已被取代,但是不打还会继续推送)
1、KB2900986  2013年11月04日ActiveX KillBits累积更新。最早被KB5032252(2023年11月14日月度汇总)官载取代
2、KB2978120  2014年09月10日.NET3.5.1补丁。最早被KB4041083(2017年09月12日.NET汇总)官载取代,见KB4041083微软支持信息页面
3、KB3118401  2015年12月13日通用C运行库,修复KB2999226。最早被KB4015549(2017年04月11日月度汇总)官载取代
4、KB3124280  2016年01月08日WebDAV安全更新。最早被KB3185330(2016年10月11日月度汇总)官载取代
5、KB3185319  2016年09月02日IE11累积安全更新程序。最早被KB3185330(2016年10月11日月度汇总)官载取代,感谢隔壁论坛的gwaijyut提供了详细的底层信息

回复

使用道具 举报

186#
 楼主| 发表于 2025-5-22 23:15:21 | 只看该作者
本帖最后由 wu733 于 2025-6-4 05:18 编辑

再新增一种取代关系:
4、文件取代已知旧补丁A、新补丁B,分别解压两个补丁的.cab补丁包,然后复制旧补丁A的解压文件夹下的每个子文件夹名(去掉版本号),再到新补丁B的解压文件夹下去搜索,若全部都能搜到,即可判断新补丁B文件取代了旧补丁A。光文件取代是不可靠的,还要考虑原补丁对系统的注册表写入。故个人以为:Simplix的UpdatePack7R2若是仅仅依靠文件取代来判断补丁是否被取代,是不可靠的

旧补丁A新补丁B的取代列表Package Details以及微软支持信息页面均无明确记载互相之间的取代关系,而且旧补丁A不被WU推送,但是旧补丁A却能在MUC搜索得到(比如KB2882822),此时可以尝试使用文件取代的方法去判断旧补丁A是否被新补丁B文件取代(比如KB2882822与月度汇总KB4534310、KB5044356,使用这种方法可以得到:KB2882822未被月度汇总KB4534310取代,但是它却被月度汇总KB5044356取代)。
回复

使用道具 举报

187#
 楼主| 发表于 2025-5-26 00:11:44 | 只看该作者
由于篇幅有限,删掉了很多内容,现将以前的第三章 “简单说下打补丁的方法” 以PDF分享给大家

回复

使用道具 举报

188#
发表于 2025-7-1 09:37:05 | 只看该作者
本帖最后由 gwaijyut 于 2025-7-1 10:51 编辑
wu733 发表于 2025-5-22 23:15
再新增一种取代关系:
4、文件取代:已知旧补丁A、新补丁B,分别解压两个补丁的.cab补丁包,然后复制旧补 ...

不用那么麻烦
关于文件的更新,对比文件列表即可。只有无列表可对比的情况,才需要解包查阅清单文件。
例如KB2882822 和 KB5044356
微软提供了详细列表:
KB2882822:http-s://support.microsoft.com/KB/2882822 “文件信息”栏
KB5044356:http-s://go.microsoft.com/fwlink/?linkid=2289884

有关注册表的部分,需要查阅补丁说明。
例如,KB2882822的补丁说明中,明确告知“不必对注册表进行任何更改”。这些告知归属为“用户级”。任何用户级的注册表修改,在补丁说明页都会有清晰记载。
系统级的注册表变更没有明文说明,XP之后,补丁包的清单文件隐藏了系统级的注册表操作。Windows是闭源系统,“你能看到的,都是他愿意/故意给你看到的”。
当然,大部分是没有隐藏的,依然是明文操作
我这边随便找个清单文件示例:
KB4073578 中的 amd64_microsoft-windows-smss_31bf3856ad364e35_7.1.7601.24009_none_fc6a481ed3c9334f.manifest
179行:
  1. <xsd:element default="advapi32.dll" name="advapi32" type="xsd:string" wcm:handler="regkey('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs')" wcm:legacyType="REG_SZ" wcm:scope="allUsers" wcm:subScope="machineIndependent" />
复制代码


点评

非常具有底蕴的经验及论述,进一步丰富了我对补丁的认识  详情 回复 发表于 2025-7-1 20:00
回复

使用道具 举报

189#
发表于 2025-7-1 09:50:01 | 只看该作者
本帖最后由 gwaijyut 于 2025-7-1 09:52 编辑

有一种特殊的情况
部分二进制文件没有版本标签,表面上,只能从它的所属目录判断版本变更(目录名包含版本号,例如winsxs下的很多目录)。这种“表面上”的版本变迁是不准确的,常常会“新壶装旧酒”。实际判断起来就麻烦一点:比对文件指纹,如hash、CRC-32之类

点评

是的,我也是通过Hash值来判断一些非dll、exe文件是否发生版本变更的。  详情 回复 发表于 2025-7-1 20:02
回复

使用道具 举报

190#
 楼主| 发表于 2025-7-1 20:00:52 | 只看该作者
gwaijyut 发表于 2025-7-1 09:37
不用那么麻烦
关于文件的更新,对比文件列表即可。只有无列表可对比的情况,才需要解包查阅清单文件。
...

非常具有底蕴的经验及论述,进一步丰富了我对补丁的认识
回复

使用道具 举报

191#
 楼主| 发表于 2025-7-1 20:02:39 | 只看该作者
gwaijyut 发表于 2025-7-1 09:50
有一种特殊的情况
部分二进制文件没有版本标签,表面上,只能从它的所属目录判断版本变更(目录名包含版本 ...

英雄所见略同,我也是通过Hash值来判断一些非dll、exe文件是否发生版本变更的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-7-19 10:11

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表