一道linux下的父子进程调试题

首先分析main:

A:绑定了5999端口


B:fork了4000个子进程,并对齐进行阻塞



C:对于fork的4000个子进程的每一个,进行一次数据交互,先发送,再等待接收


D:持续和子进程0进行交互,发送3过去,当接收回来是4,flag++,接收回来是5,输出flag


然后就是另一个重要函数:0x400B45,son_udp


在main中每一个子进程fork成功时,都会调用该函数

A:与main交互,发送数据

B:在子进程中,开始对main中的数据值进行判断,并针对操作

当recvbuf为3时,说明是子进程0在操作

C:在之后的分析中,多次发现一个重要数据字段

其实在该函数最前面有过初始化的

剩下的逻辑,看这篇writeup,很详细了

https://www.jianshu.com/p/d906619a01b7