突然気になったパッチの仕組み

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
rozeo
記事: 86
登録日時: 12年前
住所: 広島 呉 (学生寮
連絡を取る:

突然気になったパッチの仕組み

#1

投稿記事 by rozeo » 11年前

こんにちは、rozeoです。

なぜか知りませんが…急にパッチの仕組みが気になりました。
あのクリックだけ(?)でプログラムのバージョンアップがすんだりするやつですね。

あのパッチのプログラムでパッチをあてる方のプログラムのソースの改変てきなことをするんだろうな…とは想像がつきましたが、その仕組み?構造?ともなると全く想像がつきません。

そこで
①パッチとは一体どういった仕組みによって改変を行うのか
②またそういったパッチはどのようにつくるのか

ということを質問させていただきます。
こういったパッチについてかかれたサイトのURLでも構いません。

どうかよろしくお願いします。

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前
住所: 東京
連絡を取る:

Re: 突然気になったパッチの仕組み

#2

投稿記事 by h2so5 » 11年前

そんなに複雑なことをしているわけではなくて、新しいプログラムを古いプログラムにに上書きするだけです。ソースコードレベルで改変するということはありません。
アップデータは必要なデータをサーバーからダウンロードして、それを現在インストールされているプログラムに上書きします。

プログラムサイズが大きい場合はダウンロードに時間がかかるので差分、つまり新しくなった部分だけをダウンロードしてプログラムを書き換えます。
バイナリの差分を取るツールとしてはbsdiff(http://www.daemonology.net/bsdiff/)などがあります。
インストールされているバージョンごとに当然差分も変わってくるのでそれを考慮する必要があります。

Chromiumでは特殊な方法を利用しており差分の圧縮率を上げるために逆アセンブラを利用しているようです。
http://www.chromium.org/developers/desi ... -courgette
Omaha(https://code.google.com/p/omaha/)というアップデート用のライブラリも公開されています。

rozeo
記事: 86
登録日時: 12年前
住所: 広島 呉 (学生寮
連絡を取る:

Re: 突然気になったパッチの仕組み

#3

投稿記事 by rozeo » 11年前

ご回答ありがとうございます。

なるほど…そういうことなんですか…

勉強になりました。少しいじってみたいとおもいます。
ありがとうございました

閉鎖

“C言語何でも質問掲示板” へ戻る