+
Действующая цена700 499 руб.
Товаров:
На сумму:

Электронная библиотека диссертаций

Доставка любой диссертации в формате PDF и WORD за 499 руб. на e-mail - 20 мин. 800 000 наименований диссертаций и авторефератов. Все авторефераты диссертаций - БЕСПЛАТНО

Расширенный поиск

Восстановление алгоритма по набору бинарных трасс

  • Автор:

    Соловьев, Михаил Александрович

  • Шифр специальности:

    05.13.11

  • Научная степень:

    Кандидатская

  • Год защиты:

    2013

  • Место защиты:

    Москва

  • Количество страниц:

    123 с. : ил.

  • Стоимость:

    700 р.

    499 руб.

до окончания действия скидки
00
00
00
00
+
Наш сайт выгодно отличается тем что при покупке, кроме PDF версии Вы в подарок получаете работу преобразованную в WORD - документ и это предоставляет качественно другие возможности при работе с документом
Страницы оглавления работы

Аннотация
Целью диссертационной работы является исследование и разработка метода восстановления в машинно-независимом виде алгоритма по набору бинарных трасс. В работе описана в общем виде процедура восстановления алгоритма и предложены оригинальные подходы к объединению нескольких трасс одной программы и моделированию в машинно-независимом виде семантики её инструкций.
Рассматриваемая проблема актуальна в связи с необходимостью аудита безопасности программных решений, поставляемых в виде бинарного кода, в случаях, когда они применяются для обработки данных, требующих контроля доступа. Не менее важны и задачи исследования алгоритмов, заложенных в изначально вредоносном коде. В настоящее время исследования в этой области проводятся во многих научных центрах, а соответствующие инструменты предлагаются различными коммерческими организациями.
В диссертации получены следующие основные результаты.
1. Разработан метод согласованного использования нескольких трасс выполнения одной программы при её динамическом анализе. Метод учитывает возможную модификацию кода программы в процессе её выполнения и поддерживает возможность дополнения рассматриваемого набора новыми трассами в ходе анализа.
2. Разработан метод моделирования операционной семантики машинных инструкций, позволяющий представлять восстановленные алгоритмы в машинно-независимом виде, и соответствующий язык виртуальной машины. Предложенный метод пригоден для широкого класса целевых машин и может использоваться при анализе системного кода.
3. Разработан язык спецификаций для описания моделей машинных инструкций и описаны такие модели для базовых наборов инструкций процессорных архитектур х86 и Х86-64, ARM, PowerPC и MIPS.
4 На основе предложенных методов и языка спецификаций разработан и реализован набор инструментов, подсистема спецификации моделей машинных инструкций; подсистема оптимизации и устранения артефактов трансляции; подсистема конкретной интерпретации. Проведена интеграция подсистем со средой анализа бинарного кода, разрабатываемой в ИСП РАН.

Оглавление
1 Введение
2 Обзор работ
2.1 Средства моделирования семантики машинных инструкций
2.2 Системы анализа бинарного кода
2.3 Выводы
3 Восстановление алгоритма
3.1 Исходные данные
3.2 Объединение связанных трасс
3.2.1 Статический код
3.2.2 Динамический код
3.2.3 Дополнительные уточнения
3.2.4 Композиция графов нескольких трасс
3.3 Моделирование операционной семантики
3.3.1 Атомы
3.3.2 Операции
3.3.3 Адресные пространства
3.3.4 Временные переменные
3.3.5 Операторы
3.3.6 Примеры моделей
3.3.7 Поток управления модели
3.3.8 Поток данных модели
3.3.9 Корректность моделей
3.3.10 Трансляция
3.4 Выделение алгоритма
3.5 Оптимизационные преобразования
3.5.1 Нумерация значений
3.5.2 Устранение излишних загрузок и выгрузок
3.5.3 Удаление мёртвого кода

3.5.4 Пример работы оптимизационных преобразований
3.6 Представление результата
3.6.1 Машинно-независимый листинг
3.6.2 Машинно-независимая блок-схема
4 Программное обеспечение
4.1 Подсистема спецификации
4.1.1 Спецификация машины
4.1.2 Архив машины
4.1.3 Компилятор спецификаций
4.1.4 Компоненты интеграции со средой анализа
4.2 Подсистема конкретной интерпретации
4.2.1 Механики операций
4.2.2 Механики адресных пространств
4.2.3 Кодогенерация
4.3 Технические ограничения
5 Применение
5.1 Пример
5.2 Пример
5.3 Пример
6 Заключение
Список иллюстраций
Список таблиц
Литература
А Язык спецификаций машин

связанных с намеренным противодействием анализу, к целенаправленно создающим трудности, в особенности для статического анализа.
1. Выполнение динамическим редактором связей загрузки и выгрузки динамических библиотек. Диапазон адресов вновь загруженной библиотеки может пересечься с диапазоном адресов, принадлежавшим уже выгруженной. Таким образом в разные моменты времени в одних и тех же адресах памяти будет находиться различный код.
2. Использование «трамплинов» и отложенного связывания. При первом переходе по адресу динамически связываемой функции управление может быть передано на подпрограмму, выполняющую отложенное связывание. После того, как связывание будет выполнено, подпрограмма исправит «трамплин» таким образом, чтобы при последующих вызовах функция вызывалась напрямую, и передаст на неё управление в первый раз.
3. Наличие в программе механизмов расшифровки, декомпрессии, динамической генерации кода, переписывающих либо уже не нужные и отброшенные фрагменты программы; либо, если такие механизмы работают с программой по частям, то использующих один перезаписываемый буфер для очередной расшифрованной, распакованной или сгенерированной части программы.
4. Полиморфная природа программы или её части. Этот случай отличается от предыдущего тем, что чаще всего очередной вариант кода программы строится на основе предыдущего, что дополнительно усложняет анализ. Наиболее часто подобный механизм встраивается во вредоносный код, в особенности в вирусы, с целью помешать сигнатурному анализу в антивирусном ПО.
В предлагаемом в настоящей работе методе не производится различение причин динамического изменения кода. Все возможности обрабатываются единообразно, что с одной стороны имеет достоинство универсальности метода, но с другой стороны игнорирует дополнительные «подсказки» о поведении программы, содержащиеся в этих причинах. Вместе с тем, определённое представление о природе динамического кода в рассматриваемой программе даёт описанный выше эволюционный граф.
Вне зависимости от смысла, вкладываемого в эпизод динамического изменения кода программы, он происходит по одному из следующих двух сценариев.
1. Программа, выполняющаяся в рассматриваемой системе, осуществляет запись значений в память. Эта память может принадлежать как этой программе, так и какой-либо другой (для этого операционная система должна поддерживать возможность подключения потока выполнения одного процесса к адресному пространству другого). Записанные значения либо изменяют уже когда-либо выполнявшийся код, либо формируют код, который будет выполнен в будущем. Так или

Рекомендуемые диссертации данного раздела

Время генерации: 0.145, запросов: 967