Aller au contenu
Aback Tools Logo

Analyseur de complexité de code

Analysez la complexité du code source pour détecter les schémas d'obfuscation et évaluer la qualité du code. Mesurez la complexité cyclomatique, la profondeur d'imbrication, la longueur des fonctions, la qualité des identifiants et l'entropie de Shannon. Obtenez un score de lisibilité (A-F) avec des indicateurs d'obfuscation classés par gravité. 100 % privé : tout le traitement se fait dans votre navigateur.

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.

Analyseur de complexité de code

[ ]

Collez le code source ci-dessus ou choisissez un exemple rapide pour analyser sa complexité

100 % privé : toute l'analyse de complexité du code se fait entièrement dans votre navigateur. Votre code source n'est jamais envoyé à un serveur. Aucune donnée ne quitte votre appareil.

  • Copié ! : Rapport d'analyse copié dans le presse-papiers.
  • Échec de la copie : impossible de copier dans le presse-papiers.

Pourquoi utiliser notre analyseur de complexité de code ?

  • Notation de la complexité cyclomatique : Calculez la complexité cyclomatique en comptant les points de décision de votre code — if/else, boucles for/while, cas switch, blocs catch, opérateurs ternaires et opérateurs logiques. Des scores élevés indiquent un code plus difficile à tester et à maintenir, potentiellement obfusqué intentionnellement.
  • Analyse de la profondeur d'imbrication : Analysez la profondeur d'imbrication maximale et moyenne de votre base de code. Les structures très imbriquées (5+ niveaux) sont une signature du code obfusqué ou généré par machine. Notre analyseur suit à la fois l'imbrication par accolades et par indentation pour tous les langages.
  • Détection des schémas d'obfuscation : Détecte automatiquement les signaux d'alerte : identifiants courts (moyenne < 5 caractères), noms de variables de type hexadécimal (format _0x), fonctions anormalement longues (100+ lignes), entropie extrêmement élevée, commentaires rares et imbrication excessive. Chaque signalement inclut une évaluation de gravité et une explication exploitable.
  • Traitement 100 % privé dans le navigateur : Toute l'analyse de complexité du code se fait localement dans votre navigateur en JavaScript pur. Votre code source ne quitte jamais votre appareil — aucun envoi à un serveur, aucune journalisation, aucun souci de confidentialité. 100 % gratuit et sans inscription.

Cas d'usage courants de l'analyseur de complexité de code

  • Revue de sécurité du code : Signalez le code potentiellement malveillant ou obfusqué dans les pull requests et les soumissions de code. Les pics de complexité, les identifiants étrangement courts et les schémas d'entropie anormaux aident les relecteurs de sécurité à identifier le code qui mérite un examen plus approfondi avant le déploiement.
  • Audits de qualité du code : Évaluez la santé de la base de code en mesurant la complexité cyclomatique, la profondeur d'imbrication et la longueur des fonctions dans votre projet. Identifiez les fonctions qui dépassent les seuils de maintenabilité et priorisez les efforts de refactorisation selon des données quantitatives de complexité.
  • Analyse de malwares et de charges utiles : Analysez les scripts suspects à la recherche d'indicateurs d'obfuscation avant de les exécuter dans un bac à sable. Une entropie extrêmement élevée, des fonctions minifiées sur une seule ligne, des noms de variables de type hexadécimal et des commentaires quasi inexistants sont des signatures courantes de charges utiles malveillantes.
  • Enseignement de la programmation : Aidez les étudiants à comprendre les concepts de complexité du code en visualisant la complexité cyclomatique, la profondeur d'imbrication et les métriques de qualité des identifiants. Comparez du code bien structuré à des exemples obfusqués côte à côte avec une analyse quantitative.
  • Évaluation de bibliothèques tierces : Évaluez les paquets open source et les dépendances intégrées à la recherche d'obfuscation avant de les intégrer à votre projet. L'analyse automatique de complexité aide à faire ressortir du code suspect qu'une revue manuelle pourrait manquer dans de grandes bases de code.
  • Priorisation de la refactorisation : Identifiez les fonctions les plus complexes de votre base de code pour prioriser les efforts de refactorisation. Les fonctions dont la complexité cyclomatique dépasse 15, la profondeur d'imbrication dépasse 5 ou la longueur dépasse 50 lignes sont des candidates idéales à la simplification et à de meilleurs tests.

Qu'est-ce que l'analyse de complexité de code ?

L'analyse de complexité de code est le processus qui consiste à mesurer la complexité d'un morceau de code source à l'aide de métriques quantitatives. Elle va au-delà du simple comptage de lignes pour évaluer des caractéristiques structurelles comme le nombre de chemins indépendants dans le code (complexité cyclomatique), la profondeur d'imbrication des blocs, la longueur des fonctions et la pertinence des noms d'identifiants. Dans le contexte de la détection d'obfuscation, l'analyse de complexité est un outil puissant, car le code obfusqué présente généralement des valeurs extrêmes dans plusieurs métriques simultanément — identifiants très courts, flux de contrôle profondément imbriqué et complexité cyclomatique anormalement élevée qui rendent le code difficile à comprendre. Notre analyseur compare ces métriques à des seuils établis et signale automatiquement les schémas suspects.

Comment fonctionne notre analyseur de complexité de code

  1. Analyser : Collez votre code source et sélectionnez le langage approprié. L'analyseur parcourt le code pour identifier les fonctions, les structures de contrôle de flux, les identifiants, les commentaires et les jetons — aucune compilation réelle n'est nécessaire.
  2. Mesurer : Le moteur calcule six métriques clés : complexité cyclomatique (en comptant les points de décision), profondeur d'imbrication (maximale et moyenne), longueur des fonctions (max., min., moyenne), analyse de la longueur des identifiants (moyenne et extrêmes), ratio commentaires/code et entropie de Shannon de la distribution des caractères.
  3. Signaler et noter : Chaque métrique est comparée à des seuils d'obfuscation pour générer des signalements ciblés avec des évaluations de gravité. Un score global de lisibilité (0-100) et une note alphabétique (A-F) résument la transparence du code en un coup d'œil.

Les métriques de complexité clés expliquées

  • Complexité cyclomatique : Compte le nombre de chemins linéairement indépendants dans le code. Chaque if, else, for, while, case, catch, && et || ajoute un chemin. Les valeurs inférieures à 10 sont considérées saines ; au-delà de 15 c'est suspect ; au-delà de 30 cela indique fortement une obfuscation.
  • Profondeur d'imbrication : Mesure le nombre de niveaux d'imbrication des blocs de code. 3-4 niveaux est normal pour une logique complexe. 5-7 est suspect. Au-delà de 8 niveaux, c'est presque certainement obfusqué ou généré par machine.
  • Longueur des identifiants : Le code obfusqué utilise des identifiants très courts (a, b, _0x). Une longueur moyenne inférieure à 5 caractères sans identifiants longs est un fort signal d'obfuscation. Le code bien écrit fait en moyenne 6 à 12 caractères par identifiant.
  • Entropie des jetons : L'entropie de Shannon mesure le caractère aléatoire de la distribution des caractères. Le code naturel a une entropie d'environ 4,0-4,8 bits/caractère. Le code obfusqué ou encodé dépasse souvent 5,0 bits/caractère en raison des chaînes hexadécimales et des jetons randomisés.

Confidentialité, sécurité et disponibilité

100 % privé : toute l'analyse de code, le calcul des métriques et la génération des signalements se font entièrement dans votre navigateur en JavaScript pur. Votre code source ne quitte jamais votre appareil — aucun envoi à un serveur, aucune journalisation, aucun suivi analytique.

Totalement gratuit : notre analyseur de complexité de code est et restera gratuit. Sans inscription, sans limite d'utilisation, sans restriction de taille de fichier. Utilisez-le sans limite pour n'importe quel projet — commercial, personnel ou éducatif.

Foire aux questions

L'analyse de complexité de code est le processus consistant à mesurer le code source à l'aide de métriques quantitatives comme la complexité cyclomatique, la profondeur d'imbrication, la longueur des fonctions et la qualité des identifiants. Ces métriques aident à évaluer la maintenabilité, à identifier des bugs potentiels et à détecter des schémas d'obfuscation.

La complexité cyclomatique compte le nombre de chemins linéairement indépendants dans le code. Chaque if/else, for, while, case, catch, opérateur ternaire et AND/OR logique ajoute un chemin. Les valeurs inférieures à 10 sont saines, au-delà de 15 c'est suspect, et au-delà de 30 cela indique fortement une obfuscation.

Une profondeur d'imbrication de 3-4 est normale, 5-7 est suspecte, et au-delà de 8 il s'agit presque certainement de code obfusqué ou généré par machine. Une imbrication extrêmement profonde est une signature des outils d'obfuscation automatique.

Le code obfusqué utilise des identifiants très courts et dépourvus de sens (a, b, _0x). Une longueur moyenne d'identifiant inférieure à 5 caractères sans noms significatifs est un fort signal d'obfuscation. Le code bien écrit fait en moyenne 6 à 12 caractères par identifiant.

L'entropie de Shannon mesure le caractère aléatoire des caractères. Le code typique présente 4,0-4,8 bits/caractère. Le code obfusqué ou encodé dépasse souvent 5,0 bits/caractère en raison des chaînes hexadécimales et des jetons randomisés, ce qui fait de l'entropie un puissant indicateur d'obfuscation.

Aucun outil ne détecte toute l'obfuscation. Notre analyseur se concentre sur les indicateurs structurels : complexité, imbrication, nommage et entropie. Il est efficace contre la minification, le renommage de variables et l'aplatissement du flux de contrôle, mais l'obfuscation à l'exécution ou cryptographique peut nécessiter une analyse dynamique.

Absolument. Toute l'analyse, le calcul des métriques, la génération des signalements et la notation se font entièrement dans votre navigateur. Votre code source ne quitte jamais votre appareil. Aucune donnée n'est envoyée à un serveur — traitement 100 % privé et local dans le navigateur.

L'analyseur prend en charge JavaScript/TypeScript, Python, Java, C#, C, C++, Go et Rust via quatre modes de langage. Chaque mode adapte l'analyse à la syntaxe propre au langage, comme les deux-points de Python ou les blocs délimités par des accolades.

Oui, 100 % gratuit, sans coûts cachés. Sans inscription, sans limite d'utilisation, sans restriction de taille de fichier et sans publicité. Utilisez-le sans limite pour n'importe quel projet — commercial, personnel ou éducatif.