天天看點

20180CTF udp writeup

一道linux下的父子程序調試題

首先分析main:

A:綁定了5999端口

20180CTF udp writeup

B:fork了4000個子程序,并對齊進行阻塞

20180CTF udp writeup
20180CTF udp writeup

C:對于fork的4000個子程序的每一個,進行一次資料互動,先發送,再等待接收

20180CTF udp writeup
20180CTF udp writeup

D:持續和子程序0進行互動,發送3過去,當接收回來是4,flag++,接收回來是5,輸出flag

20180CTF udp writeup
20180CTF udp writeup

然後就是另一個重要函數:0x400B45,son_udp

20180CTF udp writeup

在main中每一個子程序fork成功時,都會調用該函數

A:與main互動,發送資料

20180CTF udp writeup

B:在子程序中,開始對main中的資料值進行判斷,并針對操作

當recvbuf為3時,說明是子程序0在操作

20180CTF udp writeup

C:在之後的分析中,多次發現一個重要資料字段

20180CTF udp writeup

其實在該函數最前面有過初始化的

20180CTF udp writeup

剩下的邏輯,看這篇writeup,很詳細了

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