Обратная разработка программ
Аннотация
Данный курс посвящен анализу приложений без исходных кодов. Рассмотрены различные операционные системы, различные отладчики и дизассемблерыО курсе
Курс посвящен
Данный курс является вводным к курсам связанным с обратной инженерией программного обеспечения. Целью курса является знакомство студентов с различным инструментарием и программным обеспечением используемым при проведении обратной разработки программ и анализом исполняемых файлов. В курсе используются различные технологии обучения - смешанные, традиционные.
При прохождении тестов используйте кодовое слово - Reverse.
"Не ищи ошибку, а ищи её решение". - Генри Форд.
Расписание курса
Модуль: Основные сведения об assembler.
Введение
- Основные сведения (Традиционная лекция)
- Правовое поле, обфускация и деобфускация (Дополнительный материал)
Основы функционирования ЭВМ
- Функционирование ЭВМ и assembler (Традиционная лекция)
- Регистры (Традиционная лекция)
- Флаги (Традиционная лекция)
- Адресация реальный и защищенный режим (Традиционная лекция)
- Адресация реальный и защищенный режим (Рубежный тест)
- Флаги (Рубежный тест)
- Регистры (Рубежный тест)
- Функционирование ЭВМ и assembler (Рубежный тест)
Память и логика организации исполнения программ
- Трансляция и сборка программ для 16-разрядной DOS (Традиционная лекция)
- Стэк, переходы, циклы (Традиционная лекция)
- Подпрограммы и прерывания (Традиционная лекция)
- Трансляция и сборка программ для 16- и 32- разрядной Windows (Традиционная лекция)
- Цикл обработки сообщений от окна в Windows (Традиционная лекция)
- Трансляция и сборка программ для 16- и 32- разрядной Windows (Лабораторная работа)
- Трансляция и сборка программ для 16-разрядной DOS (Лабораторная работа)
- Стэк, переходы, циклы (Рубежный тест)
- Подпрограммы и прерывания (Рубежный тест)
- Цикл обработки сообщений от окна в Windows (Лабораторная работа)
Использование TD и AFD, Hview
- Использование отладчиков в реальном режиме (Видеолекция)
- Использование отладчиков в реальном режиме (Рубежный тест)
Модуль: Обратная разработка приложений под Windows.
Использование OllyDBG
- Отладчик с возможностью просмотра исходного кода OllyDbg (Традиционная лекция)
- Пример отладки приложения (Дополнительный материал)
- Отладчик с возможностью просмотра исходного кода OllyDbg (Лабораторная работа)
Использование x32Dbg, x64Dbg
- Эволюция отладчиков с открытым кодом (Традиционная лекция)
- Пример отладки приложеиня (Дополнительный материал)
- Отладчик x64Dbg (Лабораторная работа)
Использование IDA Pro
- Интерактивный дизассемблер IDA (Традиционная лекция)
- Пример отладки приложения (Дополнительный материал)
- Отладчик IDA Pro (Лабораторная работа)
- Генерация серийного ключа (Дополнительный материал)
Модуль: Обратная разработка приложений под Linux.
Установка Ubuntu на виртуальную машину
- Установка дистрибутива Linux на виртуальную машину (Практическая работа)
Компиляция и сборка
- Сборка простого приложения с gcc,g++ (Традиционная лекция)
- Сборка простого приложения с gcc, g++ (Лабораторная работа)
Использование gdb
- Отладка с использованием gdb (Традиционная лекция)
- Отладка с использованием gdb (Лабораторная работа)
Реверс инжиниринг приложений
- root-me.org (Домашнее задание)
Модуль: Итоговая работа.
Итоговая работа
- Расчетно-графическая работа (Расчетно-графическая работа)
Информационные ресурсы
Дополнительный инструментарий
Операционная система Windows 7/8/8.1/10 (желательно иметь и 32 и 64 разрядные версии)
Офисный пакет Microsoft Office 2016 или аналогичный, например OpenOffice (распространяется свободно).
Обозреватель Google Chrome или аналогичный(распространяется свободно)
Эмулятор DosBox (распространяется свободно)
Компонивщик Turbo Assebler, Сборщик Turbo Linker, Отладчик Turbo Debbugger для MS DOS (распространяется свободно)
Компонивщик Turbo Assebler, Сборщик Turbo Linker, Отладчик Turbo Debbugger для 16-разрядных Microsoft Windows (распространяется свободно)
Компонивщик Turbo Assebler, Сборщик Turbo Linker, Отладчик Turbo Debbugger для 32-разрядных Microsoft
Windows (распространяется свободно)
Редактор Hexview/Hview (распространяется свободно).
Отладчик OllyDbg (распространяется свободно).
Отладчики x32Dbg и x64Dbg (распространяются свободно)
Интерактивный дизассемблер IDA Pro (ознакомительная версия распространяется свободно производителем).
Среда разработки Visual Studio 2019 (распространяется свободно в рамках политики лицензирования Comunity).
Операционная система Linux Ubuntu или аналог (распространяется бесплатно)
Программный гипервизор Virtual Box (распространяется бесплатно)
Оценивание и документы
Правила Формирования оценки
Лабораторные работы (7 шт.) |
10 баллов за работу |
Расчетно-графическая работа |
30 баллов за работу |
Система оценивания
Максимально возможная сумма баллов за курс - 70.
0 – 64 % от максимально возможной суммы баллов – «неудовлетворительно» (недостаточный уровень для промежуточной аттестации по дисциплине);
65 – 74 % от максимально возможной суммы баллов – «удовлетворительно» (пороговый (минимальный) уровень);
75 – 84 % от максимально возможной суммы баллов – «хорошо» (средний уровень);
85 – 100 % от максимально возможной суммы баллов – «отлично» (высокий (максимальный) уровень).