Рецепты

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

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

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

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

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

Получение ключа массива байт-кода с бэкенда

Держите ключ расшифровки байт-кода VM вне клиента: асинхронный геттер запрашивает его у вашего бэкенда при загрузке.

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

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

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

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

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

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

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

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

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

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

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

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