Перейти к содержимому
Aback Tools Logo

Упаковщик JavaScript/распаковщик компрессоров

Обнаружение и распаковка упакованного кода JavaScript, включая формат Dean Edwards Packer. Автоматически определяет подпись упаковщика, извлекает закодированные полезные данные и словарь ключевых слов и восстанавливает исходный читаемый исходный код. Идеально подходит для исследования безопасности, обратного проектирования и понимания сжатых сторонних скриптов — вся обработка является локальной и конфиденциальной.

JavaScript Packer/Compressor Unpacker

Detect and unpack packed JavaScript code, including Dean Edwards Packer format and similar compressors. Paste packed JavaScript code to automatically identify the packer, extract the unpacking algorithm, and reveal the original readable source code. All processing runs locally in your browser - no signup required.

Packer detected: Dean Edwards Packer - ready to unpack
490 bytes
176 bytes(-314)
Packer Type
Dean Edwards
Encoding Base
62
Keywords
11
Payload Size
64% of original
Extracted Components
Encoded Payload:6 1(3,4){2 0=0;2(5 7=0;7<3.8;7++){2 9=3[7];0+=9.8*9.a}b 0}
Base
62
Word Count
11
Splitter
Split by "|"
Keyword Dictionary (11 words):
#EncodedKeyword
00function
11items
22var
33
44
55for
66
77calculateTotal
88i
99length
10aprice
Note: This unpacker handles Dean Edwards Packer format (commonly used by JavaScript compressors online). It may not work with all packer variants, custom implementations, or multi-layer packing. For heavily obfuscated code, multiple passes of unpacking may be required. Always verify the unpacked output for correctness before use.

Зачем использовать наш упаковщик/распаковщик компрессоров JavaScript?

  • Автоматическое обнаружение упаковщика: мгновенно обнаруживает формат Dean Edwards Packer и аналогичные компрессоры JavaScript. Инструмент сканирует сигнатуру характеристической функции (p,a,c,k,e,d), определяет базу кодировки, извлекает словари ключевых слов и обнаруживает исходный читаемый исходный код - и все это одним щелчком мыши.
  • Полное извлечение компонентов: просмотрите каждый извлеченный компонент упаковщика: закодированные полезные данные, базовый номер кодировки, количество ключевых слов и полный словарь ключевых слов с сопоставлением закодированных и исходных данных. Таблица ключевых слов показывает идентификатор в кодировке BaseN и соответствующее ему декодированное ключевое слово для каждой записи.
  • Копирование и загрузка распакованного кода. Легко экспортируйте распакованный код с помощью кнопок «Копировать в буфер обмена» или «Загрузить как файл .js». Параллельное сравнение показывает упакованный входной и распакованный выходные данные с изменениями размера в байтах, поэтому вы можете точно увидеть, сколько места сэкономлено при упаковке.
  • Безопасная и конфиденциальная обработка в браузере: вся распаковка выполняется полностью в вашем браузере с использованием JavaScript. Упакованный код, извлеченные компоненты и распакованные выходные данные никогда не покинут ваше устройство. Никакой регистрации, никакой загрузки данных и никакого отслеживания — полная конфиденциальность для исследований безопасности и анализа вредоносного ПО.

Распространенные случаи использования упаковщика/распаковщика компрессора JavaScript

  • Анализ вредоносных программ и сценариев безопасности. Исследователи безопасности и аналитики SOC используют распаковщик упаковщиков для анализа потенциально вредоносных полезных данных JavaScript. Упакованный код обычно используется для попутных загрузок, фишинговых страниц и загрузчиков вредоносного ПО. Распаковка обнаруживает реальные вредоносные функции, скрытые за слоем сжатия.
  • Реверс-инжиниринг минимизированных виджетов: при анализе сторонних виджетов JavaScript или сценариев отслеживания, использующих упаковку Дина Эдвардса, распаковщик раскрывает исходные имена переменных и структуру кода. Это помогает понять, какие данные собирает скрипт, какие API он вызывает и как он ведет себя на вашем веб-сайте.
  • Образовательная практика деобфускации: студенты, изучающие обфускацию и деобфускацию JavaScript, используют распаковщик упаковщиков, чтобы понять, как работает упаковка Дина Эдвардса. Представление извлеченных компонентов показывает, как именно база кодирования, словарь ключевых слов и алгоритм замены границ слов восстанавливают исходный код.
  • Решение задач CTF: участники Capture The Flag (CTF) сталкиваются с упакованным JavaScript в задачах веб-эксплуатации и обратного проектирования. Упаковщик-распаковщик быстро удаляет слой упаковки, открывая базовый код, содержащий флаги, полезные данные или подсказки об уязвимостях.
  • Восстановление устаревшего кода: при поддержке старых веб-приложений, которые использовали компрессоры JavaScript до того, как современная минификация стала стандартом, распаковщик помогает восстановить читаемый исходный код из упакованных сценариев, в которых исходные необфусцированные файлы были потеряны.
  • Исследование уязвимостей и вознаграждение за ошибки: охотники за ошибками, анализирующие целевые приложения, часто сталкиваются с упакованным JavaScript в рабочей среде. Распаковка раскрывает реальную логику приложения, конечные точки API, потоки аутентификации и потенциальные уязвимости безопасности, скрытые за сжатием.

Что такое упаковка JavaScript?

Упаковка JavaScript — это метод сжатия кода, который заменяет значимые имена переменных, имена функций и ключевые слова короткими закодированными ссылками. Наиболее распространенным форматом является Dean Edwards Packer, который использует схему кодирования по основанию N для компактного представления идентификаторов. Упакованные выходные данные обертываются самораспаковывающейся функцией, которая при выполнении восстанавливает исходный код, заменяя закодированные заполнители фактическими ключевыми словами из словаря. Этот метод широко использовался в 2000-2010-х годах, прежде чем современные инструменты минимизации, такие как UglifyJS и Terser, стали стандартом.

Как работает наш упаковщик-распаковщик

  1. Сканирование и обнаружение: инструмент сканирует ваш код JavaScript на наличие характерной сигнатуры Дина Эдвардса Пакера — функции eval(), обертывающей функцию с параметрами (p, a, c, k, e, d). Эта подпись однозначно идентифицирует формат упаковщика среди других методов сжатия.
  2. Извлечение компонентов. Используя извлечение регулярных выражений, инструмент извлекает пять ключевых компонентов упаковщика: закодированную строку полезных данных (p), базовый номер кодировки (a, обычно 62), количество ключевых слов (c), упакованный список ключевых слов (k) и символ-разделитель, используемый для разделения ключевых слов. Эти компоненты отображаются в разделе извлеченных компонентов.
  3. Восстановить исходный код. Распаковщик реализует алгоритм декодирования Дина Эдвардса: он преобразует каждый числовой индекс в его закодированную форму по основанию N с использованием цифр 0–9 и букв a–z, затем заменяет каждое вхождение закодированной формы на границе слова в полезных данных соответствующим ключевым словом из словаря. Результатом является исходный читаемый исходный код JavaScript.

Что будет распаковано

  • Ссылки на ключевые слова: числовые заполнители в упакованных полезных данных (представленные в виде коротких закодированных строк, таких как 0, 1, a, b и т. д.) заменяются фактическими ключевыми словами JavaScript и идентификаторами из словарного массива.
  • Имена переменных и функций. Значимые имена, которые были заменены закодированными ссылками во время упаковки, восстанавливаются в исходной форме, раскрывая фактическое назначение каждой переменной и функции.
  • Строковые литералы: строковые значения, которые были извлечены и сохранены в словаре ключевых слов, помещаются обратно в код на исходные позиции, что делает код снова читаемым.
  • Структура кода: общая структура кода (циклы, условия, вызовы функций, шаблоны доступа к объектам) полностью сохраняется при распаковке. Только закодированные идентификаторы преобразуются обратно в исходную форму.

Конфиденциальность и ограничения

Наш упаковщик/распаковщик JavaScript обрабатывает все локально в вашем браузере. Ваш упакованный код, извлеченные компоненты и распакованные выходные данные никогда не покинут ваше устройство — ни загрузка, ни обработка на сервере, ни хранение данных. Однако этот инструмент специально работает с форматом Dean Edwards Packer и структурно подобными компрессорами. Он может не работать с пользовательскими реализациями упаковщиков, многоуровневым упакованным кодом или современными инструментами запутывания, такими как Jscrambler или Obfuscator.io. Для многоуровневого упакованного кода вам может потребоваться запустить распаковщик несколько раз, передавая выходные данные каждого прохода обратно в качестве входных, пока не перестанут обнаруживаться сигнатуры упаковщика. Всегда проверяйте правильность распакованного кода, прежде чем полагаться на него.

Часто задаваемые вопросы

Упаковщик/распаковщик компрессора JavaScript обращает сжатие кода, как упаковщик Дина Эдвардса. Он обнаруживает упакованный код по его сигнатуре, извлекает закодированные компоненты и восстанавливает исходный читаемый исходный код, заменяя закодированные заполнители реальными ключевыми словами из словаря упаковки.

Упаковщик Dean Edwards Packer оборачивает код в самораспаковывающуюся функцию с сигнатурной функцией (p,a,c,k,e,d). Параметры представляют собой: p (закодированные полезные данные с заполнителями), a (база кодирования, обычно 62), c (количество ключевых слов), k (список ключевых слов, разделенных запятыми), e (функция кодирования) и d (необязательный словарь).

Наш распаковщик работает со стандартным форматом Dean Edwards Packer и конструктивно схожими компрессорами. Он может не работать с пользовательскими реализациями упаковщиков, многоуровневым упакованным кодом или современными инструментами запутывания, использующими совершенно другие методы.

Словарь ключевых слов сопоставляет числовые индексы с фактическими ключевыми словами и идентификаторами JavaScript. Каждый индекс кодируется строкой по основанию N, и каждое вхождение целого слова в полезных данных заменяется соответствующим ключевым словом. Представление извлеченных компонентов показывает полную таблицу сопоставления.

Абсолютно. Вся распаковка происходит полностью в вашем браузере с использованием JavaScript. Упакованный код, извлеченные компоненты и распакованные выходные данные никогда не покинут ваше устройство. Никакой регистрации не требуется, полная конфиденциальность.

Для многоуровневого упакованного кода может потребоваться запустить распаковщик несколько раз. Вставьте распакованный вывод обратно на панель ввода и снова нажмите «Распаковать». При каждом проходе удаляется один слой упаковки, пока код не станет полностью читаемым.

База кодировки (обычно 62) определяет, как индексы ключевых слов преобразуются в строковые идентификаторы. В системе Base 62 используются цифры 0–9 и буквы a–z и A–Z. Более высокая база дает более короткие закодированные идентификаторы, что приводит к более компактному упакованному выводу.

Да, наш упаковщик/распаковщик компрессоров JavaScript на 100 % бесплатен, не требует регистрации, не имеет премиум-уровня, не имеет ограничений на использование, не имеет ограничений по размеру файлов и не содержит рекламы. Используйте его неограниченное количество раз для любых целей.