首页 > 解决方案 > 使用 Linux 可加载内核模块的系统调用拦截(劫持)

问题描述

我正在尝试使用 Linux Kernel v4.19.8 中的可加载内核模块劫持系统调用。

sys_call_table我可以从/boot/System.map-4.19.8找到虚拟地址。但是,当我尝试访问它时,dmesg 会给我以下消息:

BUG : unable to handle kernel paging request at [address of sys_call_table]

所以,这是我的问题。

  1. 甚至可以在 Linux Kernel v4.19.8 中使用可加载内核模块劫持系统调用吗?
  2. 如果有可能,我该怎么做?

先感谢您。

标签: linuxlinux-kernelkernel-module

解决方案


根据您感兴趣的系统调用,您可以使用一些挂钩。通常有一个回调,您可以使用您的模块进行修补。因此,您可以创建一个包装函数并做一些事情,然后在完成后调用“真实”回调。

查看这个库: https ://github.com/pmem/syscall_intercept


推荐阅读