フック (プログラミング)
既存のプログラムに埋め込んで、利用者が動作を変更できるようにする変更点。 / ウィキペディア フリーな encyclopedia
フック(英: hook)は、プログラム中の特定の箇所に、利用者が独自の処理を追加できるようにする仕組みである。また、フックを利用して独自の処理を追加することを「フックする」という。
処理を追加できる箇所は、元のプログラムの開発者によって、あらかじめ決められている。初期化処理や入出力処理などの直前・直後が対象としてよく選ばれる。
主に元のプログラムに対する機能追加・拡張やカスタマイズの手段として使われるほか、デバッグのための情報収集にも有効である。このような有用な使い方の反面、既存のプログラムの動作を変更できることから、悪意を持ったプログラムによって利用される場合もある。例えばOSのキー入力処理のフックを使えばキーロガーを実装できることになる。
また、元のコードそのものは書き換えなくても動作を変更できることから、ROMで提供されるプログラムのバージョンアップや修正に使われることもある。ただしこの場合も、必要な個所に対応するフックがあらかじめ用意されていることが条件となる。すなわち、元のコードを設計する段階から、将来の機能拡張や修正を見越してフックを設計しておく必要がある。