Тема: WSH: обфускация и Microsoft Script Encoder
Обфускация (англ. obfuscate — затемнять) — это приведение исходного текста скрипта к виду, сохраняющему его функциональность, но затрудняющему анализ, понимание алгоритмов его работы и модификацию. Цели обфускации — это защита кода от слишком любопытных глаз и рук, и, возможно, небольшая оптимизация интерпретируемой программы: уменьшение её размера и ускорение работы. Обфускация может использоваться и для неблаговидных целей, таких, как обход спам-фильтров или скрытие авторства программ.
Script Encoder — это бесплатный простой инструмент командной строки, который даёт возможность закодировать скрипт Windows Script Host или ASP. Script Encoder будет работать в Windows 98/Me/NT4/2000/XP. Дистрибутив Script Encoder имеет размер менее 200 Кб.
Чтобы использовать Script Encoder, разработайте и отладьте свой сценарий обычным способом, а затем используйте эту утилиту, чтобы закодировать конечный сценарий. Script Encoder использует специальные маркеры в исходном коде скрипта, чтобы определить, где должно начаться кодирование. Маркер для VBScript выглядит так:
'**Start Encode**
Маркер для JScript выглядит так:
//**Start Encode**
Если маркеры не используются, кодируется весь сценарий. Script Encoder используется в командной строке следующим образом:
screnc [опции] <source> <destination>
Подробное описание опций командной строки вы найдёте в справочном файле в поставке. При обработке файлов .js и .vbs они должны превращаться в результате в файлы .jse и .vbe. Пример скрипта на VBScript:
Wscript.Echo("Привет, Script Encoder!")
'**Start Encode**
Wscript.Echo("Привет ещё раз, Script Encoder!")
После обработки командой наподобие screnc test.vbs test.vbe этот скрипт будет выглядеть примерно так (здесь приведён только пример внешнего вида, этот код не запустится):
Wscript.Echo("Привет, Script Encoder!")
'**Start Encode**#@~^NwAAAA==@#@&d1DbwYc214WvJПривет~ещёPразBPj^MkwD~2 mW9n."r#@#@&XgsAAA==^#~@
Полученный файл test.vbe будет таким же скриптом, как и test.vbs — его можно будет запустить как двойным щелчком в Проводнике, так и с помощью cscript.exe из командной строки.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.