Кто такой реверс-инженер?
Реверс-инженер — специалист по обратному инжинирингу, который исследует готовое устройство/программу и документацию, чтобы понять принцип работы или найти уязвимости, а затем внести изменения или воспроизвести устройство, программу или другой продукт с теми же функциями, но без прямого копирования.
Что делают реверс-инженеры и чем занимаются?
Обязанности, например, на одной из вакантных должностей:
- Поиск уязвимостей в программном обеспечении различных устройств;
- Обратный инжиниринг;
- Работа с фазером;
- Работа с дизассемблерами и отладчиками;
- Написание небольших программ и скриптов;
- Работа с прошивкой, загрузчиками, программным обеспечением и ядром Linux;
Что должен знать и уметь реверс-инженер?
Требования к обратному инжинирингу:
- Знание типов уязвимостей в бинарном коде, их причин, методов обнаружения и эксплуатации;
- Опыт тестирования на проникновение и исследования уязвимостей программного обеспечения;
- Уверенное владение инструментами дизассемблирования и отладки (IDA Pro, WinDBG и др.);
- Знание современных процессорных архитектур x86/64, ARM, PowerPC
- Уверенное понимание принципов работы Linux;
- Уверенное знание языков программирования C/C++/Python;
- Понимание технологии фаззинга;
Востребованность и зарплаты реверс-инженеров
Сейчас на странице поиска работы 197 вакансий, и спрос на реверс-инжиниринг растет с каждым месяцем.
Количество вакансий реверс-инженера с указанной зарплатой по всей России:
- от 95 000 руб. 65
- от 155 000 руб. 45
- от 215 000 руб. 12
- от 275 000 руб. 10
- от 335 000 руб. 6
Вакансии с указанным уровнем дохода в Москве:
- от 105 000 руб. 17
- от 165 000 руб. 8
- от 280 000 руб. 5
- от 340 000 руб. 4
Вакансии с указанным уровнем дохода в Санкт-Петербурге:
- от 95 000 руб. 1. 3
- от 155 000 руб. 7
- от 215 000 руб. 5
- от 275 000 руб. 3
- от 335 000 руб. 2
Как стать реверс-инженером и где учиться?
Варианты обучения реверс-инженеру с нуля:
- Самостоятельное обучение — всевозможные видео на YouTube, книги, форумы, туториалы и т д. Плюсы — дешево или очень доступно. Недостатки — нет последовательности, самообучение может быть малоэффективным, приобретенные навыки могут не потребоваться работодателю;
- Онлайн обучение. Вы можете пройти курс на одной из образовательных платформ. Такие курсы рассчитаны на людей без специальной подготовки, поэтому подойдут большинству людей. Обычно упор в онлайн-обучении делается на практику — это позволяет быстро пополнить портфолио и устроиться на работу сразу после обучения.
Ниже представлен обзор 3 лучших онлайн-курсов.
3 лучших курсов для обучения реверс-инженера: подробный обзор
1 место. Курс «Reverse-Engineering» — OTUS
https://otus.ru/lessons/revers-engineering/
Цена: 53 200 ₽
На практике вы освоите самые важные приемы реверс-инжиниринга: статический и динамический анализ. Вы познакомитесь с низкоуровневым и системным программированием, подробно разбирая аспекты внутренней структуры Windows. Вы должны изучить и классифицировать вредоносные программы, используя примеры реальных вредоносных программ, найденных в Интернете.
Реверс-инжиниринг кода (обратный инжиниринг кода) — это процесс анализа машинного кода программы, целью которого является понимание принципа работы, восстановление алгоритма, обнаружение недокументированных функций программы и т д. Основные методы реверс-инжиниринга — статические или динамические анализ кода. При статическом анализе исследователь дизассемблирует программный код с помощью специального программного обеспечения, а затем анализирует ассемблерный код. При динамическом анализе исследователь запускает код в изолированной среде (песочнице) или отлаживает и анализирует код динамически.
Для кого этот курс?
- Для системных программистов, разрабатывающих низкоуровневое ПО. Вы поймете, как работает код изнутри после компиляции, и сможете улучшить качество своих решений.
- Для начинающих вирусных аналитиков и специалистов по информационной безопасности. Вы изучите все методы обратного проектирования, которые вам необходимы, и получите всестороннее представление о вредоносных программах.
Как проходит практика?
Учащиеся получают стенды заранее и перед началом занятий раздают их локально. Вы будете выполнять упражнение на своей виртуальной машине во время вебинара под руководством преподавателя. На курсе вы найдете:
- упражнение на извлечение файлов
- Практический анализ формата PE (таблица импорта, таблица экспорта, таблица перемещения)
- Практический анализ программ-вымогателей, банковских троянов, ботов.
- Проектная работа, где вы пишете свою программу для лечения вредоносных программ.
Программа обучения:
Модуль 1. Низкоуровневое программирование на ассемблере для x8086/x64.
- Тема 1. Регистры процессора, работа с памятью
- Тема 2. Представление данных, кода, командных опкодеров. Основные команды YaA
- Тема 3. Арифметические и логические команды
- Тема 4. Цепная операция
- Тема 5. Подпрограммы
- Тема 6. Прерывания BIOS
- Тема 7. Написание пользовательской MBR
Модуль 2. Низкоуровневое программирование на языке ассемблера под MIPS.
- Тема 8. Регистры процессора. Работа с памятью
- Тема 9. Арифметика, логические команды. Инструкции условного/безусловного перехода
- Тема 10. Кодировщики команд
Модуль 3
- Тема 11. Режимы работы процессоров. Принцип работы процессора в ПМ. Сегментарная организация памяти
- Тема 12. Поиск в памяти
- Тема 13. Типы дескрипторов
Модуль 4: Windows внутри
- Тема 14. Основные объекты
- Тема 15. Управление памятью
- Тема 16: Диспетчер ввода/вывода
Модуль 5: Системное программирование
- Тема 17. Формат PE
- Тема 18. Таблица импорта
- Тема 19. Экспорт таблицы/Перенос таблицы
- Тема 20. Ловушки Windows
- Тема 21. Перехват функций WinApi
- Тема 22. Программирование оригинальных приложений
- Тема 23
- Тема 24. Сервисное программирование
- Тема 25
Модуль 6
- Тема 26. Динамический анализ кода
- Тема 27. Статический анализ кода
- Тема 28. Разработка шелл-кодов
- Тема 29. Практика: ручная распаковка
- Тема 30. Практика: анализ использования
- Тема 31. Практика: анализ вредоносных образцов
- Тема 32. Уязвимость, связанная с переполнением буфера
- Тема 33. Уязвимость UAF
- Тема 34. Буткиты
Модуль 7. Модуль проекта
- Тема 35. Выбор темы и организация проектной работы
- Тема 36
- Тема 37. Охрана инженерных работ.
Дипломная работа:
Вместе с участниками группы в ходе курса мы «отреверсим» несколько реальных вредоносных программ, определим их функционал и напишем программу для лечения в качестве итогового проекта.
После обучения вы
- получать материалы по всем пройденным занятиям (видеокурса, дополнительные материалы, итоговый проект для добавления в портфолио)
- научиться читать ассемблерный код
- научиться работать со специализированным ПО для реверс-инжиниринга (IDA Pro, WinDBG, OllyDbg, Hiew)
- овладеть теорией и практиковать основные методы статического и динамического анализа кода
- повысить свою ценность и конкурентоспособность как специалиста
- получить сертификат о прохождении курса.
2 место. Курс «Reverse Engineering and Exploit Development» — Udemy
https://www.udemy.com/course/reverse-engineering-and-exploit-development/
Цена: 4 690 ₽
Чему вы хотите научиться:
- Узнайте больше о различных инструментах разворота
- Узнайте больше о распространенных уязвимостях и о том, как их найти
- Вы познакомитесь с простыми эксплойтами, используя веб-ресурсы и используя ARM.
Материал курса
12 секций, 70 лекций
- Начиная
- Реверсирование скомпилированных приложений Windows
- Реверсирование скомпилированных приложений OS X
- Реверсирование скомпилированных приложений Linux
- Откат приложений Android
- Найдите другие уязвимости
- Простые эксплойты
- Использовать полезную нагрузку
- Усложняет обнаружение эксплуатации
- Чистое использование
- ARM-эксплуатация
- Будущие направления.
3 место.Курс «2MC: Reverse Engineering» — Coursera
https://www.coursera.org/lecture/leadership-influence/2mc-reverse-engineering-Egfjn
Стоимость: бесплатно
Программа курса:
- Ориентация курса
Вы познакомитесь с курсом, вашими одноклассниками и нашей учебной средой. Ориентация также поможет вам получить технические навыки, необходимые для прохождения курса. - Неделя 1: Станьте лидером
Узнайте, каково это – занять руководящую должность. Узнайте, насколько важны ваши ценности и брендинг во время этого перехода. - Неделя 2: Влияние, убеждение и переговоры
Узнайте, как влияние и убеждение являются ключом к лидерству, и некоторые основные концепции и навыки ведения переговоров. Узнайте больше об эффективной коммуникации. - Неделя 3: Сложные разговоры в качестве лидера
Развить сложные коммуникативные навыки, в том числе давать и получать обратную связь и работать с жалобами. - Неделя 4: Это твоя жизнь — живи хорошо
Соберите навыки и знания, полученные на всех курсах, и узнайте о важности вашего соответствия организации. Подумайте о важности обучения в качестве лидера и спланируйте, что будет дальше.