又遇到问题了,拦截sys_creat,为什么拦不到?创建文件的系统调用难道不是creat吗?
时间:2010-07-21
来源:互联网
asmlinkage long sys_creat(const char __user *pathname, int mode);
不管是打LOG还是从结果上看都没有反应。
以下是strace跟踪自动打出来的报告:
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
100.00 0.000046 2 26 mmap2
0.00 0.000000 0 5 read
0.00 0.000000 0 33 13 open
0.00 0.000000 0 23 close
0.00 0.000000 0 1 execve
0.00 0.000000 0 5 5 access
0.00 0.000000 0 3 brk
0.00 0.000000 0 1 dup2
0.00 0.000000 0 2 munmap
0.00 0.000000 0 1 uname
0.00 0.000000 0 6 mprotect
0.00 0.000000 0 2 rt_sigaction
0.00 0.000000 0 1 rt_sigprocmask
0.00 0.000000 0 1 getrlimit
0.00 0.000000 0 19 fstat64
0.00 0.000000 0 3 1 futex
0.00 0.000000 0 1 set_thread_area
0.00 0.000000 0 1 set_tid_address
0.00 0.000000 0 1 set_robust_list
0.00 0.000000 0 1 utimensat
------ ----------- ----------- --------- --------- ----------------
100.00 0.000046 136 19 total
完全没有creat的影子,几个主要的,mkdir,rmdir,rm,link,unlink,access,open,read,write什么的都拦到了,没想到最基本的创建文件居然卡住了。主要是鼠标右键创建和touch命令创建的拦不到,其他的比如用gedit或者emacs这种的我用access调用可以干掉。毙掉open可以干掉鼠标右键的创建但是不能毙掉touch的(把open 直接毙掉也不太行)
不管是打LOG还是从结果上看都没有反应。
以下是strace跟踪自动打出来的报告:
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
100.00 0.000046 2 26 mmap2
0.00 0.000000 0 5 read
0.00 0.000000 0 33 13 open
0.00 0.000000 0 23 close
0.00 0.000000 0 1 execve
0.00 0.000000 0 5 5 access
0.00 0.000000 0 3 brk
0.00 0.000000 0 1 dup2
0.00 0.000000 0 2 munmap
0.00 0.000000 0 1 uname
0.00 0.000000 0 6 mprotect
0.00 0.000000 0 2 rt_sigaction
0.00 0.000000 0 1 rt_sigprocmask
0.00 0.000000 0 1 getrlimit
0.00 0.000000 0 19 fstat64
0.00 0.000000 0 3 1 futex
0.00 0.000000 0 1 set_thread_area
0.00 0.000000 0 1 set_tid_address
0.00 0.000000 0 1 set_robust_list
0.00 0.000000 0 1 utimensat
------ ----------- ----------- --------- --------- ----------------
100.00 0.000046 136 19 total
完全没有creat的影子,几个主要的,mkdir,rmdir,rm,link,unlink,access,open,read,write什么的都拦到了,没想到最基本的创建文件居然卡住了。主要是鼠标右键创建和touch命令创建的拦不到,其他的比如用gedit或者emacs这种的我用access调用可以干掉。毙掉open可以干掉鼠标右键的创建但是不能毙掉touch的(把open 直接毙掉也不太行)
作者: zonelight 发布时间: 2010-07-21
也许直接算到open去了
SYSCALL_DEFINE2(creat, const char __user *, pathname, int, mode)
{
return sys_open(pathname, O_CREAT | O_WRONLY | O_TRUNC, mode);
}
SYSCALL_DEFINE2(creat, const char __user *, pathname, int, mode)
{
return sys_open(pathname, O_CREAT | O_WRONLY | O_TRUNC, mode);
}
作者: zyr-linux 发布时间: 2010-07-21
不行啊,我不做任何判断直接在OPEN里return -1,然后输入touch命令依然会有文件被创建出来。
作者: zonelight 发布时间: 2010-07-21
改了源代码?哪个open的?
作者: zyr-linux 发布时间: 2010-07-21
QUOTE:
改了源代码?哪个open的?
zyr-linux 发表于 2010-07-21 18:30
zyr-linux 发表于 2010-07-21 18:30
系统调用拦截到的sys_open
作者: zonelight 发布时间: 2010-07-21
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28