Code Obfuscation

  • Description: Cette technique s’applique principalement au code de triche lui-même, plutôt qu’à son nom de fichier ou son emplacement. Les développeurs rendent intentionnellement le code source ou le bytecode compilé difficile à lire, comprendre et à rétroconcevoir. Bien que les triches soient les plus courantes distribuées sous forme de mods Minecraft (fichiers) ou des applications Java autonomes, les techniques d’obfuscation peuvent aussi être appliquées à d’autres langages compilés (C++, C#) ou même à des scripts (en utilisant l’encodage, le renommage de variables, etc.)..jar

  • Mécanisme: Diverses techniques sont utilisées pour brouiller le code :

    • Renommage: Remplacer les noms de classes, méthodes et variables significatifs par des caractères courts, sans signification ou aléatoires (par exemple, , , , , ).a.class b() zzXy_123 _a _b

    • Obfuscation du contrôle du flux : Insérer du code inutilisable, des prédicats opaques (conditions qui s’évaluent toujours de la même façon mais paraissent complexes), ou restructurer des boucles et des instructions conditionnelles pour rendre le flux logique difficile à suivre.

    • Chiffrement des chaînes : Chiffrer des chaînes littérales dans le code (comme le texte de l’interface graphique, les clés de configuration, ou même les noms de fonctionnalités de triche) pour qu’elles n’apparaissent pas en texte brut lors d’analyses statiques ou de scans mémoire.

    • Emballage/Chiffrement : Compresser ou chiffrer la base de code principale et l’intégrer dans un petit stub de chargeur. Le chargeur décompresse/déchiffre le code réel en mémoire à l’exécution.

  • Pourquoi les tricheurs l’utilisent :

    • Anti-analyse : Pour entraver significativement l’analyse par les ScreenSharers utilisant des décompilateurs (comme Luyten, Recaf pour Java) ou des désassembleurs. Cela rend la détermination de la véritable fonction du code extrêmement chronophage et difficile.

    • Anti-ingénierie inverse : Pour protéger le code ou les techniques propriétaires contre les développeurs concurrents de triche.

    • Éviter la détection de signature : Le compactage et le chiffrement peuvent modifier la signature du fichier, évitant potentiellement la détection simple basée sur le hachage ou la détection de motifs statiques par les systèmes anti-triche ou les scanners AV.

  • Détection:

    • Décompilation/Démontage : La méthode principale de détection consiste à tenter d’analyser le code. Si un décompilateur ou un désassembleur produit un code largement illisible, utilise de nombreux noms dénués de sens ou présente les caractéristiques mentionnées ci-dessus, il est très probable qu’il soit obfusqué.

    • Analyse de l’entropie : Les fichiers emballés ou chiffrés présentent souvent une forte entropie des fichiers (une mesure de l’aléatoire des données). Des outils comme Détect It Easy (DiE) ou VirusTotal calculent l’entropie ; des valeurs élevées (souvent >7,0 sur 8) suggèrent un emballage/chiffrement.

    • Outils de détection des packers : Des utilitaires comme DiE incluent des signatures pour identifier les packers courants (comme UPX, Themida, VMProtect) utilisés pour obscurcir les exécutables.

    • Règles du serveur : En raison de la difficulté à vérifier rapidement le code obfusqué lors d’un partage d’écran, de nombreux serveurs maintiennent une politique stricte interdisant tout mod ou exécutable jugé significativement obscurci. L’incapacité à en déterminer la fonction représente un risque trop grand.

Mis à jour