Ram*_*miz 0 c linux linux-kernel
我试图找到像.pdf,.doc,.docx等文件的文件类型,但编程不使用shell命令.实际上我必须创建一个阻止访问特定扩展名文件的应用程序.我在LKM已经上瘾sys_call_table的,现在我想,当触发打开/读取系统调用,然后我的LKM检查文件类型.
我知道我们有一个当前指针可以访问当前的进程结构,我们可以使用它来查找存储在dentry结构中的文件名,在Linux中,文件类型由存储在文件起始字节中的幻数标识.但我不知道如何查找文件类型及其存储位置?
Linux不会"存储"其文件的文件类型(与Mac OS的资源分支不同,我认为这是最知名的平台).文件只是命名的字节流,它们没有操作系统隐含的结构.
要么你只是告诉程序使用哪个文件(然后它就是你说的话),或者程序使用更高级别的功能来解决它.
有些程序可以重新发明这个特定的轮子(我负责其中一个),但你也可以使用例如file(1).当然,这需要您的程序解析并"理解"您将获得的文本输出,这在某种意义上只会解决问题.
不过,我不认为调入file从内核空间是非常明智的,所以它可能是最好的测试,你需要什么类型的集合,以保持它的小重新创建.
换句话说,我的意思是你应该简单地重新实现所需的测试.这一般来说非常复杂,所以如果你真的需要尽可能多地使用它,那可能不是一个好主意.:/
| 归档时间: |
|
| 查看次数: |
2138 次 |
| 最近记录: |