Чему вы научитесь
- Выполнять первичный обзор бинарника и выявлять подозрительные места.
- Восстанавливать алгоритмы шифрования и анализировать структуру дешифрованных данных.
- Декомпозировать задачу на проверяемые гипотезы.
- Строго проверять гипотезы, а не полагаться на интуицию.
- Проводить контролируемые эксперименты по бинарной модификации исполняемых файлов.
О курсе
Для кого этот курс
Начальные требования
Для успешного старта нужно:
- уверенно работать в командной строке Linux;
- уметь читать и писать код на Python 3;
- понимать основные инструкции ассемблера для amd64.
Если какой-то пункт западает, начните с базы. Например, с бесплатных курсов на Stepik:
- Курс для начинающих серии "Поколение Python"
- Курс "Основы Linux"
- Введение в архитектуру ЭВМ. Элементы операционных систем
Отдельно рекомендую лекции по языку ассемблера и архитектуре ЭВМ (МГУ, 2021). Лекции читает Вартан Андроникович Падарян из Института системного программирования Российской академии наук (ИСП РАН). Курс лекций доступен по ссылке. Это не базовый минимум, а роскошный дополнительный материал; горячо рекомендую.
Преподаватели курса
Как проходит обучение
- введение: знакомство с платформой и подготовка окружения;
- основной модуль: теория о том, как устроен исследуемый бинарник, и реальная практика;
- задания: проверка того, на каком этапе исследования вы находитесь;
- самостоятельная часть: некоторые задания предлагают продолжить исследование самостоятельно;
- после самостоятельной работы даётся пояснение в следующем теоретическом блоке.
Что вы получите
- понимание, с чего начать разбор незнакомого бинарника
- навык восстановления логики хранения и извлечения данных
- умение отличать подтверждённый вывод от предположения
- опыт применения метода к другой программе или рабочей задаче
- практику на реальном исполняемом файле ReversingHero
- доступ к Telegram-каналу, где можно общаться и задать вопросы