QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1654|回复: 1

截获execve系统调用,为什么出现“段错误”?

[复制链接]
发表于 2005-8-15 11:01:44 | 显示全部楼层 |阅读模式
在linux下,使用LKM截获execve系统调用,编写新的new_execve系统调用时,为什么出现“段错误”呢?就算new_execve函数体内什么都不做

,只返回原来的execve系统调用,也会出现“段错误”。而截获其它的系统调用如open, read等都没问题。不知是不是new_execve函数参数传

递有什么不对的地方,请各位多多帮忙。多谢多谢了。

   代码是这样的:
   ……
   ……
   int new_execve(const char *filename,const char *argv[],const char *envp[])
  {
     return (*old_execve)(filename,argv,envp);
   }
   int init_module()
   {
     SYS_CALL_TABLE_ADDR=getscTable();
     sys_call_table=(void **)SYS_CALL_TABLE_ADDR;
     old_execve=sys_call_table[__NR_execve];
     sys_call_table[__NR_execve]=new_execve;
     return 0;
   }
   int cleanup_module()
   {
     sys_call_table[__NR_execve]=old_execve;
     return 0;
    }
发表于 2005-8-19 10:29:35 | 显示全部楼层
open read 实际测试的功能如何
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 12:24 , Processed in 0.043301 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表