我想创建一个从头开始锁定用户会话并监视属于该用户的进程所做的每个系统调用的内核模块。内核模块监控系统调用?
我知道大家都在想什么 - “使用strace” - 但我想用我收集的数据进行一些自己的日志记录和分析,strace有一些问题 - 应用程序可以使用“mmap”写入文件时不会出现文件内容作为“开放”系统调用的参数,或者没有任何写入权限的应用程序可能会创建复制敏感数据的内核。
我想能够处理这些特殊情况,并做一些我自己的日志记录。我想知道 - 我怎么能通过我的模块路由所有系统调用?有没有办法做到这一点,而不触及内核代码?
感谢
你应该使用'ptrace'系统调用(它确实被'strace'和'gdb'使用)。祝你好运,你需要一些。但是你可能不需要编写任何内核模块,只需要使用'ptrace'开发一个应用程序。 –