Начало работы
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 — доступ к вашим предыдущим обфускациям и восстановление ввода/вывода.
