劫持__NR_read和bash崩溃(caf用户?)

时间:2013-07-10 16:05:14

标签: linux linux-kernel kernel-module

我正在劫持__NR_readsys_read调用),每当我用自己的系统调用劫持原始系统调用时,它会导致bash崩溃(在所有打开的KDE“konsoles”中)(是的,一旦我劫持sys_open)。

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

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

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

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

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

*编辑*

我认为这个bug来自挂钩/解钩,所以我创建了一个问题https://github.com/alexandernst/procmon/issues/7 无论如何,我看不出导致崩溃/冻结的原因。

1 个答案:

答案 0 :(得分:1)

Hook引擎在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对我来说似乎很难看。

祝你好运;)