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. 通过PID获取进程名称
- 5. 如何从PID使用C获取进程名称
- 6. 从pid或句柄获取进程名称
- 7. 从子进程获取PID
- 8. 通过他的PID分析一个进程Linux内核编程
- 9. 获取java进程的名称而不是pid?
- 10. 如何在Linux内核编程中从'dev_t'获取'device struct'?
- 11. 在运行时从linux内核模块获取内核版本
- 12. Linux内核进程管理
- 13. 从Linux内核映像获取配置
- 14. SharpPcap获取进程名称
- 15. 从进程名称获取应用程序名称
- 16. 如何从进程名称获取应用程序名称?
- 17. 通过PID查找进程名称
- 18. 改革进程名称[0]在Linux中
- 19. 在Linux中更改进程名称
- 20. 获取Linux shell的名称
- 21. linux如何用pid获取进程参数?
- 22. 使用python启动进程并获取PID(Linux)
- 23. 如何在Jupyter笔记本中获取活动内核名称
- 24. Linux/Bash,使用ps -o按特定名称获取进程?
- 25. 如何通过在Mac OS X中提供进程名称来获取进程的PID?
- 26. 从进程ID获取进程名称(win32)
- 27. 如何从进程名称获取进程ID?
- 28. 从进程ID获取进程可执行文件名称
- 29. 如何捕获从init.d运行的Linux守护进程的pid
- 30. 如何从android中的进程获取应用程序名称?
我相信Malesh N.希望能够从内核代码中做到这一点。 – craig65535 2015-05-12 17:06:07
这个_can_可以通过使用'filp_open',@ craig65535 – Quaker 2017-09-14 13:22:02