Обфускация кода — что это такое и для чего применяют — HRCode
В мире IT

Обфускация кода — что это такое и для чего применяют

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

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

запутанный код

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

К сожалению, авторы вредоносного кода также используют эти методы , чтобы предотвратить обнаружение механизмов атаки средствами защиты от вредоносных программ. Атака SolarWinds 2020 года является примером того, как хакеры используют запутывание для обхода защиты.

Способ обработки измененного кода в читаемый вид называется деобфускацией и включает различные методы. Это могут быть такие методы, как нарезка программы до соответствующих операторов, оптимизация компилятора и синтез программы. Но обфускация кода направлена на то, чтобы максимально затруднить этот процесс.

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

Еще по теме:

Напишите что нибудь:

Ваш адрес email не будет опубликован. Обязательные поля помечены *