2

私はハイジャック__NR_read(sys_read呼び出し) を行っており、独自のシステム コールで元のシステム コールをハイジャックするたびに、bash (すべてのオープン KDE "コンソール") でクラッシュが発生します (つまり、ハイジャックするとすぐにsys_open)。

これは私のコードのバグなのか (おそらく)、それとも何か他のことが原因なのか疑問に思っています。

私の質問は次のとおりです。私のコードが原因でクラッシュが発生した場合、正確には何が原因で、(可能であれば)どのように修正できますか? クラッシュの原因が自分のコードではない場合、原因は何ですか?

私のコードはここにあります: https://github.com/alexandernst/procmon/tree/master/procmon_kmodule

syshijack.csyscall テーブルを取得する場所であり、syscallhookfns.cをハイジャックする場所です。

PS: ここでシステム コールをハイジャックする前にこの質問をしましたが、システム コールをハイジャックするとすぐにクラッシュが発生するため、変更されました。

* 編集 *

バグはフック/アンフック呼び出しから来ていると思うので、問題を作成しましたhttps://github.com/alexandernst/procmon/issues/7 とにかく、何がクラッシュ/フリーズを引き起こしているのかわかりません。

4

1 に答える 1

1

フック エンジンは my x86_64without part で正常に動作し、 exceptIA32にコードはありません。コードを掘り下げると、次のように IA32 フックに問題がある可能性があることがわかりました。hooked_sys_readr = real_sys_read()

#define HOOK(F, RF, FF) RF = sys_call_table[F]; sys_call_table[F] = FF;
#ifdef CONFIG_IA32_EMULATION
    #define HOOK_IA32(F, RF, FF) ia32_sys_call_table[F] = FF;
#endif

..そのため、マクロで実装されHOOK_IA32た値を保存しません。見てみな。RFHOOK

他の人については...path_from_fd私には醜いようです。

幸運を ;)

于 2013-07-15T08:18:39.813 に答える