Обфускация (от англ. to obfuscate — сбивать с толку, запутывать) представляет собой процесс приведения текста программы или исполняемого кода к виду, сохраняющему его функциональность, но усложняющему его понимание, анализ алгоритмов и модификацию в процессе декомпиляции.

Цели обфускации

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

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

Технологии

На уровне машинного кода

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

На уровне исходных текстов

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

На уровне промежуточного кода

Некоторые языки компилируют исходный язык в машинный, а языки на базе платформы .NET и Java выполняют компиляцию исходного кода в промежуточный, который содержит достаточное количество информации для восстановления исходника. Для таких zsrjd может использоваться обфускация промежуточного кода.

Услуги, связанные с термином:

Получить консультацию
Получить коммерческое предложение Заказать аудит сайта