Resolvedor de Substituições de Arrays em JavaScript
Detecte e resolva padrões de substituição de strings baseados em arrays em código JavaScript. Nossa ferramenta identifica arrays de armazenamento de strings e substitui as expressões de acesso por índice por seus valores reais, tornando o código ofuscado significativamente mais legível.
Privacy Guarantee
All processing runs entirely in your browser. Your JavaScript code never leaves your device. No data is uploaded, stored, or tracked.
Por que usar nosso resolvedor de substituições de arrays em JavaScript?
- Resolução instantânea de substituições de arrays: nosso resolvedor de substituições de arrays em JavaScript analisa o código ofuscado instantaneamente no seu navegador. Detecte padrões de substituição de strings baseados em arrays, resolva acessos por índice em valores em linha e limpe a saída - tudo com zero espera e sem chamadas ao servidor.
- Processamento 100% privado no navegador: seu código JavaScript ofuscado nunca sai do seu navegador. Toda a resolução de substituições de arrays acontece localmente com JavaScript - sem envios a servidores, sem coleta de dados. Seu código e seu conteúdo permanecem completamente privados.
- Sem limites de tamanho de código: analise código JavaScript de qualquer tamanho sem restrições. De pequenos trechos ofuscados a grandes bundles minificados, nosso resolvedor trata qualquer tamanho de entrada com eficiência.
- 100% grátis para sempre: use nosso resolvedor de substituições de arrays em JavaScript totalmente grátis e sem limitações. Sem cadastro, sem taxas ocultas, sem planos premium - apenas desofuscação ilimitada e gratuita sempre que você precisar.
Casos de uso comuns do resolvedor de substituições de arrays em JavaScript
- Engenharia reversa de scripts ofuscados: pesquisadores de segurança e engenheiros reversos podem resolver rapidamente as substituições de strings baseadas em arrays em JavaScript ofuscado, tornando o código mais legível e compreensível para análises posteriores.
- Análise de scripts de malware e phishing: analise JavaScript malicioso que usa ocultação de strings baseada em arrays para esconder cargas úteis, strings de comando e URLs alvo. Resolva os acessos a arrays para revelar o conteúdo oculto e entender o comportamento do malware.
- Auditoria de segurança e revisão de código: auditores de segurança podem desofuscar código JS durante testes de penetração e avaliações de vulnerabilidade. A resolução de substituições de arrays revela strings ocultas como endpoints de API, tokens de autenticação e URLs de backdoor.
- Desafios CTF (Capture The Flag): participantes de CTF encontram com frequência JavaScript ofuscado com substituições de strings baseadas em arrays. Use esta ferramenta para resolver rapidamente os arrays de strings e focar na lógica real do desafio em vez da desofuscação.
- Transparência de scripts de terceiros: analise widgets e SDKs de JavaScript de terceiros que usam ofuscação baseada em arrays para entender a que dados eles acessam e que operações realizam no seu site.
- Aprender técnicas de ofuscação: estudantes e desenvolvedores que estão aprendendo sobre ofuscação de JavaScript podem usar esta ferramenta para visualizar como funcionam as técnicas comuns de substituição de strings baseadas em arrays e ver os valores resolvidos em contexto.
O que é ofuscação por substituição de strings baseada em arrays?
A substituição de strings baseada em arrays é uma das técnicas de ofuscação de JavaScript mais comuns. Ela funciona armazenando todos os literais de string (nomes de funções, mensagens, URLs, etc.) em um ou mais arrays indexados por chaves numéricas. As strings originais são então acessadas por expressões de índice de array como _0x1234[0] em vez dos próprios literais de string. Essa técnica torna muito mais difícil para ferramentas de análise estática e leitores humanos entenderem o que o código faz, já que strings significativas como "https://api.example.com" se tornam expressões crípticas como _0xabcd[42].
Como funciona nosso resolvedor de substituições de arrays em JavaScript
Nosso resolvedor usa um processo de três etapas para desofuscar as substituições de strings baseadas em arrays:
- Detecção de arrays: examina o código de entrada em busca de declarações de variáveis que contêm arrays de valores de string (por exemplo, var _0x = ["Hello", "World"]). Identifica todos esses arrays de armazenamento de strings e seu conteúdo.
- Resolução de acessos: encontra todas as expressões em que esses arrays são acessados com notação de colchetes (por exemplo, _0x[0]). Avalia a expressão de índice para um valor numérico e busca a string correspondente no array. Suporta números diretos, hexadecimal (0xFF), binário (0b1010), octal (0o77) e expressões aritméticas simples.
- Substituição em linha: substitui cada expressão de acesso a array pelo literal de string resolvido e, opcionalmente, remove as declarações de arrays originais da saída. Uma tabela de mapeamento completa mostra cada substituição feita.
Detectar padrões de ofuscação baseados em arrays
A substituição de strings baseada em arrays é fácil de identificar quando você sabe o que procurar. Indicadores comuns incluem declarações de variáveis que contêm arrays de strings aparentemente aleatórias, padrões frequentes de acesso com colchetes como _0x1234[0] ou _0xabc["length"], e nomes de variáveis que parecem números hexadecimais (por exemplo, _0xabcd, _0x1234). Muitos ofuscadores populares usam essa técnica, incluindo javascript-obfuscator, JScrambler e vários empacotadores personalizados. O número de strings por array pode variar de algumas a várias centenas, muitas vezes distribuídas em vários arrays para dificultar a análise.
Limitações e boas práticas
Embora nosso resolvedor trate os padrões de substituição de arrays mais comuns, alguns ofuscadores avançados usam técnicas que podem vencer a detecção simples. Isso inclui construir arrays dinamicamente em tempo de execução, usar acesso a propriedades computadas com expressões complexas, dividir strings entre várias entradas de array ou usar chamadas de função aninhadas para ocultar os acessos a arrays. Para melhores resultados, combine esta ferramenta com outras técnicas de desofuscação, como embelezamento, análise de nomes de variáveis e inspeção manual do código. Sempre verifique a saída resolvida em um ambiente isolado antes de usá-la para análise de segurança.
Perguntas frequentes
Um resolvedor de substituições de arrays em JavaScript detecta e resolve padrões de substituição de strings baseados em arrays comumente usados por ofuscadores de JS. Ele identifica arrays que armazenam valores de string (como var _0x1234 = ["Hello", "World"]) e substitui todas as expressões de acesso a arrays (como _0x1234[0]) pelos valores de string reais ("Hello"). Este é um passo fundamental para desofuscar código JavaScript.
Ofuscadores de JavaScript geralmente extraem todos os literais de string do seu código e os armazenam em um ou mais arrays (muitas vezes com nomes curtos sem significado, como _0x, _0xabcd). Cada acesso a string é então reescrito como uma busca por índice de array. Isso torna o código extremamente difícil de ler, porque em vez de ver valores de string reais você vê referências crípticas a arrays espalhadas pelo código.
Não. Resolver as substituições de arrays apenas muda como as strings são acessadas - de buscas indiretas em arrays para literais de string em linha. O comportamento real do código é preservado. Depois que todos os acessos a arrays são resolvidos e os arrays de declaração removidos, o código resultante é funcionalmente idêntico, mas significativamente mais legível.
Com certeza. Todo o processamento acontece inteiramente no seu navegador com JavaScript. Seu código nunca é enviado a nenhum servidor, armazenado ou transmitido. Esta ferramenta funciona totalmente offline depois de carregada, o que a torna segura para analisar código JavaScript proprietário ou sensível.
A ferramenta detecta padrões comuns de ofuscação, incluindo: arrays de strings var/let/const com valores entre aspas, acesso a arrays por índice hexadecimal (como _0x[0xff]), índices aritméticos simples (como _0x[5+3]) e expressões de índice com operações bit a bit. Ela também trata vários arrays de strings no mesmo arquivo e remove os arrays de declaração após a resolução para uma saída mais limpa.
A ofuscação transforma código legível em uma forma difícil de entender, preservando a funcionalidade. A desofuscação é o processo inverso - ela restaura a legibilidade desfazendo as transformações de ofuscação. A resolução de substituições de arrays é uma técnica específica de desofuscação que reverte a extração de strings e os padrões de acesso baseados em arrays usados pelos ofuscadores.
Sim. Pesquisadores de segurança, pentesters e engenheiros reversos usam ferramentas como esta para analisar JavaScript ofuscado encontrado em malware, páginas de phishing ou outros conteúdos web suspeitos. Resolver as substituições de arrays costuma ser o primeiro passo para entender o que o código ofuscado realmente faz.
Esta ferramenta trata o padrão mais comum, em que arrays de strings são declarados com valores literais e acessados com índices simples. Ofuscadores muito avançados podem usar arrays gerados em tempo de execução ou código automodificável que não pode ser resolvido estaticamente. Para a maioria dos ofuscadores padrão e intermediários, esta ferramenta oferece excelentes resultados.