我设法做objcopy来查看和提取.rodata段内容作为不可变完整性检查的引用,但是,我意识到内核驱动程序无法读取文件.从这个意义上说,我们如何编写驱动程序来确定它在运行时的自身完整性?
一些示例代码来制作一些插图会很好.
您可以使用加密签名的模块在运行时验证内核模块的完整性.
从这个Unix和Linux Stack Exchange回答开始.
以下是Jake Edge关于截至2011年主线内核中加密签名状态的更新.补丁最终在3.7中迁移到主线.
模块签名是最近内核中的配置选项.您可以在配置内核时使用menuconfig以下命令进行设置:"启用可加载模块支持" - >"模块签名验证".