Реверс-инжиниринг

Курс рассчитан на разработчиков программного обеспечения, системных программистов, системных аналитиков, вирусных аналитиков, специалистов по информационной безопасности, devops-специалистов
Подойдет ли мне этот курс?

Длительность

4 месяца

Начало

26 июня

Занятия

Ср 20:00, Сб 11:00

Общая стоимость

40 000 ₽

В месяц

12 500 ₽

В кредит:

12500 ₽ в месяц

Хочу дешевле
Общая стоимость
40 000 ₽
В месяц: 12 500 ₽
В кредит: 40000 ₽
в месяц
Продолжительность
4 месяца, 4 академических часа в неделю
Ср 20:00, Сб 11:00
Начало занятий
26 июня
Что даст вам этот курс

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

Цель курса. Профессионально сделанных курсов по обратной разработке на российском рынке (почти) нет. Наша цель - восполнить этот пробел и предложить курс, в рамках которого слушатель сможет овладеть на практике навыками обратной разработки программ.

Особенность курса. Авторский курс. Программа содержит хорошо структурированный теоретический материал и при этом насыщена интересной, полезной и актуальной практикой. Много заданий на реальных кейсах.

Чему научимся?

  • Основательно изучим такую важную тему как низкоуровневое программирование
  • Подробно обсудим важные для дальнейшего аспекты внутреннего устройства Windows
  • Отдельный большой модуль программы будет посвящен системному программированию
  • Наконец, центральная тема курса - обратная разработка кода. Статический и динамический анализ
  • Полный список тем приведен в программе обучения



    Единственный основательный курс по реверс-инжинирингу на российском рынке


    Много интересной, полезной и актуальной практики на реальных кейсах


    Уникальная авторская программа от эксперта в области анализа вредоносных программ, обратной разработки и низкоуровневого программирования



    Длительность курса - 4 месяца.
Преподаватели
Артур Пакулов
Вирусный аналитик в Kaspersky Lab.
Никита Курганов
Вирусный аналитик в Kaspersky Lab

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


Навыки:
Низкоуровневое программирование,
Системное программирование,
Реверс-инжиниринг,
Анализ вредоносного ПО,
Веб-безопасность,
Программирование: Assembler, C/C++, Delphi, Python
Специалист в области исследования угроз (Security Reseacher), обратной разработки и анализа вредоносного программного обеспечения. Регулярно принимает участие в CTF соревнованиях.

Навыки:
Компьютерная криминалистика,
Реверс-инжиниринг,
Анализ вредоносного ПО,
Разработка и программирование IoT устройств,
Веб-безопасность,
Программирование: Assembler, C/C++, Python, Lua
Артур
Пакулов
Никита
Курганов
Преподаватели
Артур Пакулов
Вирусный аналитик в Kaspersky Lab.

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


Навыки:
Низкоуровневое программирование,
Системное программирование,
Реверс-инжиниринг,
Анализ вредоносного ПО,
Веб-безопасность,
Программирование: Assembler, C/C++, Delphi, Python
Никита Курганов
Вирусный аналитик в Kaspersky Lab
Специалист в области исследования угроз (Security Reseacher), обратной разработки и анализа вредоносного программного обеспечения. Регулярно принимает участие в CTF соревнованиях.

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

    • получите материалы по всем пройденным занятиям (видеозаписи курса, дoполнительные материалы, финальный проект для добавления в портфолио)

    • научитесь читать ассемблерный код
    • научитесь работать в специализированном ПО для обратной разработки (IDA Pro, WinDBG, OllyDbg, Hiew)
    • освоите в теории и на практике основные приемы статического и динамического анализа кода
    • повысите свою ценность и конкурентоспособность как специалиста

    • получите сертификат об окончании курса

    Дата выдачи сертификата: 23 ноября 2019 года
    Ваш сертификат

    онлайн-образование

    Сертификат №0001

    Константин Константинопольский

    Успешно закончил курс «Реверс-инжиниринг»
    Выполнено практических заданий: 16 из 16

    Общество с ограниченной ответственностью “Отус Онлайн-Образование”

    Город:
    Москва

    Генеральный директор ООО “Отус Онлайн-Образование”
    Виталий Чибриков

    Лицензия на осуществление образовательной деятельности
    № 039825 от 28 декабря 2018г.

    онлайн-образование

    Сертификат №0001

    Константин Константинопольский

    Успешно закончил курс «Реверс-инжиниринг»
    Выполнено практических заданий: 16 из 16

    Общество с ограниченной ответственностью “Отус Онлайн-Образование”

    Город:
    Москва

    Генеральный директор ООО “Отус Онлайн-Образование”
    Виталий Чибриков

    Лицензия на осуществление образовательной деятельности
    № 039825 от 28 декабря 2018г.
    Общая стоимость
    40 000 ₽
    В месяц: 12 500 ₽
    В кредит: ₽ в месяц
    Продолжительность
    4 месяца
    Начало занятий
    26 июня