Занятие 1. 2 октября. Утилиты пакета GNU binutils: ar, strings, strip, nm, size, readelf, objdump. Динамические библиотеки и динамическая компоновка. Перехват вызовов функций. Позиционно независимый код. PDF
Занятие 2. 9 октября. Краткий обзор архитектуры x86-64, нововведения по сравнению с x86. Регистры общего назначения, регистры XMM. Инструкции базового набора, примеры векторных и скалярных инструкций наборов SSE. Режимы адресации в архитектуры x86-64. Кодировка инструкции. Адресация относительно счётчика инструкций. Режимы работы процессора: «длинный» режим, legacy-режим. Подрежимы «длинного» режима: 64-разрядный режим и режим совместимости. Отличия между режимами. Соглашения о связях: System V, Microsoft. Обзор дальнейших расширений набора инструкций: AVX, AVX2, AES. PDF
Занятие 3. 16 октября. Современные виртуальные машины, часть 1. Определение виртуальной машины. Классификация виртуальных машин и их примеры. Применение виртуальных машин. PDF
Занятие 4. 23 октября. Современные виртуальные машины, часть 2. Эмуляция системы команд процессора. Интерпретация, динамическая двоичная трансляция,
виртуализация. Теорема Попека-Гольдберга (достаточное условие
существования эффективной виртуальной машины). PDF
Занятие 5. 30 октября. Практические задачи, требующие анализа программ с точки зрения безопасности. Программно-аппаратные архитектуры, код которых
необходимо анализировать. Объекты анализа при анализе исходного и
бинарного кода. Сравнение статического и динамического подходов.
Актуальные направление исследований. Проблемы, возникающие при
дизассемблировании и получении трасс программ. Классификация средств
защиты от анализа. Примеры алгоритмов и программных средств анализа: IDA Pro, Valgrind, … PDF
Занятие 6. 5 ноября. 1-я часть: архитектура процессора ARM, ее особенности с точки зрения разработки оптимизирующего компилятора, а также примеры оптимизаций, выполненных в ИСП РАН в компиляторе GCC для данной архитектуры.
2-я часть: структура и особенности JavaScript-движка в WebKit, особенности JavaScript c точки зрения оптимизирующего компилятора. PDF
Занятие 7. 20 ноября.
Занятие 8. 27 ноября.
Pingback: Новости факультатива | Архитектура ЭВМ и язык ассемблера