- 论坛徽章:
- 0
|
大家帮我看看为什么不行?
基本的做法都和顶楼一样了,我现在要做到的功能,就比如截获OPEN系统调用,然后让某个文件打不开。
主要实现是在这里改:
asmlinkage long new_open(char *filename, int flags, int mode)
{
dbgprint("call open()\n");
return old_open (filename, flags, mode);
}
改成:
asmlinkage long new_open(char *filename, int flags, int mode)
{
判断filename是不是我指定的不允许open的文件,如果是,就return -1
return old_open (filename, flags, mode);
}
从结果上看,内核INSMOD进去以后,在图形界面下,该文件确实打不开了,但是在命令行下,比如cat filename,就能够读取。
其他的,比如指定某个文件夹,让这个文件夹不允许创建子文件夹。
主要做法是截获mkdir系统调用,也是差不多判断然后return -1。结果,从界面下点击确实创建不了文件夹了,但是在终端里,mkdir 某某某,结果还是能够创建。
谁告诉我为什么系统调用对终端没有效果??????? |
|