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