Документация
/

Начало работы

Начало работы

Obfuscator.io превращает ваш читаемый исходный код в защищённую версию, которую сложно понять и подвергнуть обратной разработке. Он идеально подходит для защиты проприетарных алгоритмов, логики лицензирования и критически важного для бизнеса кода.

Добро пожаловать в Obfuscator.io

Это руководство проведёт вас через обфускацию вашего первого файла, выбор пресета и знакомство с панелью опций. Более глубокие разборы см. в разделах VM-обфускация, Базовая обфускация и Лучшие практики.

Быстрый старт

  • 1. Вставьте свой код

    Введите свой код на JavaScript в левой панели редактора. Вы можете вставить код напрямую или воспользоваться загрузкой файлов для пакетной обработки.

  • 2. Выберите пресет

    Выберите пресет из выпадающего списка в панели опций. Начните с Low Obfuscation для минимальных изменений или Medium Obfuscation для сбалансированной защиты. VM-пресеты обеспечивают самую надёжную защиту.

  • 3. Нажмите «Obfuscate»

    Нажмите кнопку Obfuscate, чтобы преобразовать код. Защищённый результат появится в правой панели.

  • 4. Скопируйте или скачайте

    Используйте кнопку Copy или Download, чтобы получить обфусцированный код. Результат готов к использованию в продакшене.

Совместимость кода Важно

Обфускация (как VM, так и не-VM) преобразует ваш код так, что это влияет на некоторые аспекты поведения JavaScript во время выполнения. Ваш код не должен полагаться на эти возможности:

  • function.toString() / class.toString()

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

  • function.name / class.name

    Имена функций и классов переименовываются в случайные идентификаторы. Код, который полагается на .name для логирования, сериализации или рефлексии, получит обфусцированные имена.

// Before obfuscation
function calculatePrice() { return 100; }
console.log(calculatePrice.name);     // "calculatePrice"
console.log(calculatePrice.toString()); // "function calculatePrice() { return 100; }"

// After obfuscation
console.log(calculatePrice.name);     // "_0x1a2b3c" (random)
console.log(calculatePrice.toString()); // Completely transformed code

Базовые опции

Перед обфускацией настройте эти базовые опции под вашу целевую среду.

Целевая среда target

Указывает среду выполнения обфусцированного кода:

  • browser (по умолчанию) — стандартная среда веб-страницы. Выходной код идентичен node, но некоторые специфичные для браузера опции нельзя использовать с целевой средой node.
  • browser-no-eval — то же, что browser, но результат не использует eval(). Используйте, когда целевая страница имеет Content Security Policy, запрещающую eval/unsafe-eval.
  • node — среда Node.js. Специфичные для браузера опции отключаются (им нужны window/document, и в Node они были бы бездействующими или бросали бы исключения). Некоторые защиты vmSelfDefending, опирающиеся на API только для браузера, — обнаружение headless-браузера, восстановление чистого realm через iframe, проверки анти-инспектора/DOM — для этой целевой среды не выпускаются.
  • service-worker — контекст Service Worker. Нет window, нет document, другой глобальный объект self.
  • userscript — песочница менеджера пользовательских скриптов (например, Tampermonkey). Защиты vmSelfDefending соответственно подстраиваются. Требуется обфускатор v6.9.0+.
  • bytenode — для кода, который будет скомпилирован в .jsc с помощью bytenode. Требуется обфускатор v6.13.0+.

Строгий режим strictMode

Управляет тем, как обфускатор обрабатывает строгий режим JavaScript:

  • Auto (по умолчанию) — автоопределение строгого режима из кода. Обфускатор анализирует ваш код на наличие директив "use strict"
  • Enable — принудительно трактовать весь код как строгий, независимо от наличия "use strict"
  • Disable — как строгий режим трактуются только явные директивы "use strict" в исходном коде

Разбираемся в пресетах

Пресеты — это заранее настроенные комбинации опций. Есть две отдельные группы:

VM-пресеты Pro (виртуализация байт-кода)

ПресетБезопасностьПроизводительностьВозможности
VM LowХорошая~10xБазовая VM, косвенная диспетчеризация
VM MediumСильная~12-15x+ Перемешивание опкодов, кодирование, приманки
VM HighОчень сильная~15-18x+ Мёртвый код, опкоды с состоянием, кодирование стека
VM Ultra HighМаксимальная~20x++ Слои не-VM обфускации

Показатели производительности — средние; фактическое влияние сильно зависит от кода (например, код с интенсивной рекурсией или горячими циклами будет заметно медленнее).

Не-VM пресеты (стандартная обфускация)

ПресетЗащитаПроизводительностьВозможности
DefaultБазоваяМинимальноеМассив строк, упрощение
LowЛёгкая~1.1x+ Самозащита, отключение консоли
MediumУмеренная~1.5x+ Поток управления, мёртвый код, base64
HighСильная~2x+ Защита от отладки, кодирование rc4

Обзор интерфейса

  • Редактор ввода — вставьте или введите свой исходный код на JavaScript. Перетаскивайте файлы или используйте кнопку загрузки. HTML-файлы со встроенными скриптами тоже поддерживаются Pro.
  • Панель вывода — отображает обфусцированный результат. Используйте кнопки Copy или Download, чтобы получить защищённый код.
  • Выбор пресета — выберите VM- или не-VM пресеты. VM-пресеты сгруппированы вверху. Пресет задаёт базовые опции, которые вы можете настроить.
  • Панель опций — точная настройка параметров обфускации. Нажмите на иконку ? рядом с любой опцией, чтобы увидеть её документацию.
  • Кнопка Obfuscate — преобразует ваш код с помощью выбранных опций. VM-пресеты обрабатываются на стороне сервера; не-VM пресеты выполняются в вашем браузере.
  • Загрузка нескольких файлов Pro — обрабатывайте сразу несколько файлов и скачивайте их в виде ZIP.
  • Панель истории Pro — доступ к вашим предыдущим обфускациям и восстановление ввода/вывода.