Проходил 12 февраля в 20:00

Открытый вебинар
Реверс-инжиниринг тестового драйвера под Windows

Открытый вебинар онлайн

В процессе разработки эксплойта рассмотрим методы взаимодействия приложения с драйвером и напишем шелкод с функционалом повышения привилегий в ядре.
Преподаватель
Артур Пакулов

Запись

О курсе

Реверс-инжиниринг
50 000 ₽ 42 500 ₽
4 месяца
Начало 27 сентября

ЧТО ТАКОЕ РЕВЕРС-ИНЖИНИРИНГ? Реверс-инжиниринг кода (обратная разработка кода) - это процесс анализа машинного кода программы, который ставит своей целью понять принцип работы, восстановить алгоритм, обнаружить недокументированные возможности программы, и т.п. Основные методы реверс-инжиниринга - это статический или динамический анализ кода. При статическом анализе исследователь дизассемблирует код программы, используя специальное ПО, и далее анализирует ассемблерный код. При …

Программа курса
Модуль 1
Низкоуровневое программирование на ассемблер под x8086/x64
Модуль 2
Низкоуровневое программирование на ассемблер под MIPS
Модуль 3
Защищённый режим процессора
Модуль 4
Внутреннее устройство Windows
Модуль 5
Системное программирование
Модуль 6
Написание простейших драйверов
Модуль 7
Обратная разработка программ
Модуль 8
Проектная работа
Низкоуровневое программирование на ассемблер под x8086/x64
Регистры процессора, работа с памятью
Домашние задания: 1
ДЗ
Установка софта. Необходимо установить следующий софт:
Emu 8086
FASM
x64Dbg
Ida Pro 7
Hiew
Far Manager
ConEmu
Представление данных, кода, опкоды команд.
Домашние задания: 1
ДЗ
Одинаковые команды - разные опкоды. 1. Неодходимо составить список как можно больших команд, которые будут иметь один и тот же смысл, но разные опкоды. Пример:
xor ax, ax | 33 c0
xor ax, ax | 31 c0
2. Модифицировать файл в HEX редакторе ex.exe так, чтобы MessageBox показывался два раза.
Арифметические, логические команды. Команды условного/безусловного перехода
Домашние задания: 1
ДЗ
Написать keygen к программам CRACKME.EXE (66f573036f8b99863d75743eff84f15d). Необходимо дизассемблировать программу и написать генератор валидных пар login:password.
Прерывания BIOS
Домашние задания: 2
ДЗ
Калькулятор суммы. Написать программу, принимающую на вход два слагаемых в виде hex цифр, считает сумму и выводит её не экран тоже, в hex виде.
ДЗ
Написать keygen к программам Otus_Crackme_01.exe (fb42bfad815a9563b9f6fdd362b47f70).
Низкоуровневое программирование на ассемблер под MIPS
Регистры процессора. Работа с памятью
Арифметические, логические команды. Команды условного/безусловного перехода
Домашние задания: 1
ДЗ
Crc32. Переписать программу с MIPS ассемблера на 8086.
Опкоды команд
Защищённый режим процессора
Сегментная организация памяти
Страничная организация памяти
Домашние задания: 1
ДЗ
Стек в PM. 1. Написать программку (лучше на python, но можно и на других ЯП), которая на вход будет принимать: адрес сегмента, лимит сегмента, права (чтение/запись/исполнение) и будет возвращать сформированный дескриптор сегмента
2. Добавить дескриптор сегмента, для стека в segmodel.asm
Внутреннее устройство Windows
Объекты ядра
Менеджер памяти
Диспетчер ввода-вывода
Системное программирование
PE формат
WinApi функции. Перехваты WinApi функций
Домашние задания: 1
ДЗ
Pe Loader. Реализовать простейший Pe Loader, который будет считывать с диска Pe (exe) из памяти и запускать его.
Pe файл брать тот, который выдаёт MessageBox и скомпилирован на FASMЕ.
Программирование Native приложений
Способы добавления в автозагрузку
28 августа, 20:00 — 21:30
Лектор: Артур Пакулов
Программирование служб
31 августа, 11:00 — 12:30
Лектор: Артур Пакулов
Настройка рабочей среды для отладки драйверов режима ядра
4 сентября, 20:00 — 21:30
Лектор: Артур Пакулов
Написание простейших драйверов
7 сентября, 11:00 — 12:30
Лектор: Артур Пакулов
Обратная разработка программ
Динамический анализ кода
WinDbg, Sysinternels Tools, WireShark
11 сентября, 20:00 — 21:30
Лектор: Артур Пакулов
Статический анализ кода
Ida Pro
14 сентября, 11:00 — 12:30
Лектор: Артур Пакулов
Разработка shell кодов
18 сентября, 20:00 — 21:30
Лектор: Артур Пакулов
Metasploit
21 сентября, 11:00 — 12:30
Лектор: Артур Пакулов
Внедрение реверс шела в некоторые прошивки роутеров
25 сентября, 20:00 — 21:30
Лектор: Артур Пакулов
Поиск и эксплуатация уязвимостей Buffer Overflow/UAF
28 сентября, 11:00 — 12:30
Лектор: Артур Пакулов
Проектная работа
Вместе с участниками группы по ходу курса мы «разревёрсим» несколько реальных вредоносных программ, определим их функционал и в качестве выпускного проекта напишем программу для лечения.
Вводное занятие по проектной работе
5 октября, 11:00 — 12:30
Домашние задания: 1
ДЗ
Проектная работа.
Консультации и обсуждения проектной работы
9 октября, 20:00 — 21:30
Консультации и обсуждения проектной работы
12 октября, 11:00 — 12:30
Итоговое занятие. Обсуждение проектной работы
16 октября, 20:00 — 21:30

Преподаватель

Артур Пакулов
Вирусный аналитик в Kaspersky Lab.

Специалист в области низкоуровневого программирования, обратной разработки и анализа вредоносного программного обеспечения. В период 12.2015 - 05.2017 - специалист по образовательным программам и преподаватель Образовательного департамента “Лаборатории Касперского”. Преподаватель и методист-разработчик курсов и программ по направлениям: “Защита информации от вредоносного ПО”, “Низкоуровневое программирование”, “Профессиональный пентестинг”. Программы, разработанные Пакуловым, включены в учебные планы российских и зарубежных Университетов, в том числе МГТУ им. Н.Э. Баумана, МГУ им. М.В. Ломоносова. Преподаватель международных магистерских программ по информационной безопасности.


Навыки:
Низкоуровневое программирование,
Системное программирование,
Реверс-инжиниринг,
Анализ вредоносного ПО,
Веб-безопасность,
Программирование: Assembler, C/C++, Delphi, Python
Преподаватель курсов:
Реверс-инжиниринг