Linu下/proc目录

Linux下/proc/self学习

>在测试的时候用到了/proc/self/environ这个目录,之前只了解到porc/<PID>/cmdline可以通过爆破<PID>的方式读取进程的绝对路径,在此对该目录进行一个详细的分析

注:在实战中不可直接读取,需通过目录穿越的方式进行读取

/proc目录说明

Linux内核提供了一种通过/proc文件系统,在运行的时候访问内核内部数据结构、改变内核设置的机制。

Proc文件系统是一个伪文件系统,它只存在于内存当中,且不占用空间。它以文件系统的方式为访问系统内核数据的操作提供接口。

可以使用 ls -al /proc 直接列出 /proc下的进程信息等

/proc常见的文件介绍

1.cmdline

  cmdline文件存储着启动当前进程的完整命令,可以通过查看cmdline目录获取指定进程的完整命令

cat /proc/<PID>cmdline

2.cwd

  ced文件是一个指向当前进程运行目录的符号链接,可以通过查看cwd文件获取指定环境的运行目录

ls -al /proc/<PID>cwd

3.exe

  exe是一个指向启动当前进程的可执行文件的符合链接。通过exe文件可以获得指定进程的可执行文件的完成路径

ls -al /proc/<PID>/exe

4.environ

  environ文件存储当前进程的环境变量列表。彼此间用空字符(NULL)隔开。可以通过擦好看environ目录来获取指定进程的环境变量信息

cat /proc/<PID>/environ

5.fd

  fd是一个目录,里面包含当前进程打开的每一个文件的描述符(file descriptor),这些文件描述符是指实际文件的一个符合连接。通过fd目录的文件获取进程,从而可以打开每个文件的路径及内容

ls -al /proc/<PID>/fd
ls -al /proc/<PID>/fd/*

/proc/self目录说明

/proc/self目录比较独特,不同的进程访问该目录时获取到的信息是不同的,内容等价于/proc/本进程pid/

进程可以通过访问/proc/self目录来获取自己的系统信息,在进行文件包含的时候不需要通过爆破PID来获取进程信息

所以该目录的方式同/proc目录,直接把PID信息替换为self可以直接查看当前进程信息

1.获取当前启动进程
cat /proc/self/cmdline

2.获取当前进程运行目录
ls -al /proc/self/cwd

3.获取当前进程可执行文件路径
ls -al /proc/self/exe

4.获取当前进程环境变量
ls -al /proc/self/environ

5.获取当前进程打开的文件内容
ls -al /proc/self/fd/*

 

 

 

参考文章::https://blog.csdn.net/unexpectedthing/article/details/121338877

 

 

posted @ 2022-08-30 14:31  a_pei!  阅读(202)  评论(0编辑  收藏  举报