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

Распаковщик оценок/функций JavaScript

Обнаружение и распаковка кода JavaScript, скрытого внутри вызовов eval(), new Function(), setTimeout() и setInterval(). Рекурсивно извлекает вложенные оценочные слои глубиной до 5 уровней и показывает исходный код на каждом уровне глубины — с рейтингами серьезности, номерами строк и извлеченными предварительными просмотрами для каждого слоя. Бесплатно, конфиденциально и не требует регистрации.

JavaScript Eval/Function Unpacker

Detect and unpack JavaScript code hidden inside eval(), new Function(), setTimeout(), and setInterval() calls. Recursively extracts nested eval layers and shows the original code at each depth level — perfect for deobfuscating packed scripts and analyzing malicious code. All processing runs locally in your browser with no data uploaded.

Paste JavaScript code containing eval(), new Function(), setTimeout(), or setInterval() with string arguments above, then click Unpack Code. Nested eval layers will be recursively extracted — up to 5 levels deep. Click Load example obfuscated code to try it.

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

  • Мгновенное обнаружение и распаковка оценки/функции: мгновенно обнаруживайте и распаковывайте код JavaScript, скрытый внутри вызовов eval(), new Function(), setTimeout() и setInterval(). Наш распаковщик JS eval сканирует ваш код, определяет все шаблоны динамического выполнения кода и извлекает скрытый исходный код — ручной поиск или отладка не требуются.
  • Безопасный и конфиденциальный анализ кода. Распаковщик функций/оценок JavaScript полностью работает в вашем браузере. Ваш код, извлеченные строки и результаты анализа никогда не покинут ваше устройство. Никакой загрузки данных, никакого отслеживания, никакой регистрации не требуется — полная конфиденциальность всей вашей работы по анализу кода.
  • Eval Unpacker Online — без установки. Используйте JS-распаковщик eval/функций непосредственно в любом современном браузере без каких-либо загрузок, приложений или плагинов. Имеет двухпанельный редактор, рекурсивное извлечение оценок глубиной до 5 уровней и распаковку одним щелчком мыши с подробными отчетами о шаблонах.
  • Рекурсивное извлечение вложенных оценок и анализ глубины. В отличие от базовых инструментов поиска, наш распаковщик eval рекурсивно извлекает код из вложенных вызовов eval() — глубиной до 5 уровней. Каждый слой идентифицируется индивидуально, а распакованные выходные данные показывают, какой код был скрыт внутри каждого вызова eval(), новой функции() или таймера, с четкими аннотациями.

Распространенные случаи использования средства распаковки оценок/функций JavaScript

  • Анализ упакованного JavaScript с помощью вызовов eval(). Разработчики и исследователи безопасности используют распаковщик JS eval для анализа кода JavaScript, который использует eval() для выполнения динамически созданных строк. Вставьте упакованный код, чтобы мгновенно извлечь и прочитать скрытый код внутри каждого вызова eval(), включая глубоко вложенные слои eval, которые традиционные инструменты поиска не пропустят.
  • Анализ вредоносного кода и обнаружение угроз. Специалисты по кибербезопасности используют распаковщик eval/function для анализа потенциально вредоносных сценариев. Злоумышленники часто скрывают полезные данные внутри вызовов eval(), новых конструкторов Function() или строковых аргументов setTimeout(), чтобы избежать статического анализа. Инструмент обнаруживает и извлекает эти скрытые полезные данные, показывая фактический выполняемый код.
  • Реверс-инжиниринг запутанного JavaScript: обратные инженеры используют распаковщик eval для деобфускации кода JavaScript, который использует генерацию кода во время выполнения. Многие обфускаторы упаковывают свой код в виде строк eval() или вызовов конструктора функций. Инструмент извлекает каждый слой и помечает распакованный код четкими маркерами, показывающими, где он был скрыт.
  • Отладка динамически генерируемого кода. Разработчики внешнего интерфейса отлаживают динамически генерируемый код JavaScript, используя распаковщик eval, чтобы увидеть, какой код на самом деле выполняется. Когда сторонние библиотеки или платформы используют eval() или new Function() внутри себя, инструмент раскрывает сгенерированный код, что упрощает отслеживание ошибок и понимание неожиданного поведения.
  • Исследование уязвимостей и аудит кода. Аудиторы безопасности используют распаковщик функций/оценок JavaScript во время аудита кода для выявления небезопасного использования eval() и связанных с ним шаблонов. Инструмент выделяет все вызовы динамического выполнения кода, их уровни серьезности и глубину вложенности, помогая аудиторам оценить профиль рисков и определить код, который следует реорганизовать в целях безопасности.
  • Изучение шаблонов выполнения кода JavaScript. Студенты и разработчики, изучающие безопасность JavaScript, используют распаковщик eval, чтобы понять, как работают eval(), new Function() и выполнение кода на основе таймера. В отчете об обнаружении шаблонов показаны реальные примеры каждого метода, что позволяет легко увидеть, как динамическое выполнение кода используется (и злоупотребляется) на практике.

Что такое распаковка оценок/функций JavaScript?

Распаковка оценки/функции JavaScript — это процесс извлечения и раскрытия кода, который выполняется динамически с помощью функций JavaScript eval(), new Function(), setTimeout() и setInterval(). Эти функции принимают код JavaScript в качестве строковых аргументов и выполняют его во время выполнения, что делает код невидимым для инструментов статического анализа и случайной проверки.

Обфускаторы и вредоносные скрипты обычно используют эти методы, чтобы скрыть свою истинную функциональность. Код, передаваемый в eval(), сам может содержать дополнительные вызовы eval(), создавая вложенные слои, которые необходимо рекурсивно разворачивать. Наш распаковщик функций/оценок JavaScript автоматически обнаруживает все четыре шаблона, извлекает скрытый код из каждого и рекурсивно обрабатывает до 5 уровней вложенности для полной распаковки запутанного кода.

Как работает наш распаковщик оценок/функций JavaScript

  1. 1. Вставка и сканирование. Вставьте запутанный код JavaScript на панель ввода. Распаковщик сканирует каждый символ на предмет четырех конкретных шаблонов: вызовы eval() со строковыми аргументами, новые конструкторы Function() со строками кода, вызовы setTimeout() со строковым кодом и вызовы setInterval() со строковым кодом. Каждое совпадение записывается с указанием номера строки, уровня серьезности и глубины вложенности.
  2. 2. Рекурсивное извлечение. Когда eval() или другой динамический вызов содержит код, который сам использует дальнейшие вызовы eval(), распаковщик рекурсивно обрабатывает извлеченный код — до 5 уровней в глубину. Каждый слой независимо идентифицируется и извлекается. Например, eval("eval('code')") распаковывается как два отдельных слоя: уровень 1 содержит внешний вызов, а уровень 2 — внутренний код.
  3. 3. Просмотр и экспорт. Распакованный код отображается на панели вывода со встроенными аннотациями, показывающими, что и откуда было извлечено. Статистика показывает общее количество обнаружений, найденные типы, максимальную глубину вложенности и сравнение размеров. В таблице сведений о шаблонах перечислены все совпадения с указанием серьезности, номера строки и глубины вложенности. Разверните извлеченный код на каждом слое, чтобы увидеть скрытый код на каждом уровне глубины. Скопируйте или скачайте полностью распакованный результат.

Обнаруженные закономерности и последствия для безопасности

  • Вызовы eval() (высокая серьезность): eval(string) выполняет произвольный код JavaScript, переданный в виде строки. Это наиболее часто используемый шаблон в запутанных и вредоносных сценариях, поскольку он может выполнять любой код во время выполнения. Это также имеет серьезные последствия для производительности и безопасности — eval может получить доступ к локальной области, что делает его особенно опасным.
  • новый конструктор Function() (высокий уровень серьезности): новая функция('return...') создает новую функцию из строки. Хотя он немного безопаснее, чем eval (он выполняется в глобальном масштабе, а не локально), он по-прежнему широко используется для обфускации. Конструктор Function часто используется в многоуровневой обфускации для создания и выполнения строк кода без срабатывания детекторов оценки.
  • Строковые аргументы setTimeout/setInterval (средняя степень серьезности). Передача строк в setTimeout() или setInterval() — это антишаблон, который также позволяет запутывать код. Хотя вредоносные сценарии менее распространены в рабочем коде, они иногда используют функции таймера со строковым кодом, чтобы задержать выполнение или обойти эвристику обнаружения на основе времени.

Конфиденциальность, безопасность и доступность

Распаковщик функций и оценок JavaScript абсолютно бесплатен и не требует регистрации. Весь анализ кода выполняется локально в вашем браузере с использованием сопоставления с образцом JavaScript — ваш запутанный код, извлеченные строки и результаты анализа никогда не покидают ваше устройство. Ограничений на размер файла или ограничений на использование нет. Инструмент обнаруживает до 5 уровней вложенности шаблонов eval, конструктора функций, setTimeout и setInterval, предоставляет подробные представления извлечения для каждого слоя, а также включает функции копирования в буфер обмена и загрузки. Используйте его столько раз, сколько вам нужно для распаковки запутанного кода JavaScript.

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

Распаковщик функций и оценок JavaScript — это инструмент, который обнаруживает и извлекает код, скрытый внутри вызовов eval(), new Function(), setTimeout() и setInterval(). Эти функции выполняют код JavaScript, передаваемый в виде строковых аргументов во время выполнения, что делает код невидимым для статического анализа. Распаковщик автоматически находит эти шаблоны, извлекает скрытый код и рекурсивно обрабатывает вложенные уровни eval глубиной до 5 уровней.

Распаковщик eval/function обнаруживает четыре шаблона: вызовы eval() со строковыми аргументами, новые конструкторы Function() со строками кода, вызовы setTimeout() со строковым кодом и вызовы setInterval() со строковым кодом. Каждый шаблон идентифицируется по уровню серьезности, номеру строки и глубине вложенности — до 5 уровней рекурсии.

Когда вызов eval() содержит код, который сам содержит вызовы eval(), распаковщик рекурсивно обрабатывает извлеченный код для распаковки внутренних слоев. Например, если у вас есть eval("var x = 1; eval('var y = 2');"), инструмент сначала извлекает внешний код, а затем обрабатывает его, чтобы найти внутренний eval() в качестве второго слоя. Это продолжается до 5 уровней вложенности.

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

И eval(), и new Function() выполняют код из строк, но они различаются по области действия. eval() выполняет код в текущей локальной области и может обращаться к локальным переменным, что делает его более опасным. new Function() создает функцию, которая выполняется в глобальной области видимости. Наш распаковщик обнаруживает оба шаблона и присваивает каждому высокий уровень серьезности.

Передача строк в setTimeout/setInterval является антишаблоном JavaScript, поскольку имеет те же последствия для безопасности, что и eval(). Обфусцированный или вредоносный код использует этот метод, чтобы скрыть выполнение кода за функциями таймера, часто для задержки выполнения или уклонения от обнаружения статического анализа.

Да. Распаковщик рекурсивно обрабатывает вызовы eval(), new Function(), setTimeout() и setInterval() глубиной до 5 уровней. Каждый извлеченный слой независимо идентифицируется и помечается его уровнем глубины. Если код имеет более 5 уровней, могут потребоваться дополнительные проходы.

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

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