4
A
回答
13
struct task_struct包含成员称为comm,它包含executable name excluding path
。
获取current macro from this file会得到启动当前进程的程序的名称(如在insmod/modprobe中)。
使用上述信息,您可以使用获取名称信息。
0
不确定,但find_task_by_pid_ns可能是有用的。
0
你可以看看的特殊文件/proc/<pid>/
例如,/proc/<pid>/exe
是指向实际的二进制符号链接。
/proc/<pid>/cmdline
是命令行的空分隔列表,所以第一个单词是进程名称。
1
我的内核模块加载“modprobe -v my_module --allow-unsupported -o some-data”,并提取“some-data”参数。下面的代码给我的整个命令行,这里是我如何解析出感兴趣的参数:
struct mm_struct *mm;
unsigned char x, cmdlen;
mm = get_task_mm(current);
down_read(&mm->mmap_sem);
cmdlen = mm->arg_end - mm->arg_start;
for(x=0; x<cmdlen; x++) {
if(*(unsigned char *)(mm->arg_start + x) == '-' && *(unsigned char *)(mm->arg_start + (x+1)) == 'o') {
break;
}
}
up_read(&mm->mmap_sem);
if(x == cmdlen) {
printk(KERN_ERR "inject: ERROR - no target specified\n");
return -EINVAL;
}
strcpy(target,(unsigned char *)(mm->arg_start + (x+3)));
“目标”持有-o参数后的字符串。您可以稍微压缩一下 - 调用者(在本例中为modprobe)将成为mm-> arg_start中的第一个字符串,以满足您的需求。
相关问题
- 1. 从内核linux中获取pid的完整进程路径
- 2. 在编写Linux内核模块时获取用户进程pid
- 3. Linux中的pid进程名称
- 4. linux - 获取进程的pid
- 5. 通过PID获取进程名称
- 6. 从PID获取名称?
- 7. 如何从linux中的pid获取进程的路径或名称
- 8. 在linux的内核空间中获取进程ID的名字
- 9. 如何从C++中的PID获取进程名称?
- 10. 如何从PID使用C获取进程名称
- 11. 如何使用PID从服务器层获取进程名称
- 12. 从pid或句柄获取进程名称
- 13. 从子进程获取PID
- 14. 获取模块名称和进程名称在LINUX C++
- 15. 从进程名称获取进程ID
- 16. 通过他的PID分析一个进程Linux内核编程
- 17. 在Linux内核(模块编程)中如何从多线程进程获取threadids?
- 18. 从Linux内核空间获取进程列表
- 19. 获取java进程的名称而不是pid?
- 20. 如何获取Linux内核的构建器名称
- 21. 如何在Linux内核编程中从'dev_t'获取'device struct'?
- 22. 在zsh中获取进程的pid
- 23. 在运行时从linux内核模块获取内核版本
- 24. Linux内核进程管理
- 25. linux内核进程簿
- 26. 从Linux内核映像获取配置
- 27. SharpPcap获取进程名称
- 28. 从进程名称获取应用程序名称
- 29. 如何从进程名称获取应用程序名称?
- 30. 获取linux中的最后一个(最新)进程pid
我相信Malesh N.希望能够从内核代码中做到这一点。 – craig65535 2015-05-12 17:06:07
这个_can_可以通过使用'filp_open',@ craig65535 – Quaker 2017-09-14 13:22:02