2008-10-26 45 views
3

我一直很迷惑軟件供應商如何運送他們的應用程序或遊戲,然後再提供一組不同的可執行文件來改變以前版本的行爲。這是如何完成的?原始應用程序和補丁程序必須遵守某種規則嗎?或者修補程序是否抓取到原始可執行文件並更改其裝配信息?這需要知道二進制文件的字節級別嗎?你需要什麼知識爲你的遊戲或應用程序創建補丁?

回答

2

我見過兩種主要的方法。很多程序都是由一些在運行時動態加載的較小部分組成的,通常這些文件只是用新版本替換。由於更新通常隻影響相對較少的這些文件,因此修補程序可能是整個應用程序的一小部分。另一種方法,我見過用於較大的單片應用程序,實際上是使用某種「二進制差異」來更改可執行代碼。這種方法的缺點之一是,從幾個版本的版本升級到新版本更加困難,而無需執行每個增量更新。

0

我懷疑大多數情況下,「補丁」只是一些替換文件。

但是,可以比較兩個二進制文件,確定它們的差異,並創建一組編輯命令,將其中一個更改爲另一個。例如,Unix實用程序「diff」可以爲文本文件執行此操作。

相關問題