問題タブ [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.

0 投票する
1 に答える
689 参照

linux - do_page_fault をインターセプトする Kprobe メカニズム

__do_page_fault()Linuxカーネルでメソッドをインターセプトしようとしています。を登録する通常の方法kprobes、つまり次のように定義kp.addrします。

動かない。これを行う適切な方法は何ですか?

編集: do_page_fault を傍受する他の方法も私にとってはうまくいきます。

0 投票する
1 に答える
1809 参照

linux-kernel - kretprobe ハンドラーで関数の戻り値を取得する

kretprobe をカーネル関数にフックして、kretprobe のリターン ハンドラでその戻り値を取得できるかどうかを知りたいです。

0 投票する
1 に答える
491 参照

linux-kernel - 2 つのカーネル kprobes/kretprobes 間の通信

kretprobe を使用してカーネル関数の戻り値をキャプチャし、別のカーネル関数にフックされている別の kretprobe にそれを伝えることは可能ですか?

0 投票する
1 に答える
831 参照

linux-kernel - register_kretprobe が -2 の戻り値で失敗する

fs/binfmt_elf.c ファイルに記載されている randomize_stack_top() 関数にフックする kretprobe を作成しました。insmod を使用して LKM をロードすると、register_kretprobe() 呼び出しが失敗し、戻り値 -2 が返されます。モジュールを開始するために、それをデバッグ/修正するにはどうすればよいですか?

0 投票する
1 に答える
405 参照

linux-kernel - Kprobe ハンドラーからのファイルのオープン/書き込み

特定のシステム コールをトレースするために使用する Linux カーネル モジュールを作成しており、ハンドラ (具体的には)Kprobes内からファイルに書き込む必要があります。これが一般的に推奨されないことはわかっていますが、出力を非常に特定の場所に書き込む必要があるため、標準のログ メカニズムは使用できません。KProbeKretprobe

モジュール内の関数から正常に開いたり書き込んだりできますinit()が、プローブ ハンドラー内からそうしようとすると、カーネルがクラッシュします。

0 投票する
1 に答える
604 参照

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 もフックしています。

0 投票する
1 に答える
614 参照

linux - kprobe でレジスタを使用するには?

kprobe ドキュメントから:

私の理解では、プラットフォームでは、引数をレジスタに渡す必要があります ( X86_64 syscallsX86_64を参照してください)。したがって、プローブを追加すると、次のようになるはずです。

しかし、上記のステートメントを実行すると、次のようにbash不平を言います。

だから私の質問は次のとおりです。でレジスタを使用する方法はkprobe?有効なレジスタはどれですか?