我正在处理一个修补 Windows 核心系统文件的程序。我不提倡这样做,但这就是我正在处理的事情。
我的问题是,当我们运行 Service Pack 时,它会破坏系统,还是只会用未打补丁的版本更新核心文件?有关如何安装 Service Pack 的指南将很有用。
修改主要针对系统 DLL,最好描述为 API 挂钩。
答案1
根据 Windows 版本,情况会略有不同。Windows 2000/2003 采用一种方式,而 2008+ 采用另一种方式。简而言之,当 Microsoft 发布补丁时(无论是补丁还是完整的服务包),它都会将其作为完整文件发布,而不是位级补丁。对于多文件补丁,它们确实有一些逻辑,可以根据系统上已有的内容(通过查询已安装的更新列表、检查文件日期或两者)来确定要更新哪些文件。所以是的,当需要对系统进行服务包时,如果 SP 触及您修改过的文件,它们将被 Microsoft 提供的文件覆盖。
此外,Windows 2008 对于修改 System32 中的文件非常敏感。您可能会发现它比 2003 困难得多。