Курс появился в 2009 году и проводился в 6 семестре (2 семестр III курса). С 2014 года курс проводится в 6, 7 семестрах.

Целью курса является изучение низкоуровневого программирования и архитектуры операционных систем в контексте компьютерной безопасности.

Изучаемые темы:

  1. Низкоуровневое программирование
    • системное программирование для процессоров архитектуры IA-32;
    • защищённый режим работы процессоров архитектуры IA-32;
    • управление аппаратным обеспечением;
    • BIOS;
    • загрузочный код MBR;
  2. Создание и исполнение кода
    • компиляция и линковка;
    • форматы исполняемых файлов (PE, ELF);
    • загрузчик исполняемых файлов;
    • динамические библиотеки;
  3. Операционные системы семейства Windows NT
    • интерфейс системных библиотек и системных вызовов;
    • архитектура системы;
    • архитектура ядра;
    • драйверные модели (NT-legacy, WDM, WDF);
    • программирование драйверов режима ядра;
    • создание специализированных драйверов (драйверы-фильтры, сетевые драйверы, драйверы файловых систем);
    • создание драйверов систем безопасности;
  4. Операционная система Linux
    • интерфейс системных библиотек и системных вызовов;
    • архитектура ядра;
    • программирование драйверов режима ядра;
    • сетевые драйверы;
    • создание драйверов систем безопасности;
  5. Руткиты режима ядра
    • перехват (системных вызовов, обработчиков прерываний, обработчиков ввода/вывода, API-функций ядра);
    • скрытие (процессов, потоков, файлов, сетевых соединений);
    • детектирование руткитов;
    • противодействие обнаружению.