我劫持__NR_read
( sys_read
调用),每当我用我自己的系统调用劫持原始系统调用时,它会导致崩溃(在所有打开的KDE“konsoles”中)(即,只要我劫持sys_open
)。
我想知道这是否是我的代码中的错误(可能),或者是因为别的原因而发生的。
我的问题是:如果崩溃是由于我的代码造成的,究竟是什么原因造成的,以及如何(如果可能)我可以修复它? 如果崩溃不是由我的代码造成的,是什么原因造成的?
我的代码在这里: https : //github.com/alexandernst/procmon/tree/master/procmon_kmodule
syshijack.c
是我得到syscall表的地方, hookfns.c
是我劫持系统调用的地方。
PS:在这之前我已经问过这个问题了,但是它现在已经改变了,因为一旦我劫持了系统调用,崩溃就发生了。
*编辑*
我认为这个错误是来自钩子/解除钩子调用,所以我创build了一个问题https://github.com/alexandernst/procmon/issues/7不pipe怎样,我看不到是什么导致崩溃/冻结。
钩引擎工作正常,我的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
不会存储在HOOK
宏中实现的RF
值。 一探究竟。
至于其他… path_from_fd
似乎是丑陋的我。
祝你好运 ;)