如果尝试通过sys_call_table-hooking挂钩某些系统调用,例如sys_execve,则会失败,因为它们是由存根间接调用的。对于sys_execve,这是stub_execve(请参见LXR上的汇编代码)。
但是这些存根有什么用呢?为什么只有像execve(2)和fork(2)这样的特定系统调用需要存根,这与x86_64有什么关系?是否有一种方法可以在可加载内核模块中挂钩存根化的系统调用?
但是这些存根有什么用呢?为什么只有像execve(2)和fork(2)这样的特定系统调用需要存根,这与x86_64有什么关系?是否有一种方法可以在可加载内核模块中挂钩存根化的系统调用?