我正在劫持__NR_readsys_read调用),每次我用自己的系统调用劫持原始系统调用时,都会导致bash崩溃(在所有打开的kde“konsoles”中)(也就是说,只要我劫持sys_open)。
我想知道这是我的代码中的一个bug(可能)还是因为其他原因而发生的。
我的问题是:如果崩溃是由于我的代码引起的,那么究竟是什么原因导致的,以及如何(如果可能)修复它?如果崩溃不是由我的代码引起的,是什么引起的?
我的代码在这里:https://github.com/alexandernst/procmon/tree/master/procmon_kmodule
syshijack.c是获取syscall表的位置,而hookfns.c是劫持syscalls的位置。
注:我之前已经问过这个问题,但现在变了,因为当我劫持系统调用时,崩溃就发生了。
*编辑*
我认为这个bug来自hook/unhook调用,所以我创建了一个问题Hijacking sys calls
不管怎样,我看不出是什么导致了撞车/结冰。

最佳答案

钩子引擎在我的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很难看。
祝你好运;)

关于linux - 劫持__NR_read和bash崩溃(咖啡馆用户?),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17575591/

10-13 04:55