đ´Racecar
Race condition
Last updated
Race condition
Last updated
Trong ÄÃŗ:
áģ dÃ˛ng 14 và 47, memset sáēŊ thiáēŋt láēp giÃĄ tráģ cho con tráģ áģ vÚng nháģ stack
Táģng quan: ChÆ°ÆĄng trÃŦnh yÃĒu cáē§u nháēp dáģ¯ liáģu và o(
*racers[]
) và lÆ°u nÃŗ láēĄi. Sau ÄÃŗ táēĄo 1thread con
và gáģi và o hà m randomrace()
sau ÄÃŗ in ra mà n hÃŦnh:Our winner: ...
áģ pháē§n nà y, ta ÄÆ°áģŖc nháēp táģi Äa 256 bytes.
Sau ÄÃŗ set break point táēĄi pthread_join
Äáģ hà m race ÄÆ°áģŖc tháģąc thi.
Sau khi pthread_join
thÃŦ stack bÃĸy giáģ sáēŊ cháģŠa pháē§n payload mà mÃŦnh váģĢa nháēp và o.
BÃĸy giáģ Äáģ overflow ÄÆ°áģŖc pháē§n RIP thÃŦ pháēŖi ghi Äè Äáēŋn __libc_start_call_main
(nhÆ° áēŖnh trÃĒn).