ptrace、Syscall User Dispatch:カーネルが提供している ptrace や Syscall User Dispatch のような機能は、ユーザ空間でシステムコールのフックを実装するために利用できます。ですが、これらを利用すると、元のユーザ空間プログラム内部でのシステムコール呼び出しのコストが大きくなり、結果として、性能が大きく劣化してしまいます。(要件1を満たせない) eBPF :eBPF のようなカーネル内の関数へフックを適用できる仕組みもありますが、eBPF は XDP のような場合を除くと、基本的にカーネルの挙動を変更するためには利用できないため、カーネル機能をユーザ空間でエミュレートする、といった用途には適していません。(要件5を満たせない) ライブラリ関数の置き換え:標準ライブラリ(libc 等)は、沢山のシステムコールのラッパーライブラリ関数を実装してお
![システムコールを速く漏れなくフックする方法 | IIJ Engineers Blog](https://cdn-ak-scissors.b.st-hatena.com/image/square/03bb183ea85530e85159e96db521e461e02842a5/height=288;version=1;width=512/https%3A%2F%2Feng-blog.iij.ad.jp%2Fwp-content%2Fuploads%2F2021%2F12%2Fa11b4bb3ba448d1fa402ac3dc62cc91f-5.png)