多くの場合、ウイルス対策ソフトウェアは、(おそらく) ファイル システムへの呼び出しをインターセプトし、ターゲット ファイルをスキャンして呼び出しを完了することにより、「リアルタイム」保護を提供します。観察された動作から、これは、アプリケーションが読み取りのためにファイル ハンドルを開こうとするたびに発生すると思います (少なくとも、Sophos がインストールされた状態で 5 GB のファイルを開く = インスタント コーヒー ブレーク)。
これはどのように正確に実装されていますか?彼らは実際にファイル システムを抽象化するドライバーを使用しているのでしょうか、それとも単に API (どのメソッドか?) を呼び出して自分自身をチェーンに挿入しただけなのでしょうか?
このようにフックしているアプリを検出する標準的な方法はありますか?
私が選択したフレームワークとして .Net にタグを付けましたが、P/Invoke が必要になると思われるため、.Net の例が理想的ですが、ストレートな API リファレンスでもほぼ同じです。