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

Деобфускатор потока управления JavaScript

Обратное выравнивание потока управления в коде JavaScript онлайн бесплатно. Наш деобфускатор потока управления обнаруживает шаблоны диспетчера while(true), отображает переходы состояний, идентифицирует переменные состояния и генерирует сопоставления между состояниями и блоками, чтобы помочь восстановить исходную логику ветвления. Включает автоматическую диаграмму перехода состояний, анализ случаев и подробную статистику. Бесплатная частная обработка на основе браузера, регистрация не требуется.

JavaScript Control Flow Deobfuscator

Detect and reverse control-flow flattening in JavaScript code. Identifies while(true) dispatcher patterns, traces state assignments, maps state transitions, and reconstructs the original branching logic. Includes state-to-block mapping and transition diagram.

Paste JavaScript code with control-flow flattening above and click Analyze Control Flow to detect state transitions and reconstruct branching logic. Click Load example flattened code to try it with a sample.

Зачем использовать наш деобфускатор потока управления JavaScript?

  • Мгновенное обнаружение и анализ потока управления: анализируйте код JavaScript для мгновенного выравнивания потока управления с помощью нашего деобфускатора. Инструмент автоматически обнаруживает шаблоны диспетчера while(true), диспетчеры цикла for и другие методы выравнивания потока управления. Идентифицирует переменную состояния, блоки регистров и переходы состояний в реальном времени — без ожидания и без вызовов сервера.
  • Безопасная и конфиденциальная обработка кода: вся деобфускация потока управления происходит полностью в вашем браузере. Ваш запутанный код, результаты анализа и данные сопоставления состояний никогда не покинут ваше устройство. Никакой загрузки данных, никакого отслеживания, никакой регистрации не требуется — полная конфиденциальность всей вашей работы по анализу кода.
  • Деобфускатор потока управления онлайн — без установки. Используйте деобфускатор потока управления JavaScript непосредственно в любом современном браузере без каких-либо загрузок, приложений или плагинов. Имеет двухпанельный редактор, автоматическое обнаружение перехода состояний, таблицу сопоставления состояний и блоков и генерацию диаграммы переходов.
  • Сопоставление состояний и анализ переходов. Наш деобфускатор потока управления обеспечивает полное сопоставление состояний с блоками, показывая каждое значение состояния, связанную с ним сводку кодовых блоков и все переходы в другие состояния. Посмотрите полную диаграмму перехода состояний и поймите, как изначально разветвлялся сглаженный поток управления.

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

  • Реверс-инжиниринг запутанных библиотек JavaScript. Аналитики и разработчики безопасности используют деобфускатор потока управления для обратного проектирования библиотек JavaScript, защищенных с помощью выравнивания потока управления. Определив шаблон диспетчера и сопоставив переходы состояний, они могут восстановить исходную логику ветвления, скрытую за уплощенной структурой переключателя while(true).
  • Анализ вредоносных программ и фишинговых сценариев. Специалисты по кибербезопасности анализируют вредоносные образцы JavaScript, которые используют выравнивание потока управления, чтобы избежать обнаружения. Деобфускатор раскрывает скрытую логику ветвления, позволяя идентифицировать пути доставки вредоносной полезной нагрузки, цепочки перенаправления и код кражи данных, скрытый под многочисленными переходами состояний.
  • Понимание поведения сторонних сценариев. Разработчики используют деобфускатор потока управления, чтобы понять, что на самом деле делают запутанные сторонние сценарии, прежде чем интегрировать их. Сопоставление состояний показывает точки принятия решений, ветви вызовов API и логику сбора данных, которые в противном случае были бы скрыты под плоским потоком управления.
  • Отладка запутанного производственного кода. Разработчики внешнего интерфейса, отлаживающие минифицированный и запутанный производственный код JavaScript, используют деобфускатор потока управления для отслеживания путей выполнения. Диаграмма перехода состояний помогает им понять ход выполнения программы, когда инструменты отладки ломаются из-за уплощенных структур потока управления.
  • Аудит кода и исследование уязвимостей. Аудиторы безопасности используют деобфускатор потока управления во время аудита кода для анализа сторонних зависимостей, которые используют выравнивание потока управления. Сопоставление состояний с блоками помогает определить, какие пути выполнения ведут к конфиденциальным операциям или точкам доступа к данным.
  • Изучение методов обфускации потока управления. Студенты и разработчики, изучающие расширенную обфускацию потока управления JavaScript, используют деобфускатор потока управления, чтобы понять, как сглаживание потока управления преобразует обычный код ветвления в шаблоны на основе диспетчера. Параллельный анализ показывает запутанные входные данные наряду с отображением состояний.

Что такое деобфускация потока управления?

Деобфускация потока управления — это процесс обращения вспять сглаживания потока управления, продвинутый метод запутывания, который преобразует естественную структуру ветвления программы (операторы if/else, циклы, условные возвраты) в диспетчер конечного автомата. Вместо читаемой условной логики код использует переменную состояния и цикл диспетчера (обычно while(true) обертывающий оператор переключения) для управления потоком выполнения. Каждый блок кода становится случаем в переключателе, а переходы между блоками контролируются изменением переменной состояния. Наш деобфускатор потока управления обнаруживает эти шаблоны, отображает переходы состояний и помогает восстановить исходную логику ветвления, что значительно упрощает понимание и анализ кода.

Как работает наш деобфускатор потока управления

  1. 1. Вставьте сглаженный код JavaScript. Вставьте запутанный код JavaScript, использующий сглаживание потока управления, на панель ввода. Инструмент сканирует шаблоны диспетчера, включая while(true) и циклы, содержащие операторы переключения с переменной состояния. Нажмите «Загрузить пример сведенного кода», чтобы опробовать его на реалистичном образце, демонстрирующем все распространенные шаблоны сглаживания.
  2. 2. Нажмите «Анализ потока управления». Деобфускатор идентифицирует шаблон диспетчера, извлекает имя переменной состояния, находит все метки регистров и сопоставляет назначения состояний. Он генерирует полное сопоставление состояний с блоками, показывающее каждое значение состояния, блок кода, которым он управляет, и все переходы в другие состояния. Автоматически создается диаграмма перехода, показывающая поток между состояниями.
  3. 3. Просмотр анализа перехода состояний. На панели анализа отображается диаграмма перехода и статистика, включая тип диспетчера, количество состояний и количество назначений состояний. Таблица интерактивного сопоставления состояний предоставляет подробную информацию о каждом состоянии: его значении, сводке блока кода и всех целевых состояниях, что помогает понять реконструированную логику ветвления.

Какие шаблоны потока управления обнаруживаются

  • Диспетчер While-True: наиболее распространенный шаблон использует {' while(true) { switch(state) }'} . Цикл никогда не завершается естественным образом; вместо этого переходы между состояниями определяют, какой случай будет выполнен следующим. Этот шаблон используется популярными обфускаторами, такими как JavaScript Obfuscator и Jscrambler.
  • Диспетчер цикла For: некоторые обфускаторы используют в качестве диспетчера цикл for вместо while(true) , иногда со счетчиком цикла, который дублируется как переменная состояния. Деобфускатор также обнаруживает эти альтернативные шаблоны диспетчера.
  • Варианты оберток циклов: также обнаруживаются другие типы циклов, такие как do... while и вложенные структуры циклов, обертывающие операторы переключения. Инструмент идентифицирует переменную состояния и отображает все блоки case независимо от структуры внешнего цикла.
  • Назначения состояний и переходы: переходы каждого блока состояния отслеживаются путем поиска всех назначений переменной состояния в каждом блоке варианта. Диаграмма перехода показывает полный граф потока от входа до конечного состояния.

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

Деобфускатор потока управления абсолютно бесплатен и не требует регистрации. Весь анализ кода выполняется локально в вашем браузере с использованием сопоставления с образцом — ваш запутанный код и результаты анализа никогда не покидают ваше устройство. Ограничений на размер файла или ограничений на использование нет. Обратите внимание, что этот инструмент выполняет обнаружение на основе шаблонов, а не полную семантическую реконструкцию. Сложная обфускация с несколькими слоями или значениями состояния, генерируемыми во время выполнения, может потребовать дополнительных проходов анализа. Для полной деобфускации используйте другие инструменты, такие как JavaScript Deobfuscator/Unpacker для декодирования шестнадцатеричных строк и Deobfuscator имени переменной для восстановления идентификатора. Всегда сохраняйте резервную копию исходного, читаемого исходного кода в системе контроля версий.

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

Деобфускатор потока управления JavaScript отменяет сглаживание потока управления — продвинутый метод запутывания, который преобразует обычную логику ветвления в конечный автомат с диспетчером переключателей while(true). Он обнаруживает шаблон диспетчера, отображает переходы состояний и восстанавливает исходную логику ветвления.

Сглаживание потока управления реструктурирует код в плоский конечный автомат. Вместо читаемых условий if/else код использует переменную состояния и диспетчер переключения while(true), где каждый исходный блок кода становится случаем, а выполнение выполняется между блоками путем изменения переменной состояния.

Инструмент обнаруживает диспетчеры переключателей while(true), диспетчеры циклов for и другие варианты циклов. Он идентифицирует переменную состояния, извлекает метки регистра, сопоставляет назначения состояний и генерирует полную диаграмму перехода состояний.

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

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

Популярные обфускаторы, включая JavaScript Obfuscator, Jscrambler и пользовательские платформы, используют выравнивание потока управления, часто в сочетании с кодированием строк, переименованием переменных и внедрением мертвого кода.

Да — 100 % бесплатно, без регистрации, аккаунта и ограничений на использование. Анализируйте любой код JavaScript столько раз, сколько вам нужно, и всегда.