Обфускация - это процесс, в результате которого код программы приобретает вид, трудный для анализа. Обфускатор - это программа, с помощью которой выполняется обфускация.
В списке модных слов, которыми любят кидаться программисты, в последнее время появилось новое - обфускатор. Оно тесно связано с другим, похожим - обфускацией. Что они значат?
С обфускатором всё просто. Обфускатор - это программа, с помощью которой выполняется обфускация. Теперь дело за малым - разобраться, что же такое обфускация.
Обфускация - это процесс, в результате которого код программы приобретает вид, трудный для анализа. Обфускация, как нетрудно догадаться, осуществляется с целью защиты программного кода и алгоритмов, которые он реализует, от чужих глаз, которые, несмотря на строжайшие запреты разработчиков, любят подсматривать за тем, что и каким именно образом написано.
Существует несколько разных видов обфускации в зависимости от того, какой именно код запутывается при ней. Для тех языков программирования, для которых программа представляется прямо в виде исходных текстов, используются специальные методы, делающие код нечитабельным для человека, но приемлемым для интерпретатора. Среди них - запись программы в одну строку, замена имён переменных и функций, вставка ничего не значащих комментариев. Для обфускации двоичного кода (как для исполняемых файлов, так и двоичного кода виртуальных машин .NET и Java) используются уже более серьёзные методы, в том числе и шифрование. Однако следует учитывать, что для двоичного кода обфускация способна серьёзно снизить скорость работы защищённых участков программы. Поэтому критичные ко времени выполнения куски кода, как правило, не имеют серьёзной криптографической защиты.
Обфускации может подвергаться не только программный код, но и другие виды данных: например, существуют специализированные методы обфускации HTML-страниц (особенно эффективно внедрение сценариев JavaScript'е, которые пишут текст динамически, и картинок с текстом). Обфускация HTML-страниц весьма полезна для спамеров, которые с её помощью обходят спам-фильтры.
Помимо защиты, обфускация для некоторых интерпретируемых языков увеличивает скорость выполнения программы - правда, это возможно только при применении оптимизирующих обфускаторов.
Но в большинстве случаев обфускация имеет массу побочных эффектов. В особо неприятных обстоятельствах обфускатор может сделать программу совершенно непригодной к выполнению, в менее тяжёлых случаях в программе могут появиться новые ошибки. Поэтому обфускацию необходимо применять с максимальной осторожностью.
Вадим СТАНКЕВИЧ,
dreamdrusch@tut.by
Горячие темы