Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Понятие обфускации. Математическая модель процесса обфускации

Читайте также:
  1. Good, справились. Теперь кликаете правой кнопкой мыши на папке Моя модель...
  2. GT3 R Hybrid, гибридная модель компании Porsche.
  3. II. КОЛИЧЕСТВЕННАЯ ОЦЕНКА ЭПИДЕМИЧЕСКОГО ПРОЦЕССА
  4. III. ОРГАНИЗАЦИЯ КОРРЕКЦИОННО-РАЗВИВАЮЩЕГО ОБРАЗОВАТЕЛЬНОГО ПРОЦЕССА
  5. IV. УЧАСТНИКИ ОБРАЗОВАТЕЛЬНОГО ПРОЦЕССА
  6. IV. УЧАСТНИКИ ОБРАЗОВАТЕЛЬНОГО ПРОЦЕССА
  7. А) Конституция как понятие и как идея
  8. А) Понятие бредовой идеи
  9. А) Понятие внесознательного механизма
  10. Автор наконец-то объясняет, почему интервью – понятие философское, и советует, как вести беседу, чтобы открыть для себя другого человека

Seo словарь даёт нам определение обфускации – от английского “obfuscate” – запутывать, сбивать с толку. В сети Интернет обычно применяется к программному коду. Обфускация кода это приведение его к виду, сохраняющему функциональность, но затрудняющую анализ кода и понимание алгоритмов работы [2].

Существует ошибочное мнение, что обфускация – это панацея от любого рода взлома программ, будь то взлом триальной версии комерческого продукта или защита от просмотра используемого алгоритма. Это безусловно ошибочное мнение [3]. Обфускаторы, по большей части, разрабатываются с довольно скромной целью - как можно сильнее затруднить взломщику путь к пониманию алгоритма, примененного в программе.

Суть процесса обфускации заключается в том, чтобы запутать программный код и устранить большинство логических связей в нем, то есть трансформировать его так, чтобы он был очень труден для изучения и модификации посторонними лицами (будь то взломщики, или программисты которые собираются узнать уникальный алгоритм работы защищаемой программы) [4].

Существуют различные определения процесса обфускации. В исследовательском обзоре Юрия Лифшица основная задача обфускации формулируется следующим образом [5]. Необходимо придумать алгоритм, который, получая на вход некоторую программу P, преобразует её в программу O(P). При этом должны быть выполнены следующие условия:

- на одних и тех же наборах входных данных программы P и O(P) должны давать одни и те же результаты.

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

- код программы O(P) не должен раскрывать информацию об алгоритмах, параметрах и внутренней структуре программы P.

В замечании к задаче указано, что для её решения необходимо в первую очередь определить, что включают в себя алгоритмы, параметры и внутренняя структура программы. Поэтому чтобы уточнить и дополнить задачу, рассматриваемые входные программы, написанные на промежуточном языке, рассмотрим их как Машину Тьюринга.

Машина Тьюринга – абстрактный исполнитель (абстрактная вычислительная машина) [16]. Была предложена Аланом Тьюрингом в 1936 году для формализации понятия алгоритма.

Машина Тьюринга является расширением конечного автомата и, согласно тезису Чёрча-Тьюринга, способна имитировать все другие исполнители, каким-либо образом реализующие процесс пошагового вычисления, в котором каждый шаг вычисления довольно элементарен.

В состав машины Тьюринга входит бесконечная в обе стороны лента, разделенная на ячейки, и управляющее устройство, способное находиться в одном из множества состояний. Число возможных состояний управляющего устройства конечно и точно задано.

Управляющее устройство может перемещаться влево и вправо по ленте, читать и записывать в ячейки ленты символы некоторого конечного алфавита. Выделяется особый пустой символ, заполняющий все клетки ленты, кроме тех из них (конечного числа), на которых записаны входные данные.

Управляющее устройство работает согласно правилам перехода, которые представляют алгоритм, реализуемый данной машиной Тьюринга. Каждое правило перехода предписывает машине, в зависимости от текущего состояния и наблюдаемого в текущей клетке символа, записать в эту клетку новый символ, перейти в новое состояние и переместиться на одну клетку влево или вправо. Некоторые состояния машины Тьюринга могут быть помечены как терминальные, и переход в любое из них означает конец работы, остановку алгоритма.

Таким образом, чтобы задать машину Тьюринга, надо указать следующие объекты:

- произвольное конечное множество (алфавит); его элементы называются символами;

- некоторый выделенный символ (пробел, или пустой символ);

- конечное множество , называемое множеством состояний;

- некоторое выделенное состояние , называемое начальным;

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

- некоторое подмножество , элементы которого называются заключительными состояниями (попав в такое состояние, машина останавливается).

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

а) должно выполняться уравнение:

 

. (1.1)

 

Т.е. время работы обфускатора полиномеально зависит от размера обфусцируемой программы;

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

в) в общем случае

и , (1.2)

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

Как и любое понятие, процесс обфускации разделили на некоторые виды. Проанализируем некоторые из них. И если нет причин отказаться от них, используем их в разрабатываемом обфускаторе.




Дата добавления: 2015-09-10; просмотров: 42 | Поможем написать вашу работу | Нарушение авторских прав

Обзор существующих библиотек для создания .Net метаинструментов | Обзор существующих обфускаторов | Обфускация констант. | Определение трудозатрат и построение календарного графика выполнения работ | Расчет затрат на разработку программы и определение экономической эффективности от внедрения программы | Анализ условий труда специалиста на рабочем месте. | Определение класса условий труда | Разработка мероприятий по улучшению условий труда | СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ | Приложение Б. Примеры упражнений для расслаблений отдельных групп мышц |


lektsii.net - Лекции.Нет - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав