問題タブ [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 - do_page_fault をインターセプトする Kprobe メカニズム
__do_page_fault()
Linuxカーネルでメソッドをインターセプトしようとしています。を登録する通常の方法kprobes
、つまり次のように定義kp.addr
します。
動かない。これを行う適切な方法は何ですか?
編集: do_page_fault を傍受する他の方法も私にとってはうまくいきます。
linux-kernel - kretprobe ハンドラーで関数の戻り値を取得する
kretprobe をカーネル関数にフックして、kretprobe のリターン ハンドラでその戻り値を取得できるかどうかを知りたいです。
linux-kernel - 2 つのカーネル kprobes/kretprobes 間の通信
kretprobe を使用してカーネル関数の戻り値をキャプチャし、別のカーネル関数にフックされている別の kretprobe にそれを伝えることは可能ですか?
linux-kernel - register_kretprobe が -2 の戻り値で失敗する
fs/binfmt_elf.c ファイルに記載されている randomize_stack_top() 関数にフックする kretprobe を作成しました。insmod を使用して LKM をロードすると、register_kretprobe() 呼び出しが失敗し、戻り値 -2 が返されます。モジュールを開始するために、それをデバッグ/修正するにはどうすればよいですか?
linux-kernel - Kprobe ハンドラーからのファイルのオープン/書き込み
特定のシステム コールをトレースするために使用する Linux カーネル モジュールを作成しており、ハンドラ (具体的には)Kprobes
内からファイルに書き込む必要があります。これが一般的に推奨されないことはわかっていますが、出力を非常に特定の場所に書き込む必要があるため、標準のログ メカニズムは使用できません。KProbe
Kretprobe
モジュール内の関数から正常に開いたり書き込んだりできますinit()
が、プローブ ハンドラー内からそうしようとすると、カーネルがクラッシュします。
linux - jprobe do_execve がカーネル 4.1 で動作しない
do_execve に jprobe フックを設定して、実行されたすべてのプログラムをキャッチしたいと考えています。
私のコードは <= 3.2 Linux カーネル (debian) で動作しています。これは、Linux カーネル 3.2 での私の出力です。
4.1カーネルでは同じ結果(すべてが登録されています)ですが、「execve」はありません:
そして、これは私のコードです:
kallsyms で grep を実行すると、3.2 になります。
そして4.2で:
関数を次のように変更しようとしました (do_execve プロトタイプが変更されたため)。
それでも役に立ちませんでした。
do_fork や sys_open などの他の関数にはフックを設定できますが、do_execve には設定できません。なんで?誰にもアイデアがありますか?なぜ機能しなくなったのですか?
編集:
do_execveat もフックしています。
linux - kprobe でレジスタを使用するには?
私の理解では、プラットフォームでは、引数をレジスタに渡す必要があります ( X86_64 syscallsX86_64
を参照してください)。したがって、プローブを追加すると、次のようになるはずです。
しかし、上記のステートメントを実行すると、次のようにbash
不平を言います。
だから私の質問は次のとおりです。でレジスタを使用する方法はkprobe
?有効なレジスタはどれですか?