Pular para o conteúdo
Aback Tools Logo

Desofuscador de fluxo de controle JavaScript

Achatamento reverso do fluxo de controle em código JavaScript online gratuitamente. Nosso desofuscador de fluxo de controle detecta padrões de despachante while(true), mapeia transições de estado, identifica variáveis ​​de estado e gera mapeamentos de estado para bloco para ajudar a reconstruir a lógica de ramificação original. Inclui diagrama automático de transição de estado, análise de caso e estatísticas detalhadas. Processamento gratuito e privado baseado em navegador, sem necessidade de inscrição.

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.

Por que usar nosso desofuscador de fluxo de controle JavaScript?

  • Detecção e análise instantânea de fluxo de controle: analise o código JavaScript para nivelamento do fluxo de controle instantaneamente com nosso desofuscador. A ferramenta detecta automaticamente padrões de despachantes while(true), despachantes for-loop e outras técnicas de nivelamento de fluxo de controle. Identifica a variável de estado, blocos de casos e transições de estado em tempo real - sem espera, sem chamadas do servidor.
  • Processamento de código seguro e privado: toda a desofuscação do fluxo de controle acontece inteiramente no seu navegador. Seu código ofuscado, resultados de análise e dados de mapeamento de estado nunca saem do seu dispositivo. Nenhum dado carregado, nenhum rastreamento, nenhuma inscrição necessária - total privacidade para todo o seu trabalho de análise de código.
  • Desofuscador de fluxo de controle on-line - sem instalação: use o desofuscador de fluxo de controle JavaScript diretamente em qualquer navegador moderno, sem necessidade de downloads, aplicativos ou plug-ins. Apresenta um editor de dois painéis, detecção automática de transição de estado, tabela de mapeamento de estado para bloco e geração de diagrama de transição.
  • Mapeamento de estado e análise de transição: Nosso desofuscador de fluxo de controle fornece um mapeamento completo de estado para bloco, mostrando cada valor de estado, seu resumo de bloco de código associado e todas as transições para outros estados. Veja o diagrama completo de transição de estado e entenda como o fluxo de controle nivelado se ramificou originalmente.

Casos de uso comuns para desofuscador de fluxo de controle

  • Bibliotecas JavaScript ofuscadas por engenharia reversa: analistas e desenvolvedores de segurança usam o desofuscador de fluxo de controle para fazer engenharia reversa de bibliotecas JavaScript protegidas com nivelamento de fluxo de controle. Ao identificar o padrão do despachante e mapear as transições de estado, eles podem reconstruir a lógica de ramificação original escondida atrás da estrutura de switch while(true) achatada.
  • Análise de scripts de malware e phishing: profissionais de segurança cibernética analisam amostras de JavaScript maliciosas que usam nivelamento de fluxo de controle para evitar a detecção. O desofuscador revela a lógica de ramificação oculta, tornando possível identificar caminhos de entrega de carga maliciosa, cadeias de redirecionamento e código de exfiltração de dados enterrados em múltiplas transições de estado.
  • Compreendendo o comportamento de scripts de terceiros: os desenvolvedores usam o desofuscador de fluxo de controle para entender o que os scripts de terceiros ofuscados realmente fazem antes de integrá-los. O mapeamento de estado revela pontos de decisão, ramificações de chamadas de API e lógica de coleta de dados que, de outra forma, ficariam ocultos sob o fluxo de controle nivelado.
  • Depurando código de produção ofuscado: desenvolvedores front-end que depuram JavaScript de produção minificado e ofuscado usam o desofuscador de fluxo de controle para rastrear caminhos de execução. O diagrama de transição de estado os ajuda a entender o fluxo do programa quando as ferramentas de depuração quebram em estruturas de fluxo de controle achatadas.
  • Auditoria de código e pesquisa de vulnerabilidades: Os auditores de segurança usam o desofuscador de fluxo de controle durante auditorias de código para analisar dependências de terceiros que usam nivelamento de fluxo de controle. O mapeamento de estado para bloco ajuda a identificar quais caminhos de execução levam a operações confidenciais ou pontos de acesso a dados.
  • Aprendendo técnicas de ofuscação de fluxo de controle: Estudantes e desenvolvedores que aprendem sobre ofuscação avançada de JavaScript usam o desofuscador de fluxo de controle para entender como o nivelamento de fluxo de controle transforma código de ramificação regular em padrões baseados em despachante. A análise lado a lado mostra a entrada ofuscada junto com o mapeamento do estado.

O que é desofuscação de fluxo de controle?

A desofuscação do fluxo de controle é o processo de reversão do nivelamento do fluxo de controle, uma técnica avançada de ofuscação que transforma a estrutura de ramificação natural de um programa (instruções if/else, loops, retornos condicionais) em um despachante de máquina de estado. Em vez de lógica condicional legível, o código usa uma variável de estado e um loop de despachante (normalmente while(true) agrupando uma instrução switch) para controlar o fluxo de execução. Cada bloco de código se torna um caso no switch e as transições entre os blocos são controladas pela alteração da variável de estado. Nosso desofuscador de fluxo de controle detecta esses padrões, mapeia as transições de estado e ajuda a reconstruir a lógica de ramificação original, tornando o código muito mais fácil de entender e analisar.

Como funciona nosso desofuscador de fluxo de controle

  1. 1. Colar código JavaScript nivelado: cole o código JavaScript ofuscado que usa nivelamento de fluxo de controle no painel de entrada. A ferramenta procura padrões de despachante, incluindo loops while(true) e for contendo instruções switch com uma variável de estado. Clique em "Carregar exemplo de código nivelado" para testá-lo com uma amostra realista que demonstra todos os padrões de nivelamento comuns.
  2. 2. Clique em Analisar Fluxo de Controle: O desofuscador identifica o padrão do despachante, extrai o nome da variável de estado, localiza todos os rótulos de caso e mapeia atribuições de estado. Ele gera um mapeamento completo de estado para bloco mostrando cada valor de estado, o bloco de código que ele controla e todas as transições para outros estados. Um diagrama de transição é gerado automaticamente mostrando o fluxo entre os estados.
  3. 3. Revise a análise de transição de estado: O painel de análise mostra o diagrama de transição e estatísticas, incluindo tipo de despachante, contagem de estado e número de atribuições de estado. A tabela interativa de mapeamento de estado fornece informações detalhadas sobre cada estado: seu valor, o resumo do bloco de código e todos os estados de destino - ajudando você a entender a lógica de ramificação reconstruída.

Quais padrões de fluxo de controle são detectados

  • While-True Dispatcher: O padrão mais comum usa {'while(true) { switch(state) }'} . O loop nunca termina naturalmente; em vez disso, as transições de estado controlam qual caso será executado em seguida. Este é o padrão usado por ofuscadores populares como JavaScript Obfuscator e Jscrambler.
  • For-Loop Dispatcher: Alguns ofuscadores usam um for loop como despachante em vez de while(true) , às vezes com um contador de loop que funciona como variável de estado. O desofuscador também detecta esses padrões alternativos de despachante.
  • Variações do wrapper de loop: Outros tipos de loop, como do...while e estruturas de loop aninhadas que envolvem instruções switch, também são detectados. A ferramenta identifica a variável de estado e mapeia todos os blocos de casos, independentemente da estrutura do loop externo.
  • Atribuições e transições de estado: as transições de cada bloco de estado são rastreadas encontrando todas as atribuições à variável de estado dentro de cada bloco de caso. O diagrama de transição mostra o gráfico de fluxo completo desde a entrada até os estados terminais.

Privacidade, segurança e limitações

O desofuscador de fluxo de controle é 100% gratuito, sem necessidade de inscrição. Toda a análise de código é realizada localmente no seu navegador usando correspondência de padrões - seu código ofuscado e os resultados da análise nunca saem do seu dispositivo. Não há limites de tamanho de arquivo ou limites de uso. Observe que esta ferramenta realiza detecção baseada em padrões, não reconstrução semântica completa. A ofuscação complexa com múltiplas camadas ou valores de estado gerados em tempo de execução pode exigir passagens de análise adicionais. Para desofuscação completa, combine com outras ferramentas como o JavaScript Deobfuscator/Unpacker para decodificação de string hexadecimal e o Variable Name Deobfuscator para restauração de identificador. Sempre mantenha o backup do seu código-fonte original e legível no controle de versão.

Perguntas frequentes

Um desofuscador de fluxo de controle JavaScript reverte o achatamento do fluxo de controle, uma técnica avançada de ofuscação que transforma a lógica de ramificação normal em uma máquina de estado com um despachante de switch while(true). Ele detecta o padrão do despachante, mapeia transições de estado e reconstrói a lógica de ramificação original.

O nivelamento do fluxo de controle reestrutura o código em uma máquina de estado simples. Em vez de condições if/else legíveis, o código usa uma variável de estado e um despachante de switch while(true) onde cada bloco de código original se torna um caso e a execução flui entre os blocos alterando a variável de estado.

A ferramenta detecta despachantes de switch while(true), despachantes de loop for e outras variações de loop. Ele identifica a variável de estado, extrai rótulos de caso, mapeia atribuições de estado e gera um diagrama completo de transição de estado.

Ele fornece detecção baseada em padrões e mapeamento de estado para ajudar a reconstruir a lógica de ramificação. A reconstrução semântica completa requer a compreensão da semântica do código além da correspondência de padrões. Use junto com outras ferramentas de desofuscação para obter resultados completos.

Absolutamente. Todo o processamento acontece localmente no seu navegador – seu código nunca sai do seu dispositivo. Sem uploads, sem rastreamento, sem necessidade de inscrição.

Obfuscadores populares, incluindo JavaScript Obfuscator, Jscrambler e estruturas personalizadas, usam nivelamento de fluxo de controle, geralmente combinado com codificação de string, renomeação de variáveis ​​e injeção de código morto.

Sim - 100% gratuito, sem inscrição, sem conta, sem limites de uso. Analise qualquer código JavaScript quantas vezes precisar, para sempre.