Содержание курса
1. Введение
7 уроков
1 210
1 174
17м
45
Закрытый
1.1
🧑🏫 Введение
↗
375
375
3м 57с
10
Закрытый
1.2
Знакомство с языком программирования Assembler
↗
208
208
2м 15с
7
Закрытый
1.3
Особенности работы с языком программирования Assembler
↗
162
162
2м 47с
7
Закрытый
1.4
Виртуальные инструменты (онлайн-компиляторы)
↗
142
142
3м 24с
7
Закрытый
1.5
Установка и настройка NASM
↗
121
99
3м 47с
6
Закрытый
1.6
Установка и настройка FASM
↗
99
85
3м 56с
4
Закрытый
1.7
👨💻 Об авторе
↗
103
103
1м 6с
4
2. Введение в ассемблер
4 урока
358
358
10м
12
Закрытый
2.1
Что такое ассемблер и зачем он нужен?
↗
105
105
2м 53с
4
Закрытый
2.2
Отличия от высокоуровневых языков (C, Python)
↗
90
90
3м 9с
3
Закрытый
2.3
Архитектуры процессоров (x86, ARM, RISC-V)
↗
85
85
2м 48с
3
Закрытый
2.4
Регистры, флаги, машинные команды
↗
78
78
3м 47с
2
3. Основы синтаксиса и работа с ассемблером
4 урока
243
243
10м
3
Закрытый
3.1
Синтаксис Intel vs AT&T
↗
70
70
2м 21с
2
Закрытый
3.2
Инструменты: NASM, MASM, GAS, FASM
↗
60
60
2м 22с
1
Закрытый
3.3
Первая программа "Hello, World!" под Linux/Windows
↗
64
64
3м 39с
0
Закрытый
3.4
Компиляция и линковка
↗
49
49
2м 12с
0
4. Работа с данными и регистрами
4 урока
173
173
11м
7
Закрытый
4.1
Целочисленные типы данных (байт, слово, двойное слово)
↗
56
56
2м 14с
2
Закрытый
4.2
Перемещение данных (mov, lea)
↗
44
44
3м 52с
1
Закрытый
4.3
Арифметические операции (add, sub, mul, div)
↗
42
42
3м 12с
2
Закрытый
4.4
Логические операции (and, or, xor, not)
↗
31
31
3м 49с
2
5. Управление потоком выполнения
3 урока
82
82
13м
6
Закрытый
5.1
Условные переходы (jmp, je, jne, jg, jl)
↗
31
31
3м 0с
2
Закрытый
5.2
Циклы (loop, cmp + переходы)
↗
29
29
6м 10с
2
Закрытый
5.3
Процедуры и стек (call, ret, push, pop)
↗
22
22
4м 52с
2
6. Работа с памятью и указателями
3 урока
63
63
11м
3
Закрытый
6.1
Адресация памяти (прямая, косвенная, индексная)
↗
25
25
4м 49с
1
Закрытый
6.2
Сегменты памяти (.data, .bss, .text)
↗
20
20
3м 49с
1
Закрытый
6.3
Динамическое выделение памяти (системные вызовы malloc, brk)
↗
18
18
4м 21с
1
7. Взаимодействие с ОС и системные вызовы
3 урока
55
55
9м
3
Закрытый
7.1
Системные вызовы в Linux (int 0x80, syscall)
↗
19
19
2м 5с
1
Закрытый
7.2
Вызовы WinAPI в Windows
↗
21
21
3м 46с
1
Закрытый
7.3
Работа с файлами и вводом-выводом
↗
15
15
4м 20с
1
8. Оптимизация и отладка
3 урока
62
62
8м
4
Закрытый
8.1
Анализ ассемблерного кода, сгенерированного компилятором
↗
23
23
2м 26с
1
Закрытый
8.2
Использование отладчика (GDB, OllyDbg, x64dbg)
↗
20
20
3м 55с
1
Закрытый
8.3
Оптимизация скорости и размера кода
↗
19
19
3м 3с
2
9. Практические применения ассемблера
4 урока
114
114
11м
8
Закрытый
9.1
Встраиваемые системы
↗
30
30
3м 46с
2
Закрытый
9.2
Обратная разработка (реверс-инжиниринг)
↗
29
29
2м 27с
2
Закрытый
9.3
Написание шеллкодов и эксплоитов
↗
31
31
4м 52с
2
Закрытый
9.4
Оптимизация критических участков в высокоуровневых языках
↗
24
24
2м 33с
2
10. Решение интересных задач
1 урок
49
14
9м
2
Закрытый
10.1
Решение интересных задач
↗
49
14
9м 9с
2
11. 📄 Подведение итогов. Практическое задание на самопроверку
1 урок
38
13
1м
2
Закрытый
11.1
📄 Подведение итогов. Практическое задание на самопроверку
↗
38
13
1м 9с
2
12. 📂 Выдача сертификата Stepik. Поздравление об окончании курса 🎆
1 урок
32
32
0м
2
Закрытый
12.1
📂 Выдача сертификата Stepik. Поздравление об окончании курса 🎆
↗
32
32
0м 4с
2
13. Assembler в информационной безопасности
6 уроков
12
7
0м
0
Закрытый
13.1
Stack Canaries (SSP) - что это и как обходить
↗
6
2
-
0
Закрытый
13.2
DEP/NX - защита стека от выполнения
↗
2
1
-
0
Закрытый
13.3
ASLR - рандомизация адресов (и утечки адресов)
↗
1
1
-
0
Закрытый
13.4
PIE (Position Independent Executable)
↗
1
1
-
0
Закрытый
13.5
RELRO - защита GOT/PLT
↗
1
1
-
0
Закрытый
13.6
CFI/CET - современные защиты control flow
↗
1
1
-
0