Обфускация
Обфускация - преобразование исходного, промежуточного или исполняемого программного кода, которое сохраняет его функциональность, но затрудняет анализ, понимание алгоритмов, восстановление структуры и модификацию программы.
Что означает термин
Обфускация сохраняет результат работы программы или её вычисляемую функцию, изменяя форму представления кода. Цель преобразования - сделать изучение алгоритмов, структур данных и логики программы более трудоёмким.
Обфускация не является криптографической защитой и не гарантирует невозможность декомпиляции или восстановления логики программы. Она также усложняет отладку, сопровождение и изменение кода разработчиками.
Как устроено
Преобразованию может подвергаться исходный текст, промежуточный байт-код, машинный код или отдельные алгоритмические структуры программы. В зависимости от используемой платформы обфускация выполняется на соответствующем уровне представления кода.
К типичным приёмам относятся замена понятных имён переменных и функций на бессмысленные идентификаторы, удаление форматирования, добавление лишних переходов и вставка фрагментов, не влияющих на результат выполнения. Обфускация машинного кода может снижать скорость работы программы, а ошибки преобразования способны нарушить её функционирование.
Где применяется
Обфускация используется для затруднения обратной разработки, декомпиляции и изучения алгоритмов. Её применяют, в частности, для усложнения анализа механизмов проверки лицензий и DRM.
В программах с доступным исходным текстом обфускация может выполняться непосредственно над исходным кодом. Для приложений, использующих промежуточное представление, преобразуется байт-код. Обфускация JavaScript-кода может одновременно уменьшать его размер и затруднять чтение.
База знаний организована при поддержке делового сообщества. Спираль?!

