Резолвер замен массивов JavaScript
Обнаруживайте и разрешайте обфусцированные строковые замены на основе массивов в коде JavaScript. Наш инструмент определяет массивы хранения строк и заменяет выражения доступа по индексу их фактическими значениями, делая обфусцированный код значительно более читаемым.
Privacy Guarantee
All processing runs entirely in your browser. Your JavaScript code never leaves your device. No data is uploaded, stored, or tracked.
Зачем использовать наш резолвер замен массивов JavaScript?
- Мгновенное разрешение замен массивов: наш резолвер замен массивов JavaScript мгновенно анализирует обфусцированный код в вашем браузере. Обнаруживайте строковые замены на основе массивов, разрешайте обращения по индексу во встроенные значения и очищайте вывод — всё без ожидания и без обращений к серверу.
- Обработка на 100% приватна в браузере: ваш обфусцированный код JavaScript никогда не покидает браузер. Всё разрешение замен массивов происходит локально с помощью JavaScript — без загрузок на сервер, без сбора данных. Ваш код и его содержимое остаются полностью приватными.
- Без ограничений размера кода: анализируйте код JavaScript любого размера без ограничений. От небольших обфусцированных фрагментов до больших минифицированных бандлов — наш резолвер эффективно обрабатывает любой объём ввода.
- 100% бесплатно навсегда: используйте наш резолвер замен массивов JavaScript совершенно бесплатно и без ограничений. Без регистрации, без скрытых платежей, без платных тарифов — только неограниченная бесплатная деобфускация, когда она вам нужна.
Типичные сценарии использования резолвера замен массивов JavaScript
- Реверс-инжиниринг обфусцированных скриптов: исследователи безопасности и реверс-инженеры могут быстро разрешать строковые замены на основе массивов в обфусцированном JavaScript, делая код более читаемым и понятным для дальнейшего анализа.
- Анализ скриптов вредоносного ПО и фишинга: анализируйте вредоносный JavaScript, который использует сокрытие строк на основе массивов для маскировки полезных нагрузок, командных строк и целевых URL. Разрешайте обращения к массивам, чтобы раскрыть скрытое содержимое и понять поведение вредоносного ПО.
- Аудит безопасности и ревью кода: аудиторы безопасности могут деобфусцировать JS-код во время тестирования на проникновение и оценки уязвимостей. Разрешение замен массивов раскрывает скрытые строки, такие как конечные точки API, токены аутентификации и URL бэкдоров.
- Задания CTF (Capture The Flag): участники CTF часто сталкиваются с JavaScript, обфусцированным строковыми заменами на основе массивов. Используйте этот инструмент, чтобы быстро разрешить строковые массивы и сосредоточиться на реальной логике задания, а не на деобфускации.
- Прозрачность сторонних скриптов: анализируйте сторонние виджеты и SDK на JavaScript, которые используют обфускацию на основе массивов, чтобы понять, к каким данным они обращаются и какие операции выполняют на вашем сайте.
- Изучение техник обфускации: студенты и разработчики, изучающие обфускацию JavaScript, могут использовать этот инструмент, чтобы наглядно увидеть, как работают распространённые техники строковых замен на основе массивов, и увидеть разрешённые значения в контексте.
Что такое обфускация строковыми заменами на основе массивов?
Строковые замены на основе массивов — одна из самых распространённых техник обфускации JavaScript. Она работает так: все строковые литералы (имена функций, сообщения, URL и т. д.) сохраняются в одном или нескольких массивах, индексируемых числовыми ключами. Затем исходные строки доступны через индексные выражения массива, такие как _0x1234[0], вместо самих строковых литералов. Эта техника сильно затрудняет понимание того, что делает код, как для инструментов статического анализа, так и для человека: осмысленные строки вроде "https://api.example.com" превращаются в загадочные выражения вроде _0xabcd[42].
Как работает наш резолвер замен массивов JavaScript
Наш резолвер использует трёхэтапный процесс для деобфускации строковых замен на основе массивов:
- Обнаружение массивов: сканирует входной код на наличие объявлений переменных, содержащих массивы строковых значений (например, var _0x = ["Hello", "World"]). Определяет все такие массивы хранения строк и их содержимое.
- Разрешение обращений: находит все выражения, где к этим массивам обращаются через скобочную нотацию (например, _0x[0]). Вычисляет индексное выражение в числовое значение и ищет соответствующую строку в массиве. Поддерживаются прямые числа, шестнадцатеричные (0xFF), двоичные (0b1010), восьмеричные (0o77) и простые арифметические выражения.
- Встроенная замена: заменяет каждое выражение доступа к массиву разрешённым строковым литералом и, при желании, удаляет исходные объявления массивов из вывода. Полная таблица сопоставления показывает каждую выполненную замену.
Обнаружение шаблонов обфускации на основе массивов
Строковые замены на основе массивов легко заметить, когда знаешь, на что смотреть. Распространённые признаки включают объявления переменных с массивами, казалось бы, случайных строк, частые шаблоны доступа через скобки, такие как _0x1234[0] или _0xabc["length"], и имена переменных, похожие на шестнадцатеричные числа (например, _0xabcd, _0x1234). Многие популярные обфускаторы используют эту технику, включая javascript-obfuscator, JScrambler и различные собственные упаковщики. Число строк на массив может варьироваться от нескольких до нескольких сотен, часто распределяясь по нескольким массивам, чтобы затруднить анализ.
Ограничения и лучшие практики
Хотя наш резолвер обрабатывает наиболее распространённые шаблоны замен массивов, некоторые продвинутые обфускаторы используют техники, способные обойти простое обнаружение. К ним относятся динамическое построение массивов во время выполнения, доступ к вычисляемым свойствам с помощью сложных выражений, разбиение строк на несколько элементов массива или использование вложенных вызовов функций для сокрытия обращений к массивам. Для лучших результатов сочетайте этот инструмент с другими техниками деобфускации: форматированием, анализом имён переменных и ручной проверкой кода. Всегда проверяйте разрешённый вывод в изолированной среде, прежде чем использовать его для анализа безопасности.
Часто задаваемые вопросы
Резолвер замен массивов JavaScript обнаруживает и разрешает обфусцированные строковые замены на основе массивов, часто используемые обфускаторами JS. Он определяет массивы, хранящие строковые значения (например, var _0x1234 = ["Hello", "World"]), и заменяет все выражения доступа к массивам (например, _0x1234[0]) фактическими строковыми значениями ("Hello"). Это ключевой шаг в деобфускации кода JavaScript.
Обфускаторы JavaScript часто извлекают все строковые литералы из вашего кода и сохраняют их в одном или нескольких массивах (часто с короткими бессмысленными именами вроде _0x, _0xabcd). Каждое обращение к строке затем переписывается как поиск по индексу массива. Это делает код чрезвычайно трудным для чтения, потому что вместо фактических строковых значений вы видите загадочные ссылки на массивы, разбросанные по коду.
Нет. Разрешение замен массивов меняет только способ доступа к строкам — с косвенных поисков в массивах на встроенные строковые литералы. Фактическое поведение кода сохраняется. После того как все обращения к массивам разрешены, а массивы-объявления удалены, итоговый код функционально идентичен, но значительно более читаем.
Безусловно. Вся обработка происходит полностью в вашем браузере с помощью JavaScript. Ваш код никогда не загружается на сервер, не сохраняется и не передаётся. Инструмент полностью работает офлайн после загрузки, что делает его безопасным для анализа проприетарного или конфиденциального кода JavaScript.
Инструмент обнаруживает распространённые шаблоны обфускации, включая: строковые массивы var/let/const с закавыченными значениями, доступ к массивам по шестнадцатеричному индексу (например, _0x[0xff]), простые арифметические индексы (например, _0x[5+3]) и индексные выражения с битовыми операциями. Он также обрабатывает несколько строковых массивов в одном файле и удаляет массивы-объявления после разрешения для более чистого вывода.
Обфускация преобразует читаемый код в трудно понимаемую форму, сохраняя функциональность. Деобфускация — обратный процесс: она восстанавливает читаемость, отменяя преобразования обфускации. Разрешение замен массивов — это конкретная техника деобфускации, которая обращает извлечение строк и шаблоны доступа на основе массивов, используемые обфускаторами.
Да. Исследователи безопасности, пентестеры и реверс-инженеры используют подобные инструменты для анализа обфусцированного JavaScript, встречающегося в вредоносном ПО, фишинговых страницах или другом подозрительном веб-контенте. Разрешение замен массивов часто является первым шагом к пониманию того, что на самом деле делает обфусцированный код.
Этот инструмент обрабатывает наиболее распространённый шаблон, где строковые массивы объявляются с литеральными значениями и доступны по простым индексам. Очень продвинутые обфускаторы могут использовать массивы, создаваемые во время выполнения, или самомодифицирующийся код, который нельзя разрешить статически. Для большинства стандартных и средних обфускаторов этот инструмент даёт отличные результаты.