В первую очередь, мы анализируем файл Game.exe с помощью утилиты file:
Bash:
Код:
file
Game.exe
# Вывод: Game.exe: Zip archive data, made by v3.0 UNIX, extract using at least v2.0, last modified, last modified Sun, Jul 06 2023 23:42:56, uncompressed size 151, method=deflate
Результаты работы утилиты file ясно указывают на то, что на самом деле это не исполняемый файл, а ZIP-архив. Однако, если мы попытаемся открыть этот файл с помощью просмотрщика архивов, нам не удастся это сделать, и мы столкнемся с ошибкой. Тогда мы приступаем к анализу файла с помощью hex-редактора.
Мы знаем, что сигнатура большинства ZIP-архивов начинается с байтов 50 4b 03 04. Однако в нашем случае мы наблюдаем 4d 5a 03 04, что говорит о том, что первые два байта сигнатуры были намеренно подменены, чтобы операционная система воспринимала архив как исполняемый файл. Исправим это, изменив первые два байта на правильные, и сохранив внесенные изменения.
Теперь архив можно успешно открыть с помощью просмотрщика. Однако мы обнаруживаем, что архив защищен паролем. Утилита John the Ripper помогает нам быстро найти пароль.
Распаковываем архив и открываем файл flag.txt, в котором находим флаг, представленный в виде последовательности символов:
Хорошо знакомые каждому, кто давно решает задачи на Antichat, начальные символы флага в hex-нотации 434f44454259 подтверждают, что мы на верном пути. Теперь остается лишь декодировать флаг из hex, игнорируя байты в формате \u{}. Для этого я предпочитаю использовать терминал Linux: