Сергей Попов
Кодебай
Курс «Введение в Реверс инжиниринг» научит вас изучать готовые исполняемые файлы без наличия исходного кода на компилируемых языках, используя интерактивный дизассемблер IDA. Упрощённо это называется реверс-инжиниринг. Самые главные темы в курсе - это реверс-инжиниринг программ, написанных на языке ассемблера и Си. Программы на интерпретируемых языках рассмотрены не будут.
Вы узнаете, как выглядит ассемблерный код готовых программ, научитесь различать многие конструкции языка Си. Также вы получите навык работы с интерактивным дизассемблером IDA, который является стандартом во многих компаниях, через практику на готовых приложениях! Кроме IDA вы будете знать про другие инструменты, которые помогут вам при анализе приложений.
Внимание! для прохождения курса очень желательно знать основы программирования до ООП. Например, что такое массивы, переменные, функции. Вам достаточно изучить любой язык программирования до тем, связанных с ООП.
- Длительность курса 4 месяца (2 урока в неделю)
6-месячный онлайн-курс (REFB) «Введение в реверс-инжиниринг»
Запишитесь за 3 месяца до старта потока со скидкой 10%
reverse-intro.codeby.school
Краткая программа курса «Введение в Реверс Инжиниринг» или Reverse Engineering For Beginners (REFB)
1.0. Факультатив с информацией из электроники
1.1 Введение в электронику для реверс-инжиниринга
1.2. Реальный и защищённый режимы работы процессора
2.0. Компилируемые ЯП, инструменты и подготовка рабочего окружения
2.1. Языки программирования: компилируемые, интерпретируемые и их различия
2.2. Подготовка рабочего окружения
3.0. Ассемблер
3.1. Вводная часть
3.2. Начинаем изучать регистры и стек
3.3. Регистр флагов и переменные с константами в ассемблере
3.4. Директивы, назначение которых схоже с define в Си и стандарт IEEE-754
3.5. Инструкция MOV и адресации в ассемблере
3.6. Арифметические операции в ассемблере
3.7. BCD-формат чисел и побитовые сдвиги
3.8. Логические инструкции и условия в ассемблере
3.9. Переходы к фрагментам кода в ассемблере
3.10. Циклы в ассемблере и работа со строками
3.11. Процедуры в ассемблере, некоторые особенности ассемблера для архитектуры x64 и что будет дальше
4.0. Язык Си и реверс-инжиниринг программ без наличия исходного кода
4.1. Подготовка рабочего окружения
4.2. Типы данных, присваивания, некоторые операции
4.3. Условия и switch
4.4. Циклы
4.5. Функции
4.6. Препроцессор С
4.7. Изучаем указатели
4.8. Массивы
4.9. Структуры
4.10. Форматы исполняемых файлов
4.11. Практикуемся ещё!
- Реверс-инжиниринг первой программы
- Реверс-инжиниринг второй программы
- Реверс-инжиниринг третьей программы
- Реверс-инжиниринг четвёртой программы
- Реверс-инжиниринг пятой программы