Урок 1. Условие, ответ и архив
Что именно спрашивают, как сдать ответ с первой попытки и как открыть архив с уликами.
Задача по расследованию на ВСОШ почти всегда устроена одинаково: дают файл или архив, к нему несколько вопросов, и на каждый вопрос — свой ответ. Баллы чаще теряют не потому, что не нашли улику, а потому, что сдали её не в том виде. В этом уроке два навыка: прочитать вопрос так, чтобы ответ приняли с первой попытки, и спокойно открыть архив с уликами.
Что понадобится
На олимпиаде выдают компьютер с Kali Linux, где всё нужное уже установлено. Дома проще всего поставить Kali в VirtualBox: образ скачивается с сайта kali.org, установка занимает полчаса. В этом модуле пригодятся:
| Программа | Зачем |
|---|---|
file |
узнать настоящий тип файла |
unzip, 7z, tar |
заглянуть в архив и распаковать его |
strings |
вытащить из файла читаемый текст |
binwalk |
найти файл, спрятанный внутри другого |
exiftool |
прочитать метаданные |
| LibreOffice Calc, VS Code | смотреть таблицы и журналы |
Все команды из курса можно повторять у себя: файлы к задачам лежат прямо в уроках.
Что именно спрашивают
Перед тем как открывать файлы, выпишите из вопроса три вещи: что назвать, в каком виде и сколько попыток. Например, в задаче «Деревенский сыщик» (региональный этап 2025–2026) вопросы звучали так:
- «Какой вредоносный документ загрузил пользователь? Укажите название включая расширение» — значит, сдаётся вроде
invoice.docx, а неinvoice; - «На какой ip:port отработал reverse shell? Укажите ответ в формате ip:port» — значит, вроде
203.0.113.5:4444, безhttp://и без пробелов; - «С помощью какого исполняемого файла злоумышленник повысил привилегии? Укажите полный путь до файла» — значит, вроде
/tmp/helper, а не простоhelper.
(Значения здесь придуманы: саму задачу вы решите во втором модуле.)
И внизу: «по 3 попытки на каждый вопрос, ответ сдаётся без обёртки». Значит, vsosh{...} дописывать не нужно.
Самые частые виды ответа:
| В вопросе написано | Сдавать |
|---|---|
| имя файла, «с расширением» | report.pdf |
| полный путь | /home/kai/secret.txt |
| ip:port | 203.0.113.5:4444 |
| команда | всю строку целиком: программу и все аргументы |
| «без обёртки» | только значение, без vsosh{} |
Найденное значение копируйте из файла, а не перепечатывайте: так не потеряется ни буква, ни пробел.
C3. Команда целиком
В наборе l1_casebook.zip найдите событие P-104 и сдайте его точную команду из колонки command_line: путь к программе и все аргументы.
Архив: сначала посмотреть, потом распаковать
Улики почти всегда приходят архивом. Не распаковывайте его сразу: сначала посмотрите, что внутри. Так видно имена, размеры и вложенные папки, а вы ничего не меняете.
unzip -l evidence.zip # список файлов в ZIP
7z l evidence.7z # то же для 7z и почти любого другого архива
tar tzf task.tar.gz # список файлов в .tar.gz
Потом распакуйте в отдельную папку, чтобы файлы задачи не смешались с вашими:
mkdir work
unzip evidence.zip -d work
tar xzf task.tar.gz -C work
7z x evidence.7z -owork
Внутри часто лежит ещё один архив — распаковывайте его так же, по шагам. Один маленький файл можно прочитать, вообще ничего не распаковывая:
unzip -p evidence.zip notes/readme.txt
Когда файлов много, не открывайте их по одному. Поищите нужное слово сразу во всех:
grep -r "password" work/ # во всех текстовых файлах папки
strings -f work/* | grep -i http # то же для двоичных файлов
Найти лишнее по размеру
Список архива показывает размеры файлов, и это первая подсказка. Если в папке три мода для игры, два из них весят по полкилобайта, а третий — шестьсот, третий явно делает что-то ещё. Ровно так выглядит задача ниже.
JAR — это тоже архив
Моды Minecraft, лаунчеры и другие программы на Java упакованы в файл .jar. Это обычный ZIP с другим расширением, поэтому его смотрят теми же командами, не запуская:
unzip -l mod.jar # какие классы внутри
unzip -d mod mod.jar # распаковать в папку mod
strings mod/com/example/Stealer.class # строки из класса: адреса, порты, команды
Имена классов часто выдают замысел автора: BackdoorClient, ItemStealer, Updater. Адреса, порты и команды обычно видны в строках класса без всякой декомпиляции.
C8. Файл внутри архива
В l3_workspace.zip лежит архив original/evidence_bundle.zip. Не распаковывая его целиком, найдите файл со строкой Case-ID: CASE-731 и сдайте его путь внутри evidence_bundle.zip.
C9. Сколько файлов в архиве
Сколько обычных файлов (без папок) лежит в original/evidence_bundle.zip? Сдайте число.
Задача ВСОШ: «Вредоносный мод-пак»
Региональный этап 2025–2026, 10 класс. Игроки скачали «оптимизированный» мод-пак для увеличения FPS, и у них начали пропадать вещи из сундуков. Даны архив с модами и журнал клиента одной из жертв, три вопроса. Рекомендуемые утилиты: unzip, jar, grep, strings.
Файл задачи: task.tar.gz
Порядок как в уроке: список архива → распаковка в отдельную папку → сравнить моды по размеру → заглянуть в подозрительный JAR и в журнал клиента.
ВСОШ: «Вредоносный мод-пак», 10 класс, вопрос 1/3
Региональный этап 2025–2026, 10 класс.
Как называется Java-файл с вредоносным модом? Ответ без обёртки.
Файлы задачи: task.tar.gz.
Флаг сдаётся в поле ниже и засчитывается и в карточке задачи на платформе. Число попыток общее с платформой, как на олимпиаде. Полный разбор открывается кнопкой с ключом под заданием.
ВСОШ: «Вредоносный мод-пак», 10 класс, вопрос 2/3
Региональный этап 2025–2026, 10 класс.
На какой порт мод отправляет данные? Ответ без обёртки.
Файлы задачи: task.tar.gz.
Флаг сдаётся в поле ниже и засчитывается и в карточке задачи на платформе. Число попыток общее с платформой, как на олимпиаде. Полный разбор открывается кнопкой с ключом под заданием.
ВСОШ: «Вредоносный мод-пак», 10 класс, вопрос 3/3
Региональный этап 2025–2026, 10 класс.
Какую команду мод выполняет скрытно от игрока? Ответ в обёртке vsosh{}: команда без косой черты, пробелы заменены на _. Пример: /echo i love cats 22 → vsosh{echo_i_love_cats_22}.
Файлы задачи: task.tar.gz.
Флаг сдаётся в поле ниже и засчитывается и в карточке задачи на платформе. Число попыток общее с платформой, как на олимпиаде. Полный разбор открывается кнопкой с ключом под заданием.