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

有帮助吗?

解决方案

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

其他提示

我怀疑大部分时间都是“补丁”。只是一些替换文件。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top