Skip to content

Analyser EXE et DLL dans le navigateur, sans les exécuter

Triage statique pas à pas d'exécutables Windows avec PE Parser, gratuit : charger des fichiers ou un ZIP, lire les indicateurs, comparer, exporter.

Publié le Mis à jour le 4 min de lecture

En bref. Le PE Parser lit les exécutables Windows comme le font pestudio, PE-bear ou Detect It Easy — en-têtes, imports, ressources, signature, chaînes — mais dans un onglet de navigateur, pour tout un lot à la fois, sans rien téléverser ni exécuter. Voici un triage de 15 minutes à partir de l'échantillon synthétique intégré.

Étape 1 : Charger les fichiers

Ouvrez la page d'accueil et déposez vos fichiers, un dossier ou un ZIP. Les exécutables sont reconnus à leur en-tête MZ : une charge utile renommée en .dat est donc tout de même détectée. Chaque fichier est analysé par du code Rust compilé en WebAssembly, dans son propre Web Worker : rien ne quitte la machine et rien n'est exécuté. Pour suivre l'exemple, cliquez sur Try a sample : cinq fichiers inoffensifs issus d'une intrusion fictive — deux builds de m64.exe, une m64core.dll signée et un petit SyncConfig.exe en .NET, dont le code se résume à une seule instruction ret, plus wupd.exe, un vrai build packé avec UPX d'un programme qui affiche seulement un message.

Étape 2 : Parcourir le tableau du lot

L'espace de travail s'ouvre en plein écran (Échap pour en sortir). Le tableau affiche une ligne par fichier : type, date de compilation, taille, imphash, nombre d'indicateurs et détections. Triez par Worth a look. Les deux builds de m64.exe partagent un imphash et sont étiquetés family 1 — le même outil compilé deux fois, à neuf jours d'intervalle (l'imphash et ses cousins).

Lorsque plusieurs fichiers sont chargés, la barre de plage temporelle filtre selon l'horodatage de compilation, de débogage ou de signature ; la bande de densité montre quand les fichiers ont été compilés, et la plage est conservée dans l'URL de la page, si bien qu'un lien rouvre la même vue.

Étape 3 : Ouvrir un fichier et lire ses indicateurs

Cliquez sur C/ProgramData/Intel/m64.exe. La vue d'ensemble affiche l'identité du fichier (x64, GUI, point d'entrée dans .text), les empreintes avec des boutons de copie, le chemin PDB C:\build\m64\Release\m64.pdb et les horodatages. Le bandeau comptabilise les indicateurs de niveau élevé et moyen. L'onglet Indicators explique chacun d'eux — API d'injection importées, section UPX1 inscriptible et exécutable avec une entropie proche de 8, un callback TLS, 4 Ko ajoutés après la dernière section, un OriginalFilename = synchelper.exe sur un fichier nommé m64.exe. Chaque élément précise pourquoi il mérite un coup d'œil et dans quels cas il est normal.

Étape 4 : Vérifier la signature, les sections et les imports

  • Sections : permissions, tailles brute et virtuelle, barre d'entropie par section (détecter les exécutables packés).
  • Imports : par DLL, avec des étiquettes de comportement ; l'ordinal 115 de WS2_32.dll est affiché comme WSAStartup.
  • Resources : informations de version, manifeste, icône, table de chaînes, titres de boîtes de dialogue.
  • Strings : ASCII et UTF-16 avec offsets et catégories — l'échantillon contient des adresses IP de la plage réservée à la documentation, des URL en .example, un chemin de clé Run et une chaîne PowerShell inoffensive en Base64 décodée en Write-Output 'synthetic sample'.
  • Signature : ouvrez m64core.dll. L'empreinte correspond, les attributs signés correspondent et la signature RSA est vérifiée — mais le certificat est auto-signé, il n'identifie donc personne (Authenticode hors ligne).
  • Charges : ouvrez wupd.exe. Il est packé avec UPX : l'outil le décompresse comme des données (rien n'est exécuté) et ajoute wupd.exe!upx, le programme reconstruit, avec ses vrais imports et son compilateur. Son overlay cache aussi une DLL encodée en XOR : l'onglet Charges montre qu'il s'agit de m64core.dll, à l'octet près — le dropper et ce qu'il a déposé, reliés.
  • Headers & directories : champs bruts des en-têtes DOS, COFF et optionnel, répertoires de données, entrées du Rich header décodées en versions de Visual Studio, débogage, TLS, configuration de chargement et relocations.

Étape 5 : Comparer des builds apparentés

La vue Compare place deux fichiers côte à côte : champs d'en-tête, sections (identiques, modifiées, présentes dans un seul fichier), imports, exports et ressources, ainsi que la distance TLSH. Les deux builds de m64.exe ont des imports identiques, mais un code et des données différents.

Étape 6 : Exporter

Le menu Export propose un CSV d'inventaire (empreintes, horodatages, signataire, indicateurs ; protégé contre l'injection de formules), le rapport JSON complet, une liste au format sha256sum pour les recherches de threat intelligence, les imports et exports, ainsi que les chaînes. Les exports suivent la vue et la plage temporelle en cours, et la plage figure dans le nom des fichiers.

L'outil est purement statique : il décompresse lui-même UPX, mais les autres packers doivent être décompressés ailleurs, les chaînes de certificats ne sont pas validées, et les indicateurs sont des pistes, pas des verdicts.

Articles liés

Ce qui compte dans un fichier PE Windows pour trier un EXE, une DLL ou un pilote suspect : en-têtes, sections, imports, ressources, signature, overlay.
Repérer et copier les EXE, DLL et SYS suspects d'un hôte ou d'une image Windows sans les exécuter : PowerShell, Velociraptor, images disque, pièges.
Où un exécutable Windows stocke ses dates, lesquelles sont fiables, comment repérer builds reproductibles et timestomping, et comment les exploiter.