首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

探索进程和子进程

getppid()获取进程的PID。...进程、子进程 这个进程PID到底是什么?...先来认识一下fork函数: fork函数会以调用该函数的进程作为进程创建一个子进程 创建成功时,会在进程中返回子进程的PID,在子进程中返回0;如果失败,在进程中返回-1,没有子进程创建。...一个进程可以创建多个子进程,为了区分这些子进程,fork函数在创建子进程后,会给进程返回子进程的pid。子进程只需调用getppid()函数即可找到进程。...子进程可以把进程的数据全被拷贝一份,但是大部分数据对于子进程来说可能都是没用的,这就造成了浪费,所以操作系统只是把进程中数据层面的代码临时拷贝一份给子进程,即子进程创建后,会共享进程的代码和数据,

7510

进程欺骗实践

文章前言 监控进程和子进程之间的关系是威胁检测团队检测恶意活动的常用技术,例如,如果powershell是子进程,而Microsoft Word是进程,这是一种折中的行为,各种EDR可以很容易地检测到这种异常活动...,这时红队可以考虑使用进程PID欺骗作为逃避方法,Windows API调用"CreateProcess"允许用户传入一个用于分配PID的参数,它可以用于指定当前进程进程。...项目介绍 https://github.com/Al1ex/SelectMyParent image.png 进程欺骗 Step 1:选择进程并确定其PID image.png Step 2:之后执行以下命令进行进程欺骗...SelectMyParent.exe notepad 928 image.png Step 3:使用process Explor查看进程树,可以看到成功欺骗 image.png 参考链接 https

1.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

进程退出时如何确保子进程退出?

前言 子进程退出的时候,进程能够收到子进程退出的信号,便于管理,但是有时候又需要在进程退出的时候,子进程也退出,该怎么办呢? 进程退出时,子进程会如何?...17433的进程id是17432,但是在10秒后,它的进程变成了1658。...另外还可以观察到,该进程也是其他系统进程进程。 如何确保进程退出的同时,子进程也退出? 既然如此,如何确保进程退出的同时,子进程也退出呢?...内容很多,主要意思为:设置一个信号,当进程退出的时候,子进程将会收到该信号。 那么根据这个,我们完全可以在进程退出时,也给子进程一个退出的信号。...总结 有些情况下,我们常常需要父子进程共存亡,子进程退出时,进程可以通过wait捕捉子进程的退出状态,但是进程退出时,子进程却难以得知。

11.5K21

8.7 进程检测反调试

首先这是一种比较奇特的反调试思路,通过检测自身进程来判定是否被调试,原理非常简单,我们的系统在运行程序的时候,绝大多数应用程序都是由Explorer.exe这个进程派生而来的子进程,也就是说如果没有被调试其得到的进程就是...Explorer.exe的进程PID,而如果被调试则该进程进程PID就会变成调试器的PID值,通过对进程的检测即可实现检测是否被调试的功能。...PROCESSENTRY32); Process32First(hProcessSnap, &pe32); do { // 先判断是不是我们自己进程的...PID if (ProcessId == pe32.th32ProcessID) { // 判断进程是否是 Explorer.exe...} return FALSE;}int main(int argc, char * argv[]){ if (IsDebug()) { printf("[-] 进程正在被调试

20530

8.7 进程检测反调试

首先这是一种比较奇特的反调试思路,通过检测自身进程来判定是否被调试,原理非常简单,我们的系统在运行程序的时候,绝大多数应用程序都是由Explorer.exe这个进程派生而来的子进程,也就是说如果没有被调试其得到的进程就是...Explorer.exe的进程PID,而如果被调试则该进程进程PID就会变成调试器的PID值,通过对进程的检测即可实现检测是否被调试的功能。...PROCESSENTRY32); Process32First(hProcessSnap, &pe32); do { // 先判断是不是我们自己进程的...PID if (ProcessId == pe32.th32ProcessID) { // 判断进程是否是 Explorer.exe...return FALSE; } int main(int argc, char * argv[]) { if (IsDebug()) { printf("[-] 进程正在被调试

17520

关于进程和子进程的关系(UAC 绕过思路)

假设是a进程创建了b进程,那么a进程就是b进程进程。...,假设我们利用一下该API,我们就能够将自己的进程的的进程设置为随意进程(要提权绕过UAC的鸽子注意了),假设把木马进程进程设置为 杀软 的ID或者csrss.exe ,notepad.exe 等可信进程...假设你调试的程序检測进程,直接用以上的办法启动它,当然进程就是他检測同意的进程喽, 这里启动时要注意的是设置CREATE_SUSPEND 就是创建挂起,然后在创建后使用ResumeThread恢复就能够顺利调试了...所以说进程进程不一定是进程的创建者,所以那一群依据进程来看进程是否可信的杀软就呵呵了。 可是这里说下 360 这个绕只是,原因是啥哪? 记得我开篇时说过道高一尺,魔高一丈吗?...用这样的办法推断进程才是真正的进程。 这里參考文献是杂志《黑客防线》。我也不想学习了知识装起来。所以学习始终是学无止境!

1.5K30

php 多进程编程进程的阻塞与非阻塞实例分析

本文实例讲述了php 多进程编程进程的阻塞与非阻塞。分享给大家供大家参考,具体如下: php中进程的阻塞,主要是进程等待子进程退出。 1.php代码如下: <?...pcntl_wait($status); } else { //这里是子进程空间 echo "进程ID: ", posix_getppid(), " 进程ID : ", posix_getpid...echo "进程ID: ", posix_getppid(), " 进程ID : ", posix_getpid(), " {$i} \r\n"; //我们让子进程等待3秒,再退出...status, WNOHANG); } else { //这里是子进程空间 echo "进程ID: ", posix_getppid(), " 进程ID : ", posix_getpid...代码3.php与2.php效果一样,pcntl_wait()函数的作用只是用来让进程等待子进程退出,默认情况下会阻塞主进程

87141

jps命令显示jvm进程

用来查看基于HotSpot JVM里面所有进程的具体状态, 包括进程ID,进程启动的路径等等。...与unix上的ps类似,用来显示本地有权限的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。使用jps时,不需要传递进程号做为参数。...Jps也可以显示远程系统上的JAVA进程,这需要远程服务上开启了jstat服务,以及RMI注及服务,不过常用都是对本对的JAVA进程的查看。...1、jps的作用 jps类似linux的ps命令,不同的是ps是用来显示进程,而jps只显示java进程,准确的说是当前用户已启动的部分java进程信息,信息包括进程号和简短的进程command。...2、某个java进程已经启动,用jps却显示不了该进程进程号 这个问题已经碰到过两次了,所以在这里总结下。

1.1K10

Linux中进程为何要苦苦地知道子进程的死亡原因?

白发人送黑发人 一个普遍的常识是,在Linux里面总是“白发人送黑发人”,子进程死亡,进程透过wait()等待子进程死亡,并清理子进程僵尸,当然进程也可以因此而获得子进程的死亡原因。.../a.out child process id: 3320 然后用信号2去杀死这个子进程3320: kill -2 3320 进程waitpid()返回,然后status里面获知原因,进程打印:...则进程探测到子进程死亡后,可打印它的退出状态: $ ....在wait_task_zombie()中,进程会透过子进程的僵尸分析获得子进程的exit_code组合,并进一步拼装status。 事出必有因 那么,进程为什么必须知道子进程的死亡呢?...进程为什么一定要苦苦地知道子进程的死亡原因? 前一个问题很好回答,如果我们用init进程启动了一个httpd的服务供客户访问我们的网站,然后httpd进程半夜挂了。

2K20

python0032_杀死进程_进程后台运行不输出_nohup_ps_显示进程

查看进程 回忆上次内容 上次先ctrl + z 挂起进程 然后运行 bg ​ 编辑 程序继续跑起来 而且不断输出到标准输出流 甚至连ctrl + c 都无法结束进程了 这可怎么办呢?...只能新开一个终端想办法 查询进程 搜索 debian进程查询 ​ 编辑 找到具体方法 进程 具体方法 ​ 编辑 动手试试 新开一个终端 运行ps -elf ​ 编辑 查看到两条进程信息...的pid 就是刚刚的281 #杀死进程 kill -9 PID -9 就是死亡信号 发过去之后那个进程就要自尽 没有任何进程愿意接受着这个信号 君要臣死,臣不得不死 权限对进程是多么重要啊 但是接到了就要执行...阿啊阿啊阿啊·~ ​ 编辑 真的把之前的那个zsh进程干掉了 窗口都消失了 但是看到的进程太多了 但我只想要和当前zsh有关的进程 zsh进程 #查询进程 #我们只要和zsh这个进程相关的...总结 进程查询 ps -elf 查看所有进程信息 ps -lf 查看本终端相关进程信息 杀死进程 kill -9 PID 给进程发送死亡信号 运行多个 python3 show_time.py

86700

如何在进程中读取子(外部)进程的标准输出和标准错误输出结果

依稀记得去年年中时,有个同事也问过我如何获取被调用进程的输出结果,当时还研究了一番,只是没有做整理。今天花点时间,将该方法整理成文。...它是我们启动子进程时,控制子进程启动方式的参数。...hStdOutput; HANDLE hStdError; } STARTUPINFO, *LPSTARTUPINFO;        粗看该结构体,我们可以知道:我们可以通过它控制子窗口出现的位置和大小还有显示方式...我们之后将hWrite交给我们创建的子进程,让它去将信息写入管道。而我们进程,则使用hRead去读取子进程写入管道的内容。...创建好管道后,我们将着手准备创建进程 // 组装命令 CString cstrNewDosCmd = L"Cmd.exe /C "; cstrNewDosCmd += cstrCmd

3.7K10

如何查找僵尸进程并Kill之,杀不掉的要查看进程并杀之

用ps和grep命令寻找僵尸进程 #ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]' 命令注解: -A 参数列出所有进程 -o 自定义输出字段 我们设定显示字段为...stat(状态), ppid(进程id), pid(进程id),cmd(命令)这四个参数 因为状态为 z或者Z的进程为僵尸进程,所以我们使用grep抓取stat状态为zZ进程 运行结果参考如下...Z 12334 12339 /path/cmd 这时,我们可以使用 kill -HUP 12339来杀掉这个僵尸进程 运行后,可以再次运行ps -A -ostat,ppid,pid,cmd | grep...-e '^[Zz]'来确认是否已经将僵尸进程杀死 如果kill 子进程的无效,可以尝试kill 其父进程来解决问题,例如上面例子进程pid是 12334,那么我们就运行 #kill -HUP 12334...来解决问题 一般可以用top命令发现动态进程表 #top ?

2.2K20

【操作系统】探究进程奥秘:显示进程列表的解密与实战

2 显示进程列表 2.1 研究目的 掌握进程结构及进程管理原理:理解进程结构是深入研究操作系统的基础。进程是程序的执行实体,了解其结构包括进程控制块、程序计数器、寄存器等要素。...通过研究显示进程列表,可以更深入地理解用户空间和内核空间之间的切换机制,以及用户程序和操作系统内核之间的交互方式。 加深对进程调度算法的理解:进程调度算法直接影响系统的性能和响应速度。...通过研究显示进程列表,可以深入了解不同的进程调度算法,如先来先服务(FCFS)、最短作业优先(SJF)、轮转法(Round Robin)等。...探讨进程间通信和同步机制:多个进程之间的通信和同步是操作系统设计中的关键问题。通过研究显示进程列表,可以更深入地了解进程间通信的方式,如共享内存,以及同步机制的实现,如信号量、互斥锁等。...这为我理解操作系统中进程管理的底层机制提供了实际案例和经验。 挑战和优化显示格式: 在进行dmesg显示的表头格式设置时,我面临了一些挑战,特别是在限定格式时遇到了显示不全的问题。

12010

Linux - lsof显示 tcp,udp 的端口和进程

文章目录 功能 语法 示例 lsof -i 显示 tcp,udp 的端口和进程等相关 查看服务器 80 端口的占用情况 使用 -p 查看指定进程打开的文件 更多命令 功能 lsof(list open...语法 语法格式:lsof -i:端口号 ---- 示例 lsof -i 显示 tcp,udp 的端口和进程等相关 [root@VM-24-3-centos ~]# lsof -i |more COMMAND...PID进程标识符 USER:进程所有者 FD:文件描述符,应用程序通过文件描述符识别该文件,如cwd、txt等 TYPE:文件类型,如DIR、REG等 DEVICE:指定磁盘的名称 SIZE:文件的大小...1234的进程所打开的文件 lsof -g gid:显示归属gid的进程情况 lsof +d /usr/local/:显示目录下被进程开启的文件 lsof +D /usr/local/:同上,但是会搜索目录下的目录...,时间较长 lsof -d 4:显示使用fd为4的进程 lsof -i -U:显示所有打开的端口和UNIX domain文件

2.8K20
领券