3

我一直很困惑软件供应商如何发布他们的应用程序或游戏,然后提供一组不同的可执行文件来改变之前构建的行为。这是怎么做到的?原始应用程序和补丁是否必须遵守某种规则?还是补丁会爬入原始可执行文件并更改其程序集信息?这需要二进制文件到字节级别的知识吗?

4

2 回答 2

2

我见过的主要方法有两种。许多程序由许多在运行时动态加载的较小部分组成,通常这些文件只是简单地替换为较新的版本。由于更新通常只影响相对少量的这些文件,因此补丁可能是整个应用程序的一小部分。另一种方法,我见过用于较大的单体应用程序,是使用一种“二进制差异”来实际更改可执行代码。这种方法的一个缺点是,在无需执行每次增量更新的情况下,更难以支持从几个修订版之前的版本升级到新版本。

于 2008-10-26T01:35:41.817 回答
0

我怀疑大多数时候,“补丁”只是一些替换文件。

但是,可以比较两个二进制文件,确定它们的差异,并创建一组编辑命令,将一个更改为另一个。例如,Unix 实用程序“diff”可以对文本文件执行此操作。

于 2008-10-26T01:30:49.877 回答