Информационная безопасность


Обфускация данных


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

Обфускация хранения. Заключается в трансформации хранилищ данных, а также самих типов данных (например, создание и использование необычных типов данных, изменение представления существующих и т.д.). Ниже приведены основные методы, позволяющие осуществить такую обфускацию:

  • изменение интерпретации данных определенного типа. Как известно сохранение, каких либо данных в хранилищах (переменных, массивах и т.д.) определенного типа (целое число, символ) в процессе работы программы, очень распространенное явление. Например, для перемещения по элементам массива очень часто используют переменную типа "целое число", которая выступает в роли индекса. Использование в данном случае переменных иного типа возможно, но это будет не тривиально и может быть менее эффективно. Интерпретация комбинаций разрядов содержащихся в хранилище данных осуществляется в зависимости от его типа. Так, например, можно сказать, что 16-разрядная переменная целого типа содержащая комбинации разрядов 0000000000001100 представляет целое число 12, но это простое соглашение, данные в такой переменной можно интерпретировать по-разному (не обязательно как 12, а, например как 1100 и т.д.).

  • изменение срока использования хранилищ данных, например переход от локального их использования к глобальному и наоборот. В качестве примера можно привести две различные функции (язык PERL): sub func1 { ... $a ... ; } sub func2 { ... $b ... ; }

    если эти две функции не могут выполняться в процессе программы одновременно, значит, для них может быть создана одна глобальная переменная, которая будет замещать переменные $a,$b, например: $AB = 0 ; sub func1 { ... $AB ... ; } sub func2 { ... $AB ... ; }

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


    - Начало -  - Назад -  - Вперед -



    Книжный магазин