Linux下查看进程信息的途径以及修改进程名的方法
导读:本文共3768字符,通常情况下阅读需要13分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 前言Linux下查看进程信息的途径通常有以下几种方式途径说明top、ps等命令通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等。常用命令如下ps -A 查看所有进程名称;ps -ef 接显示进程绝对路径及参数;ps -aux显示所有用户进程状态,最后一列显示进程绝对路径及参数;top命令 参考http://c.bianc... ...
目录
(为您整理了一些要点),点击可以直达。Linux下查看进程信息的途径通常有以下几种方式
初级隐藏篇介绍以下两种方式修改隐藏进程名
优缺点:
优点是ps -ef 、ps -aux看不到进程名及参数了
缺点是这种方法仅仅是修改了/prco/pid/cmdline 的值,使用ps -A 或者top 命令还是可以看到进程名称
我们知道在一个程序中,参数的个数保存在int型argc中,参数保存在数组argv[]中,数组的第一个元素argv[0]保存的就是进程名,第二个元素argv[1]保存的是第一个参数,依次类推。通过修改进程argv[0]修改进程名,这一方法实现比较简单,我们只要在进程启动mian函数中修改掉argv数组所指向的内存空间的内容即可,这里需要注意的是 linux中main()还有一个隐藏参数就是环境变量信息,存放了运行时所需要的环境变量,
如果新名称比argv[0]的长度小,我们可以直接修改,并把多余的部分请0
如果新名称比argv[0]长我们需要两步
1) 申请新内存保存环境变量信息和argv[1…argc-1]参数信息
2) 修改argv[0],将新名称往后到environ的最后一项清0
以下示例代码仅仅是将argv[]清空
优缺点:
优点是修改了/prco/pid/stat及/prco/pid/status中的进程名称,使用ps -A 或者top 命令看不到原来的进程名称
缺点是未修改/prco/pid/cmdline 的值,使用ps -ef 、ps -aux可以看到进程名称及参数
使用prctl修改进程名实现也比较简单,
看下面代码
但是prctl修改的进程名,只能是16个字节(包括’\0’),当新名称长度大于16时就会截断,上面的新名字截断后是1234567890abcde
我们可以发现,使用以上两种方法相结合,可以使得 ps -ef 、ps -aux 、ps -A 、top、/proc/pid/status、/proc/pid/cmdline 均看不到真实的进程信息;
看下面代码:
但是这样还是有一定的局限性,比如说,ps、top等命令还是能看见真实的pid信息,proc文件夹下还是会生成相应的pid文件夹;最理想的情况应该是让我们的进程信息彻底消失。
Linux下查看进程信息的途径以及修改进程名的方法的详细内容,希望对您有所帮助,信息来源于网络。