Разработка методик защиты программ от анализа и модификации на основе запутывания кода и данных

Разработка методик защиты программ от анализа и модификации на основе запутывания кода и данных

Автор: Щелкунов, Дмитрий Анатольевич

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

Научная степень: Кандидатская

Год защиты: 2009

Место защиты: Москва

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

Артикул: 4251407

Автор: Щелкунов, Дмитрий Анатольевич

Стоимость: 250 руб.

Разработка методик защиты программ от анализа и модификации на основе запутывания кода и данных  Разработка методик защиты программ от анализа и модификации на основе запутывания кода и данных 

ВВЕДЕНИЕ.
ГЛАВА 1. ПРОБЛЕМА ЗАЩИТЫ ПРОГРАММ ОТ КОМПЬЮТЕРНОГО ПИРАТСТВА И ПОСТАНОВКА ЗАДАЧИ ИССЛЕДОВАНИЯ.
1.1. Защита программ от анализа и модификации как фактор противодействия компьютерному пиратству
1.2. Современные методы защиты программ.
1.2.1. Методы, основанные на особенностях среды функционирования программы.
1.2.2. Автоматическая упаковка исполняемого модуля
1.2.3. Методы защиты программ, основанные на запутывании кода и данных .
1.3. Анализ существующих подходов к обфускации
1.3.1. Обфускация на основе виртуализации кода
1.3.2. Задачи обфускации в криптографии.
1.3.3. Обфускация по Бараку.
1.3.4. Обфускация на уровне промежуточного представления программы
1.3.5. Обфускация методом Вонга.
1.4. Постановка задачи исследования и общая схема ее решения
1.4.1. Особенности защиты программного обеспечения на основе существующих методов обфускации
1.4.2. Постановка задачи разработки методик защиты программ от анализа и модификации на основе запутывания кода и данных.
1.4.3. Общая схема решения задачи исследования
1.5. Выводы по главе 1
ГЛАВА 2. ПРАВИЛА ПОСТРОЕНИЯ ЗАПУТЫВАЮЩИХ
ПРЕОБРАЗОВАНИЙ
2.1. Функциональные свойства подпрограмм и отношения между ними.
ЛТполнота задачи деобфускации
2.3. Правила построения запутывающих преобразований.
2.4. Выводы по главе 2
ГЛАВА 3. РАЗРАБОТАННЫЕ МЕТОДИКИ ОБФУСКАЦИИ
3.1. Общая структура процесса обфускации
3.2. Обфускация на уровне промежуточного представления
3.2. Обфускация на уровне машинного кода
3.3. Контроль целостности запутанного кода
3.4. Метод запутывания графа потока управления при помощи сетей Петри.
3.5. Внедрение кода защиты в приложение.
3.6. Методика перевода машинного кода в промежуточное представление.
3. Выводы по главе 3.
ГЛАВА 4. ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ МЕТОДИК ОБФУСКАЦИИ И ИХ ОЦЕНКА.
4.1. Концепция построения обфускатора. Платформозависимый компонент
4.2. Платформонезависимый компонент
4.3. Оценки увеличения объема кода и замедления
4.4. Оценка качества запутывающих преобразований.
4.5. Выводы по главе 4.
ЗАКЛЮЧЕНИЕ.
Список литературы


Однако, для целей защиты программ вызов внешних функций, особенно из кода защиты, нежелателен. Поэтому вместо вызова этой функции используется прямой поиск адреса загруженного модуля в РЕВ. Таким образом, аналитику достаточно сложно определить момент получения базового адреса модуля, подгруженного в адресное пространство процесса. Недостатком данного метода является его недокументиро-ванность. Т.е. В этом случае программы, использующие прямой доступ к РЕВ, перестанут корректно работать. Исполнение кода на стеке. Данный прием позволяет создать машинный код в области стековой памяти и передать на него управление. Создание такого кода достаточно трудно заметить, а после выхода из него, данный код может быть успешно уничтожен. Для кода на стеке и передачи на него управления нет необходимости вызывать какие-либо дополнительные внешние функции, что не привлекает внимания аналитика. Однако, начиная с Windows ХР SP2, исполнение кода на стеке запрещено. Большинство х-совместимых процессоров поддерживают такой механизм на аппаратном уровне (DEP). Таким образом, данный прием не работает на современных аппаратных и программных платформах без вызова дополнительных внешних функций. Аналогичное можно сказать и про исполнение кода в «куче». В последних версиях Windows исполнение кода в «куче» также запрещено. Подмена адресов фуикций-обрабогчиков прерываний в таблице дескрипторов прерываний (IDT). Данный подход позволяет воспрепятствовать дампу программы в семействе операционных систем Windows NT, а, следовательно, изучению кода защиты. Часть страниц приложения помечаются, как выгруженные, посредством установки соответствующего бита в структуре-описателе страницы (РТЕ). В ШТ происходит установка собственного обработчика прерывания ошибки страницы. В данном обработчике происходит проверка типа доступа к странице. Если происходит попытка чтения, то подгружается случайно выбранная страница. Правильная трансляция адресов происходит только в случае, когда происходит доступ на выполнение. Таким образом, попытка считать код приложения приведет к считыванию случайных данных. Однако, данный подход отличается сложностью реализации и нестабильностью работы защищенных таким образом программ. Нестабильность работы связана прежде всего с тем, что в последних версиях операционных систем Windows линейки NT происходит проверка целостности ядра операционной системы, в которую входит и проверка адресов обработчиков ГОТ (Patch Guard). Данные обстоятельства не позволяют широко использовать подмену адресов обработчиков в IDT для защиты программного обеспечения от анализа и модификации. Использование механизма структурной обработки исключений (SEH). В -х разрядных операционных системах Windows для обработки исключительных ситуаций используется частично документированный механизм структурной обработки исключений. При помощи механизма SEH возможно производить простейшее обнаружение работы под отладкой, заменять инструкции ветвления посредством преднамеренной генерации исключений с последующей подменой соответствующего адреса передачи управления в структуре, передаваемой по указателю в обработчик исключения. Однако основным недостатком данного подхода являе тся его известность и наличие большого количества инструментов, позволяющих скрыть наличие отладчиков и утилит деактивации защиты. Все вышеописанные подходы объединяет то, что в них широко используются недокументированные возможности операционной системы. По сути, стойкость защит, построенных на этих методах, зависит от осведомленности аналитика об их существовании. Для каждого из вышеприведенных приемов существуют эффективные методы взлома. Более того, в силу' недокументированности этих подходов, их использование может привести к нестабильному функционированию защищенной с их помощью программы. Для того чтобы «привязать» приложение к определенному ресурсу применяются различного рода утилиты автоматической защиты приложений (конверты). Анализ исходного приложения на возможность внедрения дополнительного кода. Шифрование приложения некоторым симметричным шифром [2].

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

28.06.2016

+ 100 бесплатных диссертаций

Дорогие друзья, в раздел "Бесплатные диссертации" добавлено 100 новых диссертаций. Желаем новых научных ...

15.02.2015

Добавлено 41611 диссертаций РГБ

В каталог сайта http://new-disser.ru добавлено новые диссертации РГБ 2013-2014 года. Желаем новых научных ...


Все новости

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