ChinaUnix.net
相关文章推荐:

execve 系统调用

Linux提供了execl、execlp、execle、execv、execvp和execve等六个用以执行一个可执行文件的函数(统称为exec函数,其间的差异在于对命令行参数和环境变量参数的传递方式不同)。这些函数的第一个参数都是要被执行的程式的路径,第二个参数则向程式传递了命令行参数,第三个参数则向程式传递环境变量。以上函数的本质都是调用在arch/i386/kernel/process.c文件中实现的系统调用sys_execve来执行一个可执行文件,该函数代码如下: as...

by torresliang - Linux文档专区 - 2010-01-04 09:18:46 阅读(1190) 回复(0)

相关讨论

Linux提供了execl、execlp、execle、execv、execvp和execve等六个用以执行一个可执行文件的函数(统称为exec函数,其间的差异在于对命令行参数和环境变量参数的传递方式不同)。这些函数的第一个参数都是要被执行的程序的路径,第二个参数则向程序传递了命令行参数,第三个参数则向程序传递环境变量。以上函数的本质都是调用在arch/i386/kernel/process.c文件中实现的系统调用sys_execve来执行一个可执行文件,该函数代码如下: ...

by 朱熹之 - Linux文档专区 - 2007-02-15 12:29:21 阅读(797) 回复(0)

内核处理execve系统调用的内核函数是sys_execve, asmlinkage int sys_execve(struct pt_regs regs) { int error; char * filename; filename = getname((char __user *) regs.ebx); error = PTR_ERR(filename); if (IS_ERR(filename)) goto out; error = do_execve(filename, (char __user * __user *) regs.ecx, (char __user * __user *) regs.edx, ®s); if (error == 0) { task_lock(current);...

by wuhuaguoshu - 内核/嵌入技术 - 2006-07-22 20:24:54 阅读(1977) 回复(16)

内核处理execve系统调用的内核函数是sys_execve, asmlinkage int sys_execve(struct pt_regs regs) { int error; char * filename; filename = getname((char __user *) regs.ebx); error = PTR_ERR(filename); if (IS_ERR(filename)) goto out; error = do_execve(filename, (char __user * __user *) regs.ecx, (char __user * __user *) regs.edx, ®s); if (error == 0) { task_lock(current);...

by wuhuaguoshu - 内核源码 - 2006-07-22 20:24:54 阅读(2979) 回复(16)

转载,原文出处: http://blog.chinaunix.net/u/548/showart.php?id=386423 关于截获execve系统调用,很久以来存在一个问题:新函数不能直接调旧函数, 否则导致stack不平衡,出错。 曾经有高人用一串的汇编代码去平衡堆栈, 但对于偶们这些汇编菜鸟来说, 连阅读都很困难。 而且, 好像gcc4.x下不支持 它使用的一种寻址方式了。 这次使用kprobes来直接找do_execve,直接照搬sys_execve的实现代码。 至于LICENSE的问题,谁用谁负...

by marksman201 - Linux文档专区 - 2010-02-24 20:04:34 阅读(1690) 回复(0)

关于截获execve系统调用,很久以来存在一个问题:新函数不能直接调旧函数, 否则导致stack不平衡,出错。 曾经有高人用一串的汇编代码去平衡堆栈, 但对于偶们这些汇编菜鸟来说, 连阅读都很困难。 而且, 好像gcc4.x下不支持 它使用的一种寻址方式了。 这次使用kprobes来直接找do_execve,直接照搬sys_execve的实现代码。 至于LICENSE的问题,谁用谁负责,我只是从技术角度上说可以这样做。(我的代码是GPL的) 只截获了open和exe...

by albcamus - Linux文档专区 - 2007-09-20 22:51:47 阅读(489) 回复(0)

关于截获execve系统调用,很久以来存在一个问题:新函数不能直接调旧函数, 否则导致stack不平衡,出错。 曾经有高人用一串的汇编代码去平衡堆栈, 但对于偶们这些汇编菜鸟来说, 连阅读都很困难。 而且, 好像gcc4.x下不支持 它使用的一种寻址方式了。 这次使用kprobes来直接找do_execve,直接照搬sys_execve的实现代码。 至于LICENSE的问题,谁用谁负责,我只是从技术角度上说可以这样做。(我的代码是GPL的) 只截获了open和...

by albcamus - 内核源码 - 2015-09-05 14:59:35 阅读(22427) 回复(27)

execve 调用shell 的 less 命令以后 不能用上下键翻页,而其他的exec函数都好用! 但是用execve调用shell 的 more 命令正常使用。 哪位大虾知道这是怎么回事啊!!

by keanuliu - 程序开发 - 2006-09-29 12:47:46 阅读(877) 回复(2)

execve 调用shell 的 less 命令以后 不能用上下键翻页,而其他的exec函数都好用! 但是用execve调用shell 的 more 命令正常使用。 哪位大虾知道这是怎么回事啊!!

by keanuliu - Linux环境编程 - 2006-09-29 12:47:46 阅读(1315) 回复(2)

通过封装系统调用export出符号表的方法进行系统调用拦截,拦截read,write以及kill这些系统调用都没有问题,但是拦截execve和fork后,系统就hang,进而系统重启。 不知道论坛里各位大虾有遇到这种情况的没,求指点。谢谢。

by rabbitte - AIX - 2014-03-27 17:47:32 阅读(2972) 回复(2)

在linux下,使用LKM截获execve系统调用,编写新的new_execve系统调用时,为什么出现“段错误”呢?就算new_execve函数体内什么都不做,只返回原 来的execve系统调用,也会出现“段错误”。而截获其它的系统调用如open, read等都没问题。不知是不是new_execve函数参数传递有什么不 对的地方,请各位多多帮忙。多谢多谢了。 代码是这样的: …… …… int new_execve(const char *filename,const char *argv[],const ...

by vfvf - 内核/嵌入技术 - 2006-05-18 16:49:04 阅读(2517) 回复(9)