システムコールを傍受することを私が知っている方法は次のとおりです。
- ptraceを使用していますが、これには高いオーバーヘッドがあるようです。私の知識によると、straceのようなツールも内部でptraceを使用します。
- カーネルモジュールを使用してシステムコールテーブルを変更しますが、私の知る限り、この方法は後のLinuxカーネルでは使用できなくなりました。
- LD_PRELOADを使用します。ただし、たとえば、システムコールにラッパーライブラリ関数を使用せずに直接システムコールを行う場合、これは機能しません。
したがって、上記のすべての方法に欠陥があることがわかります。だから私の質問は、カーネルを変更せずに、最小限のオーバーヘッドでシステムコールをインターセプトする方法は何ですか?