Pin*_*ade 9 linux kernel module
我想从头创建一个内核模块,它锁定用户会话并监视属于该用户的进程所做的每个系统调用.
我知道每个人都在想什么 - "使用strace" - 但是我想用我收集的数据进行一些自己的日志记录和分析,并且strace有一些问题 - 应用程序可以使用"mmap"写入文件如果没有文件内容作为"开放"系统调用的参数出现,或者没有任何写入权限的应用程序可能会创建coredump来复制敏感数据.
我希望能够处理这些特殊情况并进行一些自己的日志记录.我不知道 - 我怎么能通过我的模块路由所有系统调用?有没有办法在不触及内核代码的情况下做到这一点?
谢谢
我过去做过类似的事情,使用内核模块来修补系统调用表。每个修补的函数都执行如下操作:
patchFunction(/*params*/)
{
// pre checks
ret = origFunction(/*params*/);
// post checks
return ret;
}
Run Code Online (Sandbox Code Playgroud)
请注意,当您开始修改内核数据结构时,您的模块将变得依赖于版本。内核模块可能必须针对您要安装的特定内核版本进行编译。
另请注意,这是许多 Rootkit 所采用的技术,因此如果您安装了安全软件,它可能会尝试阻止您执行此类操作。
| 归档时间: |
|
| 查看次数: |
2159 次 |
| 最近记录: |