Описание курса:
Вы освоите на практике важнейшие приемы реверс-инжиниринга: статический и динамический анализ. Познакомитесь с низкоуровневым и системным программированием, подробно разберете аспекты внутреннего устройства Windows. Вам предстоит изучить и классифицировать вредоносное ПО на примерах реальных malware, выловленных в сети.
Аудитория:
Для кого этот курс?
• Для системных программистов, разрабатывающих низкоуровневый софт. Вы поймете, как код работает изнутри после компиляции, и сможете повысить качество своих решений.
• Для начинающих вирусных аналитиков и специалистов ИБ. Вы научитесь всем must have практикам реверс-инжиниринга и получите комплексное представление о вредоносном ПО.
Необходимая подготовка:
• Знание архитектуры ЭВМ на начальном уровне
• Базовые знания внутреннего устройства Windows
• Преимуществом будет опыт программирования на языке C/C++ (это необязательное условие)
Программа курса:
Модуль 1. Низкоуровневое программирование на ассемблер под x8086/x64
• Регистры процессора, работа с памятью
• Представление данных: знаковые и беззнаковые числа, символы. Основные команды ЯА
• Представление кода: формат и опкоды команд
• Арифметические и логические команды
• Цепочечные операции
• Подпрограммы
• Дополнительное занятие: Представление данных
• Прерывания BIOS
• Написание кастомного MBR
• RISС-архитектура на примере MIPS-процессоров
Модуль 2. Защищённый режим процессора
• Режимы работы процессоров. Принцип работы процессора в PM. Сегментная организация памяти
• Страничная организация памяти
• Типы дескрипторов
Модуль 3. Внутреннее устройство Windows
• Объекты ядра
• Менеджер памяти
• Диспетчер ввода-вывода
• Настройка рабочей среды для отладки драйверов режима ядра
Модуль 4. Системное программирование
• PE формат
• Таблица импорта
• Таблица экспорта/Таблица релокаций
• Решение crackme
• Ловушки Windows
• Перехват WinApi функций
• Программирование Native приложений
• Способы добавления в автозагрузку
• Программирование служб
Модуль 5. Обратная разработка программ
• Динамический анализ кода
• Статический анализ кода
• Разработка shell-кодов
• Практическое занятие: ручная распаковка
• Практическое занятие: анализ эксплойта
• Практическое занятие: анализ вредоносного образца
• Уязвимость Buffer Overflow
• Уязвимость UAF
• Буткиты
Модуль 6. Проектный модуль
Окончательная цена указывается в договоре на обучение.
Характеристики курса
Начало: Ведется набор
Вендор: Java
Код курса: RvrEng
Город: Екатеринбург, Челябинск, Самара, Ижевск, Пермь, Москва,