Условие

Умный робот-пылесос фирмы «АБ-Мур» несколько лет прекрасно справлялся со своей основной задачей, как в один прекрасный день перестал реагировать на команды и вместо этого тихо мигал красным огоньком. Коля Четвёркин поискал в интернете и узнал, что недавно на центральном сервере обновили ключи шифрования, и если пылесос не успел их синхронизировать, нужно сделать это вручную. А именно – зайти в консоль прошивки и запустить утилиту синхронизации. Её название отличается от пылесоса к пылесосу, но известно, файл утилиты имеет расширение «.FLG» и лежит в начальном каталоге.

Да, в пылесосе есть настоящая операционная система, и у неё есть много команд. Нас будут интересовать шесть:

 - `DIR` – выводит построчно названия файлов в текущем каталоге.

 - `EXEC a` – запускает файл `a` (если он существует и исполняемый).

   - если файл не существует, система ответит `ERROR NOT EXIST`.

   - если файл не исполняемый, система ответит `ERROR NOT EXECUTABLE`.

 - `COPY a b` – копирует файл `a` в файл `b` (если `a` существует, а `b` – не существует).

     - если `b` существует, система ответит `ERROR EXIST`.

 - `DEL a` – удаляет файл `a` (если он существует и не исполняемый).

    - если файл нельзя удалить, система ответит `ERROR CANT DELETE`

 - `TRUE` – ничего не делает.

 - `EXIT` – завершает сеанс.

Если команда не существует, система отвечает `ERROR SYNTAX`. Если количество параметров не совпадает с необходимым для команды, система отвечает "ERROR PARAMETER". Если указанный файл не существует, система отвечает `ERROR NOT FOUND`, если не указано иначе. Если команда выполнена успешно, то последней отдельной строкой (после вывода самой команды) возвращается `OK`.

Все эти команды работают благодаря интерпретатору команд, который тоже лежит в начальном каталоге. И его название тоже отличается между моделями пылесосов. В интернете пишут, что варианта три – `COMMAND.COM`, `EXECUTOR.EXE` или `INTERPRT.INT`.

Но подключившись и выполнив первую команду, вместо файлов Коля увидел странные названия. Оказалось, что буквы и цифры в выводе перемешаны. То ли генератор вывода сломан, из-за чего вместо одной буквы выводится другая, то ли производитель специально подстроил шифрование. В пользу последней версии играет вычитанное в интернете предупреждение: если попытаться обратиться к интерпретатору не той версии или выполнить более 10 команд за сеанс, система заблокируется, и пылесос точно придётся нести в сервисный центр.

Коля очень не хочет нести пылесос в сервис и надеется отремонтировать его своими силами. Помогите Коле пробиться через защиты от производителя и напишите программу, которая запускает утилиту (или хотя бы интерпретатор команд).

Формат входных данных

Ваше решение отправляет команду (одна строка).

Формат выходных данных

Строки команд согласно протоколу.

Для решения этой задачи у вашей команды есть 20 попыток.

Видео-разбор

 

Разбор

В задаче шифруется лишь ответ от пылесоса. Команды он принимает в штатном режиме, а набор ответов на каждую команду нам известен.

Таким образом, используя, например, сообщение об ошибке синтаксиса, можно начать заполнение словаря для декодирования сообщений от системы.

Используя начальную версию словаря можно найти тот интерпретатор, который находится в системе. Таким образом получаем половину баллов за задание.

Для полного балла необходимо запустить файл с флагом, для его запуска нам желательно знать полный словарь декодирования.

Для определения всех сочетаний букв необходимо провести копирование любого известного файла в файл, название которого содержит все буквы алфавита. Данный файл может быть самым длинным в списке файлов, но если таковым не является, то можно сформировать название иначе, например, добавить цифры или продублировать буквы.

Из списка файлов получаем название скопированного файла и по заранее известному нам названию декодируем все остальные буквы и запускаем файл с флагом.

Last modified: Friday, 15 May 2026, 7:07 AM