Разбор: babyrev с отбора Кубка CTF 2025
Условие: исполняемый файл проверяет флаг из командной строки. Нужно понять, как именно.
Ход решения
- Загрузить файл в IDA PRO и подписать типы и переменные
- Проследить, как движется введённый флаг: значение XOR-ится с константой 0x42 и служит индексом в массиве
- Найти массив, с которым сравнивается результат
- Таблицу не разбирать статически: снять её из памяти под gdb
Что вынести
Когда таблицу перед проверкой преобразуют, быстрее снять её в отладчике, чем повторять код вручную.
Чек-лист
- ☐ Файл открыт в дизассемблере
- ☐ Ввод отслежен до сравнения
- ☐ Точка останова поставлена
- ☐ Таблица снята из памяти