Pular para o conteúdo
Aback Tools Logo

Analisador de complexidade de código

Analise a complexidade do código-fonte para detetar padrões de ofuscação e avaliar a qualidade do código. Meça a complexidade ciclomática, a profundidade de aninhamento, o comprimento de funções, a qualidade de identificadores e a entropia de Shannon. Obtenha uma pontuação de legibilidade (A-F) com indicadores de ofuscação marcados por gravidade. 100 % privado: todo o processamento acontece no seu navegador.

Code Complexity Analyzer

Quick examples:

Paste source code above or choose a quick example to analyze its complexity

100% Private: All code complexity analysis happens entirely in your browser. Your source code is never sent to any server. No data leaves your device.

Analisador de complexidade de código

[ ]

Cole o código-fonte acima ou escolha um exemplo rápido para analisar a sua complexidade

100 % privado: toda a análise de complexidade do código acontece inteiramente no seu navegador. O seu código-fonte nunca é enviado para qualquer servidor. Nenhum dado sai do seu dispositivo.

  • Copiado!: Relatório de análise copiado para a área de transferência.
  • Falha ao copiar: Não foi possível copiar para a área de transferência.

Por que usar o nosso analisador de complexidade de código?

  • Pontuação de complexidade ciclomática: Calcule a complexidade ciclomática contando os pontos de decisão no seu código — if/else, ciclos for/while, casos switch, blocos catch, operadores ternários e operadores lógicos. Pontuações mais altas indicam código mais difícil de testar e manter, que pode estar intencionalmente ofuscado.
  • Análise de profundidade de aninhamento: Analise a profundidade de aninhamento máxima e média do seu código. Estruturas muito aninhadas (5+ níveis) são uma marca do código ofuscado ou gerado por máquina. O nosso analisador acompanha tanto o aninhamento por chaves como o baseado em indentação em todas as linguagens.
  • Deteção de padrões de ofuscação: Deteta automaticamente sinais de alarme: identificadores curtos (média < 5 caracteres), nomes de variáveis tipo hexadecimal (formato _0x), funções anormalmente longas (100+ linhas), entropia extremamente elevada, comentários escassos e aninhamento excessivo. Cada aviso inclui uma classificação de gravidade e uma explicação acionável.
  • Processamento 100 % privado no navegador: Toda a análise de complexidade do código acontece localmente no seu navegador com JavaScript puro. O seu código-fonte nunca sai do seu dispositivo — sem envios para servidores, sem registo de dados, sem preocupações de privacidade. 100 % grátis e sem cadastro.

Casos de uso comuns do analisador de complexidade de código

  • Revisão de segurança de código: Assinale código potencialmente malicioso ou ofuscado em pull requests e submissões de código. Picos de complexidade, identificadores suspeitosamente curtos e padrões de entropia anómalos ajudam os revisores de segurança a identificar código que merece uma inspeção mais atenta antes da implementação.
  • Auditorias de qualidade de código: Avalie a saúde do código medindo a complexidade ciclomática, a profundidade de aninhamento e o comprimento de funções no seu projeto. Identifique funções que ultrapassam os limites de manutenibilidade e priorize os esforços de refatoração com base em dados quantitativos de complexidade.
  • Análise de malware e cargas maliciosas: Analise scripts suspeitos em busca de indicadores de ofuscação antes de os executar num ambiente isolado. Entropia extremamente elevada, funções minificadas numa única linha, nomes de variáveis tipo hexadecimal e comentários quase nulos são assinaturas comuns de cargas maliciosas.
  • Educação em programação: Ajude os alunos a compreender os conceitos de complexidade do código visualizando a complexidade ciclomática, a profundidade de aninhamento e as métricas de qualidade de identificadores. Compare código bem estruturado com exemplos ofuscados lado a lado e com análise quantitativa.
  • Avaliação de bibliotecas de terceiros: Avalie pacotes de código aberto e dependências incluídas em busca de ofuscação antes de os integrar no seu projeto. A análise automática de complexidade ajuda a revelar código suspeito que uma revisão manual poderia não detetar em bases de código grandes.
  • Priorização de refatoração: Identifique as funções mais complexas do seu código para priorizar os esforços de refatoração. Funções com complexidade ciclomática superior a 15, profundidade de aninhamento superior a 5 ou comprimento superior a 50 linhas são candidatas ideais à simplificação e a melhores testes.

O que é a análise de complexidade de código?

A análise de complexidade de código é o processo de medir quão complexo é um fragmento de código-fonte usando métricas quantitativas. Vai além da simples contagem de linhas para avaliar características estruturais como o número de caminhos independentes no código (complexidade ciclomática), quão aninhados estão os blocos, quão longas são as funções e quão significativos são os nomes dos identificadores. No contexto da deteção de ofuscação, a análise de complexidade é uma ferramenta poderosa porque o código ofuscado apresenta tipicamente valores extremos em várias métricas ao mesmo tempo — identificadores muito curtos, fluxo de controlo profundamente aninhado e complexidade ciclomática anormalmente elevada que dificultam a compreensão do código. O nosso analisador compara estas métricas com limites estabelecidos e assinala automaticamente padrões suspeitos.

Como funciona o nosso analisador de complexidade de código

  1. Analisar: Cole o seu código-fonte e selecione a linguagem adequada. O analisador percorre o código para identificar funções, estruturas de controlo de fluxo, identificadores, comentários e tokens — não é necessária compilação real.
  2. Medir: O motor calcula seis métricas-chave: complexidade ciclomática (contando pontos de decisão), profundidade de aninhamento (máxima e média), comprimento de funções (máx., mín., média), análise do comprimento de identificadores (média e extremos), proporção de comentários em relação ao código e entropia de Shannon da distribuição de caracteres.
  3. Assinalar e pontuar: Cada métrica é comparada com limites de ofuscação para gerar avisos específicos com classificações de gravidade. Uma pontuação global de legibilidade (0-100) e uma classificação por letra (A-F) resumem a transparência do código num relance.

Métricas de complexidade essenciais explicadas

  • Complexidade ciclomática: Conta o número de caminhos linearmente independentes no código. Cada if, else, for, while, case, catch, && e || acrescenta um caminho. Valores abaixo de 10 são considerados saudáveis; acima de 15 é suspeito; acima de 30 indica fortemente ofuscação.
  • Profundidade de aninhamento: Mede quantos níveis de profundidade os blocos de código atingem. 3-4 níveis é normal para lógica complexa. 5-7 é suspeito. Acima de 8 níveis é quase certamente ofuscado ou gerado por máquina.
  • Comprimento dos identificadores: O código ofuscado usa identificadores muito curtos (a, b, _0x). Um comprimento médio inferior a 5 caracteres sem identificadores longos é um forte sinal de ofuscação. O código bem escrito tem em média 6 a 12 caracteres por identificador.
  • Entropia dos tokens: A entropia de Shannon mede a aleatoriedade da distribuição de caracteres. O código natural tem uma entropia de cerca de 4,0-4,8 bits/carácter. O código ofuscado ou codificado ultrapassa frequentemente 5,0 bits/carácter devido a cadeias hexadecimais e tokens aleatorizados.

Privacidade, segurança e disponibilidade

100 % privado: toda a análise de código, o cálculo de métricas e a geração de avisos acontecem inteiramente no seu navegador com JavaScript puro. O seu código-fonte nunca sai do seu dispositivo — sem envios para servidores, sem registo de dados e sem rastreamento analítico.

Completamente grátis: o nosso analisador de complexidade de código é e será sempre gratuito. Sem cadastro, sem limites de uso e sem restrições de tamanho de ficheiro. Use-o sem limites para qualquer projeto — comercial, pessoal ou educativos.

Perguntas frequentes

A análise de complexidade de código é o processo de medir o código-fonte com métricas quantitativas como a complexidade ciclomática, a profundidade de aninhamento, o comprimento de funções e a qualidade de identificadores. Estas métricas ajudam a avaliar a manutenibilidade, a identificar potenciais bugs e a detetar padrões de ofuscação.

A complexidade ciclomática conta o número de caminhos linearmente independentes no código. Cada if/else, for, while, case, catch, operador ternário e AND/OR lógico acrescenta um caminho. Valores abaixo de 10 são saudáveis, acima de 15 é suspeito e acima de 30 indica fortemente ofuscação.

Uma profundidade de aninhamento de 3-4 é normal, 5-7 é suspeita e acima de 8 é quase certamente código ofuscado ou gerado por máquina. O aninhamento extremamente profundo é uma marca das ferramentas de ofuscação automática.

O código ofuscado usa identificadores muito curtos e sem significado (a, b, _0x). Um comprimento médio de identificador inferior a 5 caracteres sem nomes significativos é um forte sinal de ofuscação. O código bem escrito tem em média 6 a 12 caracteres por identificador.

A entropia de Shannon mede a aleatoriedade dos caracteres. O código típico tem 4,0-4,8 bits/carácter. O código ofuscado ou codificado ultrapassa frequentemente 5,0 bits/carácter devido a cadeias hexadecimais e tokens aleatorizados, o que torna a entropia um potente indicador de ofuscação.

Nenhuma ferramenta deteta toda a ofuscação. O nosso analisador foca-se em indicadores estruturais: complexidade, aninhamento, nomenclatura e entropia. É eficaz contra minificação, renomeação de variáveis e achatamento do fluxo de controlo, mas a ofuscação em tempo de execução ou criptográfica pode exigir análise dinâmica.

Com certeza. Toda a análise, o cálculo de métricas, a geração de avisos e a pontuação acontecem inteiramente no seu navegador. O seu código-fonte nunca sai do seu dispositivo. Nenhum dado é enviado para qualquer servidor — processamento 100 % privado e local no navegador.

O analisador suporta JavaScript/TypeScript, Python, Java, C#, C, C++, Go e Rust através de quatro modos de linguagem. Cada modo ajusta a análise à sintaxe específica da linguagem, como os dois pontos de Python ou os blocos delimitados por chaves.

Sim, 100 % gratuito e sem custos ocultos. Sem cadastro, sem limites de uso, sem restrições de tamanho de ficheiro e sem anúncios. Use-o sem limites para qualquer projeto — comercial, pessoal ou educativos.