Центр дистанционного обучения КнАГУ

Distance Education Center of KnASU

Обратная разработка программ

Аннотация

Данный курс посвящен анализу приложений без исходных кодов. Рассмотрены различные операционные системы, различные отладчики и дизассемблеры

О курсе

Курс посвящен

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

При прохождении тестов используйте кодовое слово - Reverse.

"Не ищи ошибку, а ищи её решение". - Генри Форд.

Расписание курса

Модуль: Основные сведения об assembler.

Введение

Основные сведения (Традиционная лекция)
Правовое поле, обфускация и деобфускация (Дополнительный материал)

Основы функционирования ЭВМ

Функционирование ЭВМ и assembler (Традиционная лекция)
Функционирование ЭВМ и assembler (Рубежный тест)
Регистры (Традиционная лекция)
Регистры (Рубежный тест)
Флаги (Традиционная лекция)
Флаги (Рубежный тест)
Адресация реальный и защищенный режим (Традиционная лекция)
Адресация реальный и защищенный режим (Рубежный тест)

Память и логика организации исполнения программ

Трансляция и сборка программ для 16-разрядной DOS (Традиционная лекция)
Трансляция и сборка программ для 16-разрядной DOS (Лабораторная работа)
Стэк, переходы, циклы (Традиционная лекция)
Стэк, переходы, циклы (Рубежный тест)
Подпрограммы и прерывания (Традиционная лекция)
Подпрограммы и прерывания (Рубежный тест)
Трансляция и сборка программ для 16- и 32- разрядной Windows (Традиционная лекция)
Трансляция и сборка программ для 16- и 32- разрядной Windows (Лабораторная работа)
Цикл обработки сообщений от окна в Windows (Традиционная лекция)
Цикл обработки сообщений от окна в 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 (Домашнее задание)

Модуль: Итоговая работа.

Итоговая работа

Расчетно-графическая работа (Расчетно-графическая работа)

Информационные ресурсы

1. Трещев И.А. Низкоуровневый анализ машинного кода. Издательские решения, 2020 - 165с.
2. Касперски К. Искусство дизассемблирования. БХВ-Петербург, 2008 - 888с.
3. https://wasm.in/blogs/vvedenie-v-krehking-s-nulja-ispolzuja-ollydbg-glava-1.433/
4. https://wasm.in/threads/perevod-vvedenie-v-reversing-s-nulja-ispolzuja-ida-pro.32249/
5. Тихомиров В.А. Операционные системы реального режима работы микропроцессора. Учебное пособие. Изд. ИНИТ КНАГТУ, 2012 г. -127с.
6. Тихомиров В.А. Операционные системы защищенного режима работы микропроцессора.Учебное пособие. Изд. ИНИТ КНАГТУ, 2014 г. -136с.
7. Хусаинов А.А. Организация ЭВМ и систем. Учебное пособие. Изд. ИНИТ КНАГТУ, 2014 г. -98с.

Дополнительный инструментарий

Операционная система 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 % от максимально возможной суммы баллов – «отлично» (высокий (максимальный) уровень).



Занятий 39

Часов 108

Недель 16

ЧАСОВ В НЕДЕЛЮ 7

КнАГУ

КОМСОМОЛЬСКИЙ-НА-АМУРЕ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

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