Курс появился в 2009 году и проводился в 6 семестре (2 семестр III курса). С 2014 года курс проводится в 6, 7 семестрах.
Целью курса является изучение низкоуровневого программирования и архитектуры операционных систем в контексте компьютерной безопасности.
Изучаемые темы:
- Низкоуровневое программирование
- системное программирование для процессоров архитектуры IA-32;
- защищённый режим работы процессоров архитектуры IA-32;
- управление аппаратным обеспечением;
- BIOS;
- загрузочный код MBR;
- Создание и исполнение кода
- компиляция и линковка;
- форматы исполняемых файлов (PE, ELF);
- загрузчик исполняемых файлов;
- динамические библиотеки;
- Операционные системы семейства Windows NT
- интерфейс системных библиотек и системных вызовов;
- архитектура системы;
- архитектура ядра;
- драйверные модели (NT-legacy, WDM, WDF);
- программирование драйверов режима ядра;
- создание специализированных драйверов (драйверы-фильтры, сетевые драйверы, драйверы файловых систем);
- создание драйверов систем безопасности;
- Операционная система Linux
- интерфейс системных библиотек и системных вызовов;
- архитектура ядра;
- программирование драйверов режима ядра;
- сетевые драйверы;
- создание драйверов систем безопасности;
- Руткиты режима ядра
- перехват (системных вызовов, обработчиков прерываний, обработчиков ввода/вывода, API-функций ядра);
- скрытие (процессов, потоков, файлов, сетевых соединений);
- детектирование руткитов;
- противодействие обнаружению.