Курсы по реверс-инжинирингу. Запишитесь на курс по анализу машинного кода программы
🎅 Декабрьская распродажа в OTUS!
Новый год – новые знания. Сделайте себе подарок и приобретите интересующий вас курс по самой выгодной цене декабря ❄️
Выбрать курс
РАССРОЧКА
РАССРОЧКА

Reverse engineering

Реверс-инжиниринг
Научитесь находить и исправлять уязвимости своих систем и приложений Единственный практический курс на российском рынке

Длительность обучения:

5 месяцев

4 ак. часа в нед.

Начало занятий:

16 апреля 2024 года

Что даст вам этот курс

Вы освоите на практике важнейшие приемы реверс-инжиниринга: статический и динамический анализ. Познакомитесь с низкоуровневым и системным программированием, подробно разберете аспекты внутреннего устройства Windows. Вам предстоит изучить и классифицировать вредоносное ПО на примерах реальных malware, выловленных в сети.

ЧТО ТАКОЕ РЕВЕРС-ИНЖИНИРИНГ?

Реверс-инжиниринг кода (обратная разработка кода) — это процесс анализа машинного кода программы, который ставит своей целью понять принцип работы, восстановить алгоритм, обнаружить недокументированные возможности программы, и т.п. Основные методы реверс-инжиниринга — это статический или динамический анализ кода. При статическом анализе исследователь дизассемблирует код программы, используя специальное ПО, и далее анализирует ассемблерный код. При динамическом анализе исследователь запускает код в изолированной среде (песочнице) или отладчике и анализирует код в динамике.

Для кого этот курс?

    • Для системных программистов, разрабатывающих низкоуровневый софт. Вы поймете, как код работает изнутри после компиляции, и сможете повысить качество своих решений.
    • Для начинающих вирусных аналитиков и специалистов ИБ. Вы научитесь всем must have практикам реверс-инжиниринга и получите комплексное представление о вредоносном ПО.

Как проходит практика?

Студенты заранее получают стенды и разворачивают их у себя локально до начала занятия.

На курсе вас ждет:

  • Практика по распаковке файлов
  • Практический разбор PE формата (таблица импорта, таблица экспорта, таблица релокаций)
  • Практический анализ шифровальщиков, банковских троянов, ботов.
  • Проектная работа, в рамках которой вы можете выбрать одну из предложенных преподавателем тем или реализовать свою идею.

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

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

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

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

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

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

Отзывы

6
Артем
Богомолов
Отличный курс. Описывает самые необходимые основы по реверсу. Достаточно подробно рассказывается о многих важных аспектах обратной разработки. Дается полноценное объяснение функционирования вредоносных программ. Мне очень понравился. А главное - все по теме
Читать целиком
Марсель
Здравствуйте,

Во-первых, хочется отметить отзывчивость ваших менеджеров. Когда проходил курс в первый раз я был вынужден остановиться на половине. Когда стал свободнее решил продолжить курс. Менеджер закинул меня в след группу без оплаты первой половины курса и я продолжил заниматься

Во-вторых, Артур очень компетентный специалист и классный препод. Пройдя примерно 3/4 курса я нашёл работу реверсера. Очень много из того, что говорил Артур было на собесах.

Буду рекомендовать ваш курс. Спасибо!
Читать целиком
Константин
Козулин
Курс больше подходит для вирусных аналитиков, но мне был интересен этот курс с точки зрения разработки операционных систем. Едва ли где-то есть курсы по этой тематике, да и книг немного. Но здесь даются знания об ассемблере (я хочу писать именно на ассемблере). Мне интересен реверс-инжиниринг, поскольку при разработке операционных систем нужно разрабатывать и драйверы. А многие драйверы имеют закрытый код и чтобы их понять, нужны навыки реверс-инжиниринга. Этот курс даёт хорошие знания о строении операционной системы Windows, что мне тоже очень пригодится. Я узнал больше про режимы процессора, устройство памяти, научился работать с дизассемблерами, отладчиками и шестнадцатиричными редакторами. Из недостатков - очень малое внимание к ОС Linux. В курсе не разбираются отладчики и дизассемблеры под эту систему: GDB, Ghidra. Но курс прекрасный! Задания сложные: CrackMe, внедрение кода в прошивку маршрутизатора, работа с загрузочным сектором... Они помогут мне значительно продвинуться в движении к мечте. Спасибо!
Читать целиком
Вадим
Демьянов
Я инженер-программист АСУТП, часто сталкиваюсь с задачами низкоуровневого программирования, программирования embedded-устройств. Иногда интересуюсь онлайн-обучением в этих областях, даже начинал один курс на Coursera, но забросил. В целом я не видел интересного обучающего курса, который стоило бы начать, ведь вся информация и так есть в сети, можно самостоятельно все изучать.
Случайно узнал про данный курс по реверс-инжинирингу, видимо попалась реклама, до этого даже не слышал, что есть такая специальность как реверс-инженер. Это показалось мне возможностью глубже понять, как все работает внутри компьютера, научиться анализу скомпилированного кода, изучить какую-то совсем новую интересную предметную область. Конечно всю информацию по реверсу также можно найти в сети, но для начала нужно понимать, что искать. Проблема в том, что информации слишком много, и конечно наличие базы в виде такого курса сильно экономит время, дает какое-то структурированное понимание.
Сам курс для меня оказался довольно сложным, часто приходилось пересматривать лекции чтобы понять, что же мы вообще делали. Домашние задания также оказались сложнее, чем я думал и некоторые требовали довольно много времени. В своей практике я никогда не сталкивался с дебаггерами, дизасемблерами и прочими утилитами, которые применяются на курсе, все программы были для меня совершенно новыми, это тоже создавало некоторые трудности. Но в целом курсом я очень доволен, наверно именно потому, что он оказался таким сложным. Однозначно хочется дальше продолжать изучение реверс-инжиниринга.
Отдельная благодарность преподавателю – Артуру Пакулову, за интересный курс и готовность отвечать на все вопросы.
Есть пара моментов, которые я бы хотел добавить. Во-первых, уделить какое-то время изучению используемых программ, даже в рамках существующих лекций и домашних заданий. Во-вторых, выделить больше времени на итоговый проект, т.к. запланированного явно недостаточно.
Читать целиком
Александра
Киба
Очень качественный курс. Хотя я уже была знакома с изрядной долей материала, все равно понравилось. Больше всего впечатлил разбор того, как хранятся аргументы/локальные переменные с точки зрения ассемблера (т.е. как их найти и понять, что код к ним обращается) и работа с крэкми и идой

Немного поленилась выполнять домашку, не уверена, что это ключевой момент для освоения, но ковыряться в иде - давняя мечта
Читать целиком
Виктория
Камардина
На данный момент нахожусь в процессе обучения на курсе Reverse-Engineering, в будущем планирую брать курс по DevSecOps.

1. По реверсу не так уж много обучений, а направление непростое и разобраться самостоятельно действительно с нуля нелегко. И мной было выбрано данное обучение, потому, что для физических лиц цена гораздо меньше.
2. C тобой занимается действительно настоящий специалист, который работает в этом направлении, а не просто обучает. У меня преподаватель Пакулов Артур, ex-вирусный аналитик Kaspersky Lab. Классный! Не всегда всё понятно с первого раза, но зато потом информация укладывается в голове надолго.
3. Уроки не в записи, а ведется диалог вживую! И для меня это большой плюс.
4. Когда у меня возникают вопросы, я могу задавать их и по уже проведенным урокам и по домашке, сдачу которой я просрочила. Преподаватель всё корректно разъясняет. Домашнее задание лучше сдавать вовремя, но если произошел конфуз, то все всё понимают, сдаете позже.
5. Есть Куратор, к которому тоже можно обращаться по общим вопросам. Куратор очень переживающий, расскажет даже как сделать налоговый вычет на госуслугах после оплаты курса))
6. В сертификате будет написано количество выполненных работ, тема проекта, и для меня это является также стимулом хорошо закончить курс.


Плюсы:
1.Практически нет аналогов обучения по этой теме в формате онлайн с преподавателем
2.Цена
3.Преподаватель является экспертом, рассказывает интересные нюансы
4.Платформа, в которой можно отслеживать свои успехи
5.Для физ. лиц есть помощь с трудоустройством при желании


Минусы:
Знания никто в голову не кладет. Иногда сложно воспринимать новую информацию, но, наверное, если бы не было сложностей, не было радости и гордости за себя, когда ты их преодолел.
Читать целиком
Артем
Богомолов
Отличный курс. Описывает самые необходимые основы по реверсу. Достаточно подробно рассказывается о многих важных аспектах обратной разработки. Дается полноценное объяснение функционирования вредоносных программ. Мне очень понравился. А главное - все по теме
Читать целиком
Марсель
Здравствуйте,

Во-первых, хочется отметить отзывчивость ваших менеджеров. Когда проходил курс в первый раз я был вынужден остановиться на половине. Когда стал свободнее решил продолжить курс. Менеджер закинул меня в след группу без оплаты первой половины курса и я продолжил заниматься

Во-вторых, Артур очень компетентный специалист и классный препод. Пройдя примерно 3/4 курса я нашёл работу реверсера. Очень много из того, что говорил Артур было на собесах.

Буду рекомендовать ваш курс. Спасибо!
Читать целиком
Константин
Козулин
Курс больше подходит для вирусных аналитиков, но мне был интересен этот курс с точки зрения разработки операционных систем. Едва ли где-то есть курсы по этой тематике, да и книг немного. Но здесь даются знания об ассемблере (я хочу писать именно на ассемблере). Мне интересен реверс-инжиниринг, поскольку при разработке операционных систем нужно разрабатывать и драйверы. А многие драйверы имеют закрытый код и чтобы их понять, нужны навыки реверс-инжиниринга. Этот курс даёт хорошие знания о строении операционной системы Windows, что мне тоже очень пригодится. Я узнал больше про режимы процессора, устройство памяти, научился работать с дизассемблерами, отладчиками и шестнадцатиричными редакторами. Из недостатков - очень малое внимание к ОС Linux. В курсе не разбираются отладчики и дизассемблеры под эту систему: GDB, Ghidra. Но курс прекрасный! Задания сложные: CrackMe, внедрение кода в прошивку маршрутизатора, работа с загрузочным сектором... Они помогут мне значительно продвинуться в движении к мечте. Спасибо!
Читать целиком
Вадим
Демьянов
Я инженер-программист АСУТП, часто сталкиваюсь с задачами низкоуровневого программирования, программирования embedded-устройств. Иногда интересуюсь онлайн-обучением в этих областях, даже начинал один курс на Coursera, но забросил. В целом я не видел интересного обучающего курса, который стоило бы начать, ведь вся информация и так есть в сети, можно самостоятельно все изучать.
Случайно узнал про данный курс по реверс-инжинирингу, видимо попалась реклама, до этого даже не слышал, что есть такая специальность как реверс-инженер. Это показалось мне возможностью глубже понять, как все работает внутри компьютера, научиться анализу скомпилированного кода, изучить какую-то совсем новую интересную предметную область. Конечно всю информацию по реверсу также можно найти в сети, но для начала нужно понимать, что искать. Проблема в том, что информации слишком много, и конечно наличие базы в виде такого курса сильно экономит время, дает какое-то структурированное понимание.
Сам курс для меня оказался довольно сложным, часто приходилось пересматривать лекции чтобы понять, что же мы вообще делали. Домашние задания также оказались сложнее, чем я думал и некоторые требовали довольно много времени. В своей практике я никогда не сталкивался с дебаггерами, дизасемблерами и прочими утилитами, которые применяются на курсе, все программы были для меня совершенно новыми, это тоже создавало некоторые трудности. Но в целом курсом я очень доволен, наверно именно потому, что он оказался таким сложным. Однозначно хочется дальше продолжать изучение реверс-инжиниринга.
Отдельная благодарность преподавателю – Артуру Пакулову, за интересный курс и готовность отвечать на все вопросы.
Есть пара моментов, которые я бы хотел добавить. Во-первых, уделить какое-то время изучению используемых программ, даже в рамках существующих лекций и домашних заданий. Во-вторых, выделить больше времени на итоговый проект, т.к. запланированного явно недостаточно.
Читать целиком
Александра
Киба
Очень качественный курс. Хотя я уже была знакома с изрядной долей материала, все равно понравилось. Больше всего впечатлил разбор того, как хранятся аргументы/локальные переменные с точки зрения ассемблера (т.е. как их найти и понять, что код к ним обращается) и работа с крэкми и идой

Немного поленилась выполнять домашку, не уверена, что это ключевой момент для освоения, но ковыряться в иде - давняя мечта
Читать целиком
Виктория
Камардина
На данный момент нахожусь в процессе обучения на курсе Reverse-Engineering, в будущем планирую брать курс по DevSecOps.

1. По реверсу не так уж много обучений, а направление непростое и разобраться самостоятельно действительно с нуля нелегко. И мной было выбрано данное обучение, потому, что для физических лиц цена гораздо меньше.
2. C тобой занимается действительно настоящий специалист, который работает в этом направлении, а не просто обучает. У меня преподаватель Пакулов Артур, ex-вирусный аналитик Kaspersky Lab. Классный! Не всегда всё понятно с первого раза, но зато потом информация укладывается в голове надолго.
3. Уроки не в записи, а ведется диалог вживую! И для меня это большой плюс.
4. Когда у меня возникают вопросы, я могу задавать их и по уже проведенным урокам и по домашке, сдачу которой я просрочила. Преподаватель всё корректно разъясняет. Домашнее задание лучше сдавать вовремя, но если произошел конфуз, то все всё понимают, сдаете позже.
5. Есть Куратор, к которому тоже можно обращаться по общим вопросам. Куратор очень переживающий, расскажет даже как сделать налоговый вычет на госуслугах после оплаты курса))
6. В сертификате будет написано количество выполненных работ, тема проекта, и для меня это является также стимулом хорошо закончить курс.


Плюсы:
1.Практически нет аналогов обучения по этой теме в формате онлайн с преподавателем
2.Цена
3.Преподаватель является экспертом, рассказывает интересные нюансы
4.Платформа, в которой можно отслеживать свои успехи
5.Для физ. лиц есть помощь с трудоустройством при желании


Минусы:
Знания никто в голову не кладет. Иногда сложно воспринимать новую информацию, но, наверное, если бы не было сложностей, не было радости и гордости за себя, когда ты их преодолел.
Читать целиком

Необходимые знания

  • Знание архитектуры ЭВМ на начальном уровне
  • Базовые знания внутреннего устройства Windows
  • Преимуществом будет опыт программирования на языке C/C++ (это необязательное условие)
  • Требования к "железу": процессор с тактовой частотой 2,0 ГГц или больше, от 8 ГБ ОЗУ, 100 ГБ свободного места на жестком диске

Корпоративное обучение для ваших сотрудников

Поможем вашей компании развивать команду! Профиты данного курса для компании: Подробное изучение самых популярных баз данных с возможностью сосредоточиться на тех, которые используются в компании / Оптимизированные стабильные системы / Работа над промышленными задачами во время практики
>

Программа обучения

В процессе обучения вы получите комплексные знания и навыки.
Тема 1. Регистры процессора, работа с памятью
Тема 2. Представление данных, кода, опкоды команд. Основные команды ЯА
Тема 3. Арифметические и логические команды
Тема 4. Цепочечные операции
Тема 5. Подпрограммы
Тема 6. Дополнительное занятие: Представление данных
Тема 7. Прерывания BIOS
Тема 8. Написание кастомного MBR
Тема 9. Регистры процессора. Работа с памятью.
Тема 10. Арифметические, логические команды. Команды условного/безусловного перехода.
Тема 11. Опкоды команд
C 7 декабря
Тема 12. Режимы работы процессоров. Принцип работы процессора в PM. Сегментная организация памяти
Тема 13. Страничная организация памяти
Тема 14. Типы дескрипторов
C 19 декабря
Тема 15. Объекты ядра
Тема 16. Менеджер памяти
Тема 17. Диспетчер ввода-вывода
C 9 января
Тема 18. PE формат
Тема 19. Таблица импорта
Тема 20. Таблица экспорта/Таблица релокаций
Тема 21. Ловушки Windows
Тема 22. Перехват WinApi функций
Тема 23. Программирование Native приложений
Тема 24. Способы добавления в автозагрузку
Тема 25. Программирование служб
Тема 26. Настройка рабочей среды для отладки драйверов режима ядра
C 15 февраля
Тема 27. Динамический анализ кода
Тема 28. Статический анализ кода
Тема 29. Разработка shell-кодов
Тема 30. Практическое занятие: ручная распаковка
Тема 31. Практическое занятие: анализ эксплойта
Тема 32. Практическое занятие: анализ вредоносного образца
Тема 33. Уязвимость Buffer Overflow
Тема 34. Уязвимость UAF
Тема 35. Буткиты
C 19 марта
Тема 36. Выбор темы и организация проектной работы
Тема 37. Консультация по проектам и домашним заданиям
Тема 38. Защита проектных работ
Скачать подробную программу

Выпускной проект

Вместе с участниками группы по ходу курса мы «разревёрсим» несколько реальных вредоносных программ, определим их функционал и в качестве выпускного проекта напишем программу для лечения.

None

Трудозатраты: 4 академических часа на занятия в неделю и 2-4 академических часа на домашнюю работу раз в 2 недели. Первый месяц занятия будут проходить в режиме 1 раз в неделю (по четвергам), для плавного погружения в процесс обучения.

Получить консультацию

Наш специалист свяжется с вами в ближайшее время. Если у вас возникли трудности в выборе курса или проблемы технического плана, то мы с радостью поможем вам.
Спасибо!
Мы получили Вашу заявку, в ближайшее время с Вами свяжется наш менеджер.

После обучения вы


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

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

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

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

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

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

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

Успешно закончил курс «Reverse engineering»
Выполнено практических заданий: 16 из 16

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

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

Зам. директора департамента образования
ООО “Отус Онлайн-Образование”
Вдовиченко М.M.

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

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

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

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

Успешно закончил курс «Reverse engineering»
Выполнено практических заданий: 16 из 16

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

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

Зам. директора департамента образования
ООО “Отус Онлайн-Образование”
Вдовиченко М.M.

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

Прошедшие открытые вебинары

Открытый вебинар — это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.
Анализ стиллера на .NET
Артур Пакулов
День открытых дверей
1 декабря 2021 года в 20:00
Оставьте заявку, чтобы получить доступ к записям прошедших мероприятий. Записи всех мероприятий появятся в этом блоке