Рецепты

Практичные, сквозные разборы типичных задач интеграции javascript-obfuscator. Каждый рецепт сфокусирован на том, как сочетать опции для достижения конкретного результата, а не на описании отдельных флагов.

Выберите рецепт, который соответствует вашей задаче. Со временем рецептов будет больше — если вы столкнулись со сценарием интеграции, которого здесь нет, напишите нам, и мы его опишем.

В этом разделе

Лучшие практики

Что стоит защищать, что лучше не трогать и чего обфускация сделать не может.

Подстановка значений в шаблон на стороне сервера

Внедряйте значения, отрисованные на сервере, в обфусцированный VM-код с помощью reservedNames и reservedStrings.

Ключ кодирования массива байт-кода

Задайте собственный ключ шифрования байт-кода VM через vmBytecodeArrayEncodingKey и получайте его во время выполнения через геттер ключа — из хранилища клиента или запрашивая с бэкенда.

Телеметрия и реакции защиты VM

Отправляйте на свой бэкенд срабатывания защиты VM с помощью vmDefenseHook и настраивайте реакцию на каждую категорию срабатываний через vmDefenseReaction.

Как скрыть имена функций от анализа LLM

Почему обфусцированный VM-код может раскрывать LLM осмысленные имена функций и как обёртка в IIFE устраняет утечку.

VM-обфускация с eval и new Function

Как VM-обфускация обрабатывает прямой eval и вызовы конструктора Function, что превращается в байт-код, а что пропускается, какие предупреждения выдаёт обфускатор и как диагностировать ReferenceError во время выполнения.

Как избежать конфликтов идентификаторов

Почему сборка нескольких обфусцированных VM-файлов может выдавать «Identifier already declared» на этапе разбора и как это исправить случайными или шестнадцатеричными идентификаторами.

Диагностика ошибок выполнения VM

Пошаговый чек-лист для ошибок выполнения VM вроде «Invalid array length», позволяющий отличить неверную настройку целевых функций и self-defending от настоящих багов.