![]() |
https://forum.antichat.xyz/attachmen...0186176647.png Очевидно, из доступного нам остаётся только fd -скомпилированный fd.c- только лишь с его помощью мы и можем прочитать flag: https://forum.antichat.xyz/attachmen...0186211589.png Смотрим сурсы fd.c: https://forum.antichat.xyz/attachmen...0186234192.png Единственный вызов readобезопасили ограничением в 32 символа, поэтому переполнить ничего не получится. А вот уже из интересного: программе нужен дополнительный аргумент, какое-то число. Это число переводится в int через atoi(), от него отнимается 0x1234, а затем, оно используется как файловый дескриптор, из которого хотят прочитать "LETMEWIN\n". Всё, что от нас зависит - это как раз-таки тот самый дескриптор. Но что забавно: статья на Вики гласит, что по умолчанию, 2 в качестве дескриптора указывает на stderr, 1 - на stdout, а 0 - на stdin. Поэтому, если в качестве fd в read попадёт 0, то нам лишь останется ввести с клавиатуры то, что нас и просят. Единственное - нам нужно указать не просто 0, а 0 + 0x1234 = 4660, чтобы подать корректное число: https://forum.antichat.xyz/attachmen...0186271496.png Таск решён, удачного пывына! made 4@rev_with_da_boys |
| Время: 13:00 |