Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_ekzamen.docx
Скачиваний:
6
Добавлен:
15.04.2019
Размер:
2.12 Mб
Скачать

36. Обфускация по. Методы обфускации. Процесс обфускации.

Обфускация - это один из методов защиты программного кода, который позволяет усложнить процесс реверсивной инженерии кода защищаемого программного продукта.

Виды обфускации

Лексическая обфускация

- удаление всех комментариев в коде программы или изменение их на дезинформирующие;

- удаление различных пробелов, отступов, которые обычно используют для лучшего визуального восприятия кода программы;

- замена имен идентификаторов (имен переменных, массивов, структур, хешей, функций, процедур и т.д.) на произвольные длинные наборы символов, которые трудно воспринимать человеку;

- добавление различных лишних (мусорных) операций;

- изменение расположения блоков (функций, процедур) программы таким образом, чтобы это не повлияло на ее работоспособность.

Обфускация хранения

- изменение интерпретации данных определенного типа;

- изменение срока использования хранилищ данных, например, переход от локального их использования к глобальному и наоборот;

- преобразование статических (неменяющихся) данных в процедурные.

Обфускация соединения

- объединение переменных;

- реструктурирование массивов;

- изменение иерархий наследования классов, осуществляется путем усложнения иерархии наследования при помощи создания дополнительных классов или использования ложного разделения классов.

Обфускация управления

Предикат "P" считается непрозрачным предикатом, если его результат известен только в процессе обфускации, то есть после осуществления процесса обфускации определение значения такого предиката становится трудным.

Непрозрачные предикаты могут быть:

- локальными - вычисления содержаться внутри одиночного выражения (условия);

- глобальными - вычисления содержаться внутри одной процедуры (функции);

- межпроцедурными - вычисления содержаться внутри различных процедур (функций).

Обфускация вычислительная

- расширения условий циклов. Для этого обычно используют непрозрачные предикаты таким образом, чтобы они не кои мере не влияли на количество выполнений циклического кода;

- добавления недостижимого кода (который не будет выполняться в процессе работы программы);

- устранение библиотечных вызовов;

- добавление избыточных операций (мертвого кода) в те участки программного кода, которые наиболее трудные (изначально) для изучения;

- параллелизирование кода, заключается в разделении кода на отдельные независимые участки, которые во время работы программы будут выполняться параллельно.

Обфускация соединения

- встраивание функций, осуществляется путем встраивания кода функции в места ее вызова;

- извлечение функций, является обратным действием по отношению к встраиванию функций;

- чередование, объединение фрагментов кода программы, выполняющих различные операции, воедино;

- клонирование, данный метод позволяет усложнить анализ контекста использования функций и объектов, используемых в коде исходной программы;

- трансформация циклов.

6. Энтропия ансамбля. (+21)

Ансамблем называется полная совокупность состояний с вероятностями их появлений, составляющими в сумме единицу:

Пусть имеет место N возможных исходов опыта, из них k разных, и i-ый исход (i = 1,2,..., k) повторяется ni раз и вносит информацию, количество которой оценивается как Ii. Тогда средняя информация, доставляемая одним опытом, равна

Но количество информации в каждом исходе будет

Тогда

Но отношения представляют собой частоты повторения исходов, а, следовательно, могут быть заменены их вероятностями:

Получим

Энтропия (Н) - логарифмическая мера беспорядочности состояния источника сообщений; характеризует степень неопределенности состояния этого источника.

К. Шеннон.

Получение информации – это процесс раскрытия неопределенности.

Если все k различных состояний источника равновероятны, то энтропия максимальна

В частном случае при равновероятных сообщениях формулы H и Hmax совпадают.

В случае неравных вероятностей количество информации по Шеннону меньше информационной емкости системы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]