Дан ELF файл. Сразу открываю его в IDA. Смотрю дизассемблированый код: ![](https://hackmd.io/_uploads/r183vLYj3.png) Замечаю следующие: 1. Проверка происходит по переменной v8, доступа к которой напрямую нет; 2. Значение переменной: 110 -> 'n'; 3. Переменная v3 объявленна раньше v8, следовательно, с помощью переполнения буфера можно переписать значение переменной v8; 4. Если значение v8 = 134 = 'y' будет выведен флаг; Приступим. 1. Вводим случаные символы (AAA): ![](https://hackmd.io/_uploads/BkS6qItin.png) В IDA смотрю HEX дамп. ![](https://hackmd.io/_uploads/HybSoLFon.png) Введенные символы сохраняются по адрессу "00007FFEE5E8EBC0", значение v8 находится по адрессу "00007FFEE5E8EBDF". Следовательно значение v8 хранится через "00007FFEE5E8EBDF - 00007FFEE5E8EBC0 = 1F"; 1F -> 31 символ. Следовательно нужно ввести 31 случайный символ + 'y' Результат: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy Проверим: ![](https://hackmd.io/_uploads/Hy-HpIti2.png) Отлично. Идём получать флаг. ![](https://hackmd.io/_uploads/SkKKpUKin.png) Победа. Флаг - **CODEBY{0veRf0W_ch@r_SYMb0l}**