Основные цели обфускации программного обеспечения:
- затруднение декомпиляции, отладки и изучения программ с целью обнаружения функциональности; 1
- затруднение декомпиляции проприетарных программ с целью предотвращения обратной разработки или обхода DRM и систем проверки лицензий; 1
- затруднение взлома программного обеспечения; 1
- оптимизация программы с целью уменьшения размера работающего кода и (если используется некомпилируемый язык) ускорения работы; 1
- демонстрация неочевидных возможностей языка и квалификации программиста (если производится вручную, а не инструментальными средствами). 1
Некоторые задачи обфускации:
- обеспечение защиты идей от копирования; 3
- создание условий, при которых никто кроме разработчика не может работать с кодом и поддерживать его (это бывает полезно в коммерческих проектах); 3
- сокрытие значений или операций (например, если в программе имеется проверка пароля); 3
- обеспечение дополнительного уровня защиты от взлома — злоумышленникам будет проблематично проанализировать исходный код программного обеспечения. 3