問題タブ [kprobe]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux-kernel - Linux-5.8.18 で kprobe カーネル関数に失敗しました
以下のコードで Linux-5.8.18 の kprobe を確認したところ、期待どおりに動作しないようでした。
do_madvise() を調査しようとしました <sys_madvise のシステム コール関数を調査しようとしましたが、/proc/kallsyms を読み取って調査する正しい関数名が見つからなかったので、do_madvise を調査するようになりました。>
register_kprobe() は成功しましたが、アプリケーションがユーザー空間で madvise() を呼び出したときに、提供した kprobe ハンドラーからのカーネル ログがありません。kprobe ハンドラが呼び出されていないか、do_madvise() が適切にプローブされていないようです。
ありがとう、
ebpf - どの kprobe フックに eBPF プログラムをアタッチできますか?
eBPF について学んでおり、eBPF プログラムを kprobe、uprobes、トレースポイントなどにアタッチできることを理解しています。/sys/kernel/debug/tracing/events/ の下に、eBPF プログラムをアタッチできるトレースポイントのリストがあることがわかります。しかし、どの kprobe 関数に侵入できるか、たとえば TCP 関連の関数を見つけるにはどうすればよいでしょうか? また、これらの関数シグネチャを見つけるにはどうすればよいですか?
ありがとう。
linux - mmap および brk で kprobes を使用してカーネル モジュールを使用して malloc 関数呼び出しを追跡する
mmap と brk でカーネル モジュールと kprobes を使用して、ユーザー空間で malloc 関数が呼び出された回数を確認しようとしています。カーネル内のシステム コールが sys_mmap および sys_brk であることがわかりましたが、カーネル内にモジュールを挿入しようとすると、次のように表示されます。
insmod: mallocmonitor.ko を挿入できません。操作は許可されていません
また、__kmalloc、kfree、または map_region 関数に kprobe を登録すると、問題なく動作します。
誰かがこれについて洞察を持っていますか?
system-calls - kprobe をアタッチする場合の「do_sys_open」と「__x86_sys_open」
私はopensnoop.pyを実行しようとしましたが、使用しています
(他のスクリプトで見たことがあります)代わりに
しかし、スクリプトはファイル名の出力を停止します。違いの原因は何ですか?
使用する場合attach_kprobe(event=fn)
はfn
システムコールですか、それともイベントですか?
ここで/proc/kallsyms
説明されているように、可能なシステムコールのリストを取得しますか?