
Programme pour déterminer les types de fichiers pour Windows, Linux et MacOS.

Detect It Easy (DiE) est un outil multiplateforme d'identification de fichiers et d'inspection statique, utilisé par les analystes de logiciels malveillants, les experts en cybersécurité et les ingénieurs en rétro-ingénierie. Il combine des analyseurs de formats natifs avec une couche d'analyse extensible DiE-JS, prenant en charge à la fois des signatures compactes et une analyse statique multi-étapes sur Windows, Linux et MacOS.
[!WARNING]
detectiteasy.comn'est pas affilié au projet Detect It Easy ni à son site officiel. Ne le considérez pas comme une source officielle et ne l'utilisez pas pour télécharger DiE. Utilisez uniquement les liens de version fournis dans ce dépôt.

Detect It Easy combine l'analyse consciente des formats, la correspondance de signatures et l'analyse programmable pour l'analyse de logiciels malveillants, la rétro-ingénierie et l'informatique légale. Les modules DiE-JS peuvent utiliser les structures analysées et les primitives d'inspection de bas niveau pour implémenter des algorithmes bornés tout en gardant la politique de détection vérifiable dans la base de données.

Une signature peut vous indiquer à quoi ressemble un fichier. Le moteur d'analyse heuristique générique (__GenericHeuristicAnalysis_By_DosX.7.sg) va plus loin : il signale des anomalies structurelles et comportementales concrètes ainsi que les preuves qui les sous-tendent. Le moteur heuristique PE est créé et maintenu par DosX.
[!NOTE] DiE-JS est le langage d'implémentation de ce moteur d'analyse, et non un simple raccourci pour quelques appels de détecteurs natifs. Le cœur natif de DiE fournit l'analyse de formats, les lectures bornées, la traduction d'adresses, la recherche et les primitives de désassemblage. Le moteur heuristique PE construit des algorithmes d'analyse sur ces primitives : il sélectionne des candidats, maintient un état, parcourt un flux de contrôle borné, valide les relations entre structures, rejette les explications bénignes, corrèle des preuves indépendantes et réconcilie les résultats.
L'analyse heuristique n'est pas simplement une solution de repli utilisée lorsque les signatures échouent. Lorsqu'elle est activée, elle s'exécute comme un moteur d'analyse distinct de niveau supérieur et peut corroborer, nuancer ou rejeter les résultats antérieurs de la base de données tout en gardant chaque conclusion heuristique visiblement marquée.
Lorsque l'analyse heuristique est activée, le moteur heuristique PE effectue une série de passes spécialisées sur les images natives et managées. Le fichier n'est jamais lancé. À la place, le moteur travaille avec les en-têtes, les répertoires de données, les sections, les imports, les exports, les ressources, les métadonnées .NET, le bytecode, les overlays, les enregistrements de débogage et le code de démarrage accessible enraciné au point d'entrée. La même couverture s'étend au code d'initialisation des DLL, comblant un angle mort courant lorsque des comportements protégés ou suspects commencent à l'intérieur d'une bibliothèque plutôt que d'une application. Cela le rend utile à la fois lorsqu'une signature exacte est connue et lorsqu'un échantillon a été suffisamment modifié pour échapper à l'identification ordinaire.
L'analyse du code natif du moteur heuristique PE combine un désassemblage linéaire mis en cache avec un parcours borné du code de démarrage accessible et des machines à états conçues spécifiquement. Il suit les faits relatifs aux registres, aux drapeaux, à la pile, à la provenance des adresses et aux frontières d'instructions requis par chaque règle, sans prétendre être un bac à sable ou un émulateur CPU complet. Cela permet à DiE d'exposer des branches opaques et dégénérées, des transferts synthétiques et indirects, des flux d'instructions chevauchants, des stubs indépendants de la position et automodifiants, des décompresseurs de flux de bits, des sondes anti-analyse et des flux de contrôle irréguliers utilisés par les packers et protecteurs polymorphes. Les vérifications restent efficaces face à la substitution de registres, au remplissage neutre, aux formes arithmétiques équivalentes et au réordonnancement borné d'instructions indépendantes couramment produits par les générateurs commerciaux et les crypteurs privés.
Pour le code managé, le moteur heuristique PE utilise un modèle interne d'opcodes MSIL pour construire des motifs de bytecode sensibles aux opérandes pour les appels indirects et les pointeurs de fonction, les transformations de flux de contrôle, les mutations arithmétiques, les séquences d'instructions invalides et d'autres formes d'obfuscation. Ce n'est pas un émulateur CLR, mais cela permet au moteur de raisonner sur des motifs IL exécutables au lieu de traiter un assembly managé comme guère plus que des métadonnées et des chaînes de caractères.
Une grande partie de l'analyse provient du recoupement de preuves entre les couches. Le moteur peut relier l'identité des ressources de version à l'état Authenticode, aux métadonnées de build Rich, au modèle d'exécution et à la protection détectée ; recouper l'extension du système de fichiers ; interpréter les symboles d'import et d'export mutilés utilisés par MSVC, GNU/MinGW, Borland et Swift ; et reconnaître les empreintes laissées par les dumpers, les unpackers et les reconstructeurs PE. Les vérifications natives tiennent compte de l'architecture sur x86/x64 et la famille ARM, tandis que les indicateurs d'atténuation de sécurité sont vérifiés comme des combinaisons significatives plutôt que comme des bits isolés.