# REVERSE-1
Оценка: 10
## Описание
В данном задании необходимо выполнить обратную разработку и получить секретную строку.
[Файл №1](https://github.com/dered-cybersecurity/nto_2023/blob/main/1-offensive/REVERSE-1/387ef6a4-9511-4826-a75b-39826591a010_hello_ZmDKPvB.exe)
## Решение
Участнику предоставляется .exe файл под win64.
Если бинарный файл открыть в IDA, как исполняемый файл для Windows, и декомпилировать функцию main то видно, что мы ничего не обнаружим (рис. 1).

Рис. 1
Тогда единственное предположение, где может находиться флаг, это в dos-stub, поэтому нам необходимо открыть бинарный файл, как исполняемый, под dos (рис. 2).

Рис. 2
И запустить его под отладкой с помощью [плагина](https://www.old-games.ru/forum/threads/revers-v-dosbox-s-pomoschju-ida.57039/) для IDA (рис. 3).

Рис. 3
Таким образом мы увидим, что флаг печатается на экран, а каждый следующий символ флага появляется с бОльшей задержкой, чем предыдущий. Нам необходимо открыть дизассемблированный код dos stub и найти прерывание, где происходит вывод символа на экран (рис. 4).

Рис. 4
Далее мы замечаем, что перед выводом символа в консоль происходит ксор двух байтов, которые берутся по адресам, которые лежат в регистре [si], и [si + 0x27]. Также видим, что в si кладётся 0xD, здесь нужно не забыть про адрес загрузки исполняемого файла. В регистре cx лежит длина флага. Затем ксорим две последовательности байтов и получаем флаг (рис. 5).

Рис. 5