首页 > 解决方案 > 在 execve sys_call 中处理用户 argv 的问题

问题描述

我挂钩了 execve 系统调用,并构建了一种从文件名参数执行打印文件名的监视器,到目前为止,监视器工作正常,但问题是当有人运行这样的文件时

./exefilee 

它只向 execve 文件名参数发送文件名而不是所有路径。无论如何,我尝试打印 argv 参数,但我提交了从用户空间处理变量,这是我的代码:

            char buff[256];
            static asmlinkage long our_execl(const char __user * filename,
            const char __user * const __user * argv,
            const char __user * const __user * envp) {


            strncpy_from_user(buf, argv[0], 255);
             buf[255] = '\0';
             printk(buff);

              }

标签: clinuxkernel

解决方案


推荐阅读