2

我在劫持__NR_readsys_read调用),每次我用自己的系统调用劫持原始系统调用时,都会导致 bash 崩溃(在所有打开的 KDE“konsoles”中)(也就是说,只要我劫持sys_open)。

我想知道这是我的代码中的一个错误(可能)还是因为其他原因而发生的。

我的问题是:如果崩溃是由我的代码引起的,究竟是什么导致了它以及如何(如果可能)修复它?如果崩溃不是由我的代码引起的,是什么原因造成的?

我的代码在这里:https ://github.com/alexandernst/procmon/tree/master/procmon_kmodule

syshijack.c是我获取系统调用表hookfns.c的地方,也是我劫持系统调用的地方。

PS:我在这里劫持系统调用之前已经问过这个问题,但现在它改变了,因为一旦我劫持系统调用就会发生崩溃。

* 编辑 *

我认为这个 bug 来自 hook/unhook 调用,所以我创建了一个问题https://github.com/alexandernst/procmon/issues/7 无论如何,我看不出是什么导致了崩溃/冻结。

4

1 回答 1

1

钩子引擎在我x86_64没有IA32部分和没有你的代码的情况下工作hooked_sys_read正常r = real_sys_read()。挖掘您的代码我发现 IA32 挂钩可能存在问题:

#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不存储在宏中RF实现的值。HOOK一探究竟。

至于其他人……在path_from_fd我看来很难看。

祝你好运 ;)

于 2013-07-15T08:18:39.813 回答