## Задача *Это (в каком-то смысле) интерактивная задача* Увидев новость о CVE в некоторых бюджетных IP-камерах, вы задумались: не станет ли и ваше десятилетнее ГеоЗрение частью DDoS-ботнета? Вы загружаете последнее доступное обновление прошивки, выпущенное в 2014 году, извлекаете из него бинарник Web-конфигуратора и начинаете изучать. После реверс-инжиниринга кода аутентификации вы видите следующее: ``` <код vuln.c> ``` Возможно ли, повторяя аутентификации и анализируя ошибки, узнать значение `g_current_session_id`? ## Формат посылки Файл с кодом на C, определяющим единственную функцию `uint16_t pwn()`. Для простоты, вместо stdio-упражнений, вы будете напрямую вызывать `authenticate()` с подготовленным телом запроса. Вам будет доступен хедер "vuln.h": ``` <код vuln.h> ``` Функция `uint16_t pwn()`: 1. Выделяет буфер для ответа размером 256 байт 2. Подготавливает запрос (*ожидаемый* формат: "admin admin") 3. Вызывает `authenticate(req, resp)` 4. Повторяет шаги 2-3 до уверенности, что получен корректный session id 5. Возвращает session id ## Ограничения TBD ## Пример ``` <код solution-example.c> ```