|
|
|
Бураев О.В., Иванов М.А., Тетерин И.И. Ассемблер в задачах защиты информации
(2-е издание).
М.: КУДИЦ-ОБРАЗ 2004, ISBN 5-9279-0027-3.
В книге рассмотрен язык Ассемблера для процессоров семейства Intel 80x86, а также различные аспекты применения этого языка в области защиты информации.
Книга состоит из шести глав. Глава 1 это учебное пособие по программированию на Ассемблере в среде DOS для начинающих. В ней приведено описание архитектуры компьютера IBM PC, системы команд, способов адресации данных, системных функций, некоторых приемов программирования. Вторая и третья главы книги рассчитаны на более подготовленного читателя. Глава 2 содержит описание криптографических методов и возможные способы решения задач контроля целостности и обеспечения секретности информации. Глава 3 посвящена описанию возможностей специфического применения Ассемблера, таких как защита программ от статического и динамического исследования, борьба с вирусами, «изощренное» программирование. Глава 4 содержит описание особенностей программирования на Ассемблере в среде Linux. В главе 5 обсуждаются инструментальные средства и базовые приемы создания приложений для ОС Windows. В главе 6 описывается методика оптимизации программ на языке Ассемблер с учетом особенностей архитектур процессоров Pentium различных поколений.
СКАЧАТЬ 4,4 Mb
|
СОДЕРЖАНИЕ
Введение........................................................................................................................................3
Глава 1 Основы программирования на Ассемблере IBM PC...........................................................7
1.1. Архитектура IBM PC...............................................................................................................7
1.2. Основы программирования................................................................................................... 36
1.3. Система прерываний IBM PC............................................................................................... 86
Глава 2 Программирование алгоритмов защиты информации....................................................115
2.1. Классификация методов защиты информации.....................................................................115
2.2. Стохастические методы защиты информации......................................................................118
2.3. Алгоритмы генерации псевдослучайных последовательностей (ПСП).................................121
2.4. Конечные поля.....................................................................................................................140
2.5. CRC-коды.............................................................................................................................158
2.6. Стохастическое преобразование информации......................................................................166
2.7. Поточный шифр RС4...........................................................................................................194
2.8. Стандарт криптографической защиты XXI века - Advanced Encryption Standard
(AES)........202
2.9. Блочный шифр GATE..........................................................................................................213
2.10. Особенности программной реализации алгоритмов защиты информации.........................222
Глава 3 Программные средства защиты информации.................................................................226
3.1. Защита программ от исследования......................................................................................226
3.2. Антивирус из вируса...........................................................................................................244
Глава 4 Ассемблер в операционной системе Linux......................................................................272
4.1. Синтаксис............................................................................................................................273
4.2. Системные вызовы...............................................................................................................274
4.3. Как это делают хакеры.........................................................................................................275
4.4. Реализация эксплойта..........................................................................................................279
4.5. Chroot shell -code..................................................................................................................281
4.6. Advanced execve() shell-code.................................................................................................283
4.7. Нестандартное использование функции execve().................................................................284
4.8. Использование бита s..........................................................................................................285
4.9. Использование symlink()......................................................................................................286
4.10. Написание shell-кода с использованием системных вызовов socket().................................287
4.11. Защита от remote exploit.....................................................................................................294
4.12. ELF-инфекторы..................................................................................................................295
4.13. Использование lnline-ассемблерных вставок.......................................................................301
4.14. Отладка. Основы работы с GDB.........................................................................................307
Глава 5 Программирование на Ассемблере под Windows............................................................312
5.1. Выбор инструментария........................................................................................................312
5.2. Начало работы.....................................................................................................................314
5.3. Программа «Hello World».....................................................................................................318
5.4. Динамически загружаемые библиотеки................................................................................324
5.5. Разработка приложения вычисления контрольных сумм......................................................329
Глава 6 Оптимизация для процессоров семейства Pentium.........................................................357
6.1. Введение..............................................................................................................................357
6.2. Дополнительные источники.................................................................................................358
6.3. Вызов ассемблерных функций из языков высокого уровня..................................................359
6.4. Отладка................................................................................................................................361
6.5. Модель памяти.....................................................................................................................361
6.6. Выравнивание......................................................................................................................362
6.7. Кэш......................................................................................................................................363
6.8. Исполнение кода "в первый раз"..........................................................................................366
6.9. Задержка генерации адреса..................................................................................................367
6.10. Спаривание целочисленных инструкций (Р1 и РММХ).....................................................368
6.11. Разбивка сложных инструкций на простые (Р1 и РММХ)..................................................373
6.12. Префиксы (Р1 и РММХ)....................................................................................................374
6.13. Обзор конвейеров PPro, P2 и РЗ........................................................................................375
6.14. Раскодировка инструкций (PPro, P2 и РЗ).........................................................................376
6.15. Доставка инструкций (PPro, P2 и РЗ)................................................................................378
6.16. Переименование регистров (PPro, P2 и РЗ).......................................................................383
6.17. Изменение порядка выполнения инструкций (PPro, P2 и РЗ)............................................388
6.18. Вывод из обращения (PPro, P2 и РЗ).................................................................................390
6.19. Частичные задержки (PPro, P2 и РЗ).................................................................................391
6.20. Цепочечные зависимости (PPro, P2 и РЗ)..........................................................................396
6.21. Поиск узких мест (PPro, P2 и РЗ)......................................................................................398
6.22. Команды передачи управления..........................................................................................399
6.23. Уменьшение размера кода..................................................................................................418
6.24. Работа с числами с плавающей запятой (Р1 и РММХ).......................................................421
6.25. Оптимизация циклов (все процессоры)..............................................................................425
6.26. Проблемные инструкции....................................................................................................451
6.27. Специальные темы.............................................................................................................461
6.28. Список периодов выполнения инструкций для Р1 и РММХ..............................................478
6.29.Список периодов выполнения инструкций
и задержек микроопераций для PPro,P2 и Р3..484
6.30. Тестирование скорости......................................................................................................495
6.31. Сравнение различных микропроцессоров...........................................................................497
Литература..................................................................................................................................500
Приложение 1 Вариант реализации одного из первых советских вирусов..................................502
Приложение 2 Резидентный блокировщик доступа к директории..............................................506
Приложение 3 Реализация алгоритма шифрования RC4.............................................................511
Приложение 4 Реализация алгоритма шифрования Rijndael........................................................517
Приложение 5 Демонстрация механизма пермутации.................................................................528
|