ソフトウェア ベンダーがアプリケーションやゲームを出荷した後、以前のビルドの動作を変更する別の実行可能ファイルのセットを提供する方法について、私はいつも不思議に思っていました。これはどのように行われますか?元のアプリケーションとパッチは何らかの規則に従う必要がありますか? または、パッチは元の実行可能ファイルにクロールし、そのアセンブリ情報を変更しますか? それにはバイナリファイルのバイトレベルまでの知識が必要ですか?
2 に答える
2
私が見た主な方法は2つあります。多くのプログラムは、実行時に動的にロードされる多数の小さなパーツで構成されており、多くの場合、これらのファイルは単純に新しいバージョンに置き換えられます。多くの場合、更新は比較的少数のこれらのファイルにのみ影響を与えるため、パッチはアプリケーション全体の小さなサブセットである可能性があります。大規模なモノリシック アプリケーションで使用されているもう 1 つの方法は、一種の「バイナリ diff」を使用して実行可能コードを実際に変更することです。このアプローチの欠点の 1 つは、各増分更新を実行することなく、数リビジョン前のバージョンから新しいバージョンへのアップグレードをサポートすることがより困難になることです。
于 2008-10-26T01:35:41.817 に答える
0
ほとんどの場合、「パッチ」は置換ファイルにすぎないと思います。
ただし、2 つのバイナリ ファイルを比較して違いを判断し、一方を他方に変更する一連の編集コマンドを作成することは可能です。たとえば、Unix ユーティリティ「diff」は、テキスト ファイルに対してこれを行うことができます。
于 2008-10-26T01:30:49.877 に答える