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

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

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

4 месяца

Начало

26 июня

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

35 000 ₽

В месяц

10 500 ₽

В кредит:

10500 ₽ в месяц

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

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

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

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

    Дата выдачи сертификата: 23 ноября 2019 года
    Ваш сертификат
    otus.ru
    Константин Константинопольский
    успешно закончил курс
    «Реверс-инжиниринг»
    Успешных заданий:
    16 из 16
    Проектная работа:
    Распределённая система сетевого мониторинга
    Виталий Чибриков
    Генеральный директор
    № 0001
    otus.ru
    Константин Константинопольский
    успешно закончил курс
    «Реверс-инжиниринг»
    Успешных заданий:
    16 из 16
    Проектная работа:
    Распределённая система сетевого мониторинга
    Виталий Чибриков
    Генеральный директор
    № 0001
    Партнеры ждут выпускников этого курса
    Общая стоимость
    35 000 ₽
    В месяц: 10 500 ₽
    В кредит: ₽ в месяц
    Продолжительность
    4 месяца
    Начало занятий
    26 июня