微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

钩子function的Linux文件系统

在将数据写入硬盘之前,我想做一些事情。 我不知道任何解决scheme。 为了避免编辑内核源代码,有没有可以使用钩子函数作为可加载模块的位置?

更新:谢谢大家,LSM是API钩子。 但是我想find其他解决scheme,提供机制钩读/写数据块。 它可以避免更新文件后重新encryption所有文件

我认为我可以在文件系统(ext2,ext3,…)和缓冲区caching之间进行修改

如何在linux内核的memcpy函数添加一个钩子?

为什么Windows挂钩不会收到某些消息?

如何inheritanceWindows资源pipe理器的窗口

如何在Windows中挂钩本地帐户创build?

在x64系统中SSDT挂钩的替代scheme

钩住Windows中的所有新进程和命令行参数

是否有LdrLoadDll的内核模式callback?

如何挂钩特定的Windows消息没有子类化?

C#挂钩Windows进程来检查debugging进程

Linux内核:系统调用挂钩的例子

使用Linux安全模块 。 这些是可加载的内核模块,提供钩子来调解对内核中各种内部对象的访问。 您可以根据需要使用钩子到文件系统或inode。 开始的一个上帝的地方是阅读Greg Kroah Hartman关于LSM的论文 。 然后你可以访问这个链接 ,在那里显示如何使用LSM挂钩的例子。 这个例子只有当插入一个特定的USB时才能调解对系统的访问,并且是一个很好的参考点,就如何开始LSM挂钩。

那么这是一个有趣的问题。

不幸的是,即使是LSM在这里也没有帮助。 作为一个可能的解决方案,我会建议使用address_space_operations表和钩子writepage函数。 例如,看看ext3_writeback_aops :

1984 static const struct address_space_operations ext3_writeback_aops = { 1985 .readpage = ext3_readpage,1986 .readpages = ext3_readpages,1987 .writepage = ext3_writeback_writepage,1988 .write_begin = ext3_write_begin,1989 .write_end = ext3_writeback_write_end,1990 .bmap = ext3_bmap,1991 .invalidatepage = ext3_invalidatepage,1992 .releasepage = ext3_releasepage,1993 .direct_IO = ext3_direct_IO,1994 .migratepage = buffer_migrate_page,1995 .is_partially_uptodate = block_is_partially_uptodate,1996 .error_remove_page = generic_error_remove_page,1997 };

所以,在ext3文件系统的情况下,我们需要在内存中找到这个结构体,并将writepage指针替换为指向我们的our_writepage包装器。 还要注意,这个表是在只读内存中,你需要正确处理它。

编辑:

使用LSM,可以挂接inode打开操作,并替换inode->i_mapping->a_ops 。

试试FUSE ( https://github.com/libfuse/libfuse )。

这是用户空间中的文件系统。 您可以在用户空间中编写文件I / O处理程序,并将其作为应用程序的执行进行简单安装。

我不认为这是可能的。 当用户空间调用文件I / O时,文件系统实现或通用实现将从VFS调用。 你需要的是将这个函数指针改为指向你的模块,这个模块加密你的数据,然后调用文件系统函数

我在大学做了这样的事情,但是它是一个老内核,你必须设置一个特定的配置标志。 如果我记得这个标志已经消失了,因为你不想让内核模块乱用它们范围之外的函数指针。

无论如何,你可以在这里找到这个模块: https : //motzblog.wordpress.com/2007/10/27/linux-monitoring-module/

但要注意的是,这是一个大学项目,所以代码质量不是你从Linux内核代码中除外的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐