ブックマーク / eng-blog.iij.ad.jp (1)

  • システムコールを速く漏れなくフックする方法 | IIJ Engineers Blog

    ptrace、Syscall User Dispatch:カーネルが提供している ptrace や Syscall User Dispatch のような機能は、ユーザ空間でシステムコールのフックを実装するために利用できます。ですが、これらを利用すると、元のユーザ空間プログラム内部でのシステムコール呼び出しのコストが大きくなり、結果として、性能が大きく劣化してしまいます。(要件1を満たせない) eBPF :eBPF のようなカーネル内の関数へフックを適用できる仕組みもありますが、eBPF は XDP のような場合を除くと、基的にカーネルの挙動を変更するためには利用できないため、カーネル機能をユーザ空間でエミュレートする、といった用途には適していません。(要件5を満たせない) ライブラリ関数の置き換え:標準ライブラリ(libc 等)は、沢山のシステムコールのラッパーライブラリ関数を実装してお

    システムコールを速く漏れなくフックする方法 | IIJ Engineers Blog
    uart8250
    uart8250 2021/12/23
    同じ内容が前にもここでブクマされてたと思ったけど、これnopが1バイト命令で奇数番地の命令が実行できないと実現できないので、ほぼx86/x64限定でArmその他多くのCPUには使えない手なんですよね。
  • 1