Курс Реверс на Windows

Для чего курс

Курс позволяет подробно изучить основные направления реверсинга приложений под ОС Windows. В курсе подробно рассматриваются команды языка Ассемблер, проводится детальный разбор приложений различных уровней сложности, начиная от специальных задач типа crackme и заканчивая рабочими приложениями 32/64 битной архитектуры и .NET. В курсе разбираются различные техники, используемые исследователями для поиска уязвимостей в приложениях и эксплуатации этих уязвимостей. Также рассматриваются примеры вредоносных приложений различных типов и методы заражения машин жертв, используемые разработчиками вредоносного ПО. По завершению курса слушателям предлагается выполнить и защитить итоговую проектную работу.

Записаться на курс у менеджера

Кому будет полезен курс

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

Бесплатный доступ на 7 дней можно получить здесь

Старт зимнего потока - 1 декабря 2022 года

  • Продолжительность обучения: 6 месяцев
  • В неделю уроков: 2
  • В месяц уроков: 8
  • Форма обучения: дистанционная, без отрыва от трудовой деятельности

Цена

  • При оплате в ноябре 59.990 руб.

Возможна оплата в рассрочку на 3 - 24 месяца.

Программа курса «Реверсивный инжиниринг ПО под ОС Windows»

  1. Общее представление о языке ассемблера и реверсивном инжиниринге программ. Зачем это нужно в информационной безопасности. Примеры того, чему мы должны научиться.
  2. Обзор инструментария: компиляторы, дизассемблеры отладчики. Решения для Windows.
  3. Основы языка ассемблер: команды и директивы, структуры программ. Регистры процессора, работа с памятью. Разные способы написания программ.
  4. Модели управления памятью в различных типах процессоров, адресация логическая и физическая. Страничная организация памяти. Команды для работы с памятью.
  5. Флаги и команды перехода. Представление данных в памяти. Представление команд. Опкоды. Методы написания программ с помощью различных опкодов. Простейшие механизмы обхода сигнатурных антивирусов.
  6. Работа со строками. Сравнение строк, поиск в строке, пересылка строк. Как выглядят типовые ошибки при работе с памятью.
  7. Подпрограммы и соответствующие регистры. Стек наше все. Отличия JMP от RET. Особенности реализации в 64-битной архитектуре.
  8. Арифметические операции и необходимые команды. Логические операции и команды. Написать программу для шифрования/дешифрования вводимых данных.
  9. Становимся исследователями кода: что такое крякмикс и где его взять. Разбор нескольких crackme начального уровня.
  10. Прерывания BIOS. Вывод на экран. Работа с файлами. Чтение/запись.
  11. Учимся решать крякмиксы различной сложности для освоения работы с дизассемблерами и отладчиками. Патчинг и написание кейгенов.
  12. Основы вирусной аналитики: Перехват прерывания. Подмена и реализация нового обработчика.
  13. Механизмы антиотладки. Process Environment Block, NtGlobalFlag, отладочные регистры. Разбор примеров. Плагины к отладчикам.
  14. Основы вирусной аналитики: Master Boot Record. Что это такое, зачем нужно. Написание кастомного MBR. Подготовка виртуалки к возможным падениям.
  15. Самомодифицирующийся код. Вирусный стиль программирования. Как это было на x86 и что можно сделать сейчас. Не/применимость данных технологий на современном оборудовании и ОС.
  16. Специфика ассемблера ОС Windows. Вызов функций API. Структура программ, создание окон. Цикл обработки очереди сообщений. Ассемблер MASM.
  17. Многозадачное программирование. Процессы и потоки. Взаимодействие потоков, семафоры. События. Взаимоисключения.
  18. Сетевое программирование. Стек TCP/IP. Модель OSI. IP адресация. Написание простейшего клиент-серверного приложения для обхода IDS.
  19. Криптография и ассемблер. Какие криптоалгоритмы существуют. Краткий разбор исходного кода основных криптоалгоритмов.
  20. И снова крякмиксы. Анализируем crackme с оконными интерфейсами и рассматриваем особенности перехватов вызовов API функций.
  21. Кольцевая архитектура защиты в ОС Windows. Драйверы ядра рабочей среды ОС. Объекты ядра. Настройка среды разработки. Написание простейшего драйвера.
  22. Диспетчер ввода-вывода. РЕ-формат файлов. MZ, Rich и Dan. Учимся анализировать заголовки файлов с помощью специальных утилит. Механизмы сокрытия кода в чужих выполнимых файлах.
  23. Основы вирусной аналитики. Таблица импорта. Внедрение кода в PE файл. Практикуемся во внедрении своего кода в чужие реальные приложения.
  24. Сообщения и ловушки в Windows. Перехват API функций. Учимся перехватывать вызовы различных функций.
  25. Native приложения. Работа с библиотекой ntdll.dll.
  26. Программирование сервисов и DLL на ассемблере.
  27. Основы вирусной аналитики. Различные методы добавления приложений в автозагрузку. Не только реестр. Получаем права System без входа в систему (не EthernalBlue).
  28. Основы багхантинга. Виды уязвимостей. Как их правильно искать. Автоматизируем фаззинг оконных приложений с помощью скриптов.
  29. Основы вирусной аналитики. Тестовые среды для анализа работы приложений. Cuckoo и Sandboxie. Как вредонос может попытаться переиграть песочницу.
  30. Основы багхантинга. Разработка shell кода. Особенности написания, неправильные байты. Примеры.
  31. Основы вирусной аналитики. Все о вредоносах. Напоминание о ст. 273 УК РФ. Разбор исходного кода вируса.
  32. Основы вирусной аналитики. Напоминание о ст. 273 УК РФ. Обсуждение червей. Разбор исходного кода червя, особенности.
  33. Основы вирусной аналитики. Напоминание о ст. 273 УК РФ. Обсуждение шифровальщиков. Разбор исходного кода шифровальщика.
  34. Основы вирусной аналитики. Напоминание о ст. 273 УК РФ. Обсуждение загрузчиков. DGA и механизмы взаимодействия с C&C.
  35. Основы вирусной аналитики. Код без кода. Возвратно-ориентированное программирование. Преимущества и недостатки.
  36. Основы вирусной аналитики. Буткиты. Разбор примера.
  37. Учимся обнаруживать запуск под виртуальной машиной, песочницей или в контейнером. Основные методы.
  38. Обсуждение тем проектных работ. Постановка задачи.
  39. Консультации по проектным работам.
  40. Защита проектной работы.
  41. Заключительное занятие. Рекомендации по дальнейшему самостоятельному развитию.

Записаться на курс