c - 在 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);
}
解决方案
推荐阅读
- python-3.x - 如何将具有不同扩展名的两个不同目录的合并文件复制到一个目录中并删除重复的文件
- azure - 使用 SAML 的 Azure AD 用户角色声明
- c# - Dapr 资源绑定来自外部服务的 HTTP GET
- python-3.x - Python - 创建一个类作为二维 numpy 数组的索引
- css - 为如何从 sass 编译 css 创建规则 - 一种编写更好代码的方法
- sql - Oracle 如何下载/显示物理数据模型
- javascript - 玩家碰撞在 Phaser3 游戏中不起作用
- powershell - Powershell 管理员权限在 Windows 窗体中不起作用
- apache-flink - flink rest 端口传输弱加密算法
- c# - DevExpress Wizard控件中如何使用页面数据模板?