
Désobfuscateur PE algorithmique, radar d'entropie de Shannon et moteur de triage d'incidents
Un outil CLI rapide pour le triage des PE Windows, l'analyse d'entropie à fenêtre glissante et la détection de charges utiles dissimulées dans les loaders et les crypters.
___________ __ _________ __ .__
\_ _____/ _____/ |________ ____ ______ ___.__./ _____// |________|__|_____
| __)_ / \ __\_ __ \/ _ \\____ < | |\_____ \\ __\_ __ \ \____ \
| \ | \ | | | \( <_> ) |_> >___ |/ \| | | | \/ | |_> >
/_______ /___| /__| |__| \____/| __// ____/_______ /|__| |__| |__| __/
\/ \/ |__| \/ \/ |__|
La plupart des outils de triage rapide calculent l'entropie de Shannon sur des sections PE entières ou des fichiers complets. Les attaquants exploitent cet effet de moyennage dans les loaders modernes :
.rdata de 1 Mo remplie de zéros maintient l'entropie à l'échelle de la section sous 5,5.0x90) ou des délimiteurs répétés fait chuter le score à des niveaux de code bénin.UuidFromStringA) ou en adresses IPv4 (RtlIpv4StringToAddressA) maintient l'entropie sur disque autour de 4,0 jusqu'au réassemblage à l'exécution.EntropyStrip comble ces angles morts grâce à une analyse infra-section et à des vérifications structurelles.
UuidFromString et RtlIpv4StringToAddress ainsi que les grappes de chaînes UUID formatées.--yara [PATH]. Inclut un scanner de repli en Python pur pour une exécution sans dépendance.RT_RCDATA chiffrées.--bazaar pour classer les familles de malwares, les tags communautaires et les taux de détection VirusTotal sans divulguer de télémétrie forensique par défaut.WIN_CERTIFICATE des PE et les en-têtes NSIS 0xdeadbeef afin que les logiciels signés et les installateurs ne soient pas faussement notés.--dump pour extraire directement sur disque les tampons suspects pour Ghidra ou x64dbg.Nécessite Python 3.8+ sous Windows, Linux ou macOS.
pip install entropystrip
Ou installez depuis les sources :
git clone https://github.com/dwexi/entropystrip.git
cd entropystrip
pip install -e .
usage: entropystrip [-h] [-v] [-r] [--dump] [--deep] [-i] [--install]
[--uninstall] [--html HTML] [--json JSON]
[--yara [RULE_PATH]] [--bazaar] [--bazaar-key KEY]
[target]
EntropyStrip: PE De-obfuscator, Shannon Entropy Radar, and Incident Triage Engine
positional arguments:
target Path to Windows executable (.exe / .dll) or directory
options:
-h, --help show this help message and exit
-v, --version Show program's version number and exit
-r, --recursive Recursively scan subdirectories
--dump Carve high-entropy payloads to extracted_payloads/
--deep Deep forensic triage: MITRE ATT&CK mapping, entry point disassembly, hashes
-i, --interactive Launch interactive triage wizard
--install Install EntropyStrip globally to Windows PATH
--uninstall Uninstall EntropyStrip from Windows PATH
--html HTML Path to write standalone HTML report
--json JSON Path to write machine-readable JSON telemetry
--yara [RULE_PATH] Scan with YARA rules (uses bundled threats.yar by default, or custom file/dir)
--bazaar Query MalwareBazaar (abuse.ch) for sample hash intelligence and signatures
--bazaar-key KEY MalwareBazaar API Auth-Key (overrides MALWAREBAZAAR_API_KEY environment variable)
Analyser un seul binaire avec le scan YARA :
entropystrip target.exe --yara
Analyser avec des règles YARA personnalisées et interroger le renseignement sur les menaces de MalwareBazaar :
entropystrip suspicious.exe --yara my_rules.yar --bazaar
Triage forensique approfondi avec mappage MITRE ATT&CK et désassemblage :
entropystrip suspicious.exe --deep
Extraire les tampons de charge utile cachés et les ressources intégrées :
entropystrip suspicious.exe --dump
Les payloads extraits sont écrits dans extracted_payloads/payload_<sha256>_sec<index>_<section>.bin.
Exporter un rapport HTML autonome :
entropystrip sample.exe --html report.html
Trier un répertoire entier avec un regroupement automatisé des campagnes :
entropystrip "C:\IncidentTriage" -r --html incident_report.html
L'entropie de Shannon mesure la densité d'information de 0,00 à 8,00 bits par octet :
| Plage d'entropie | Contenu typique | Remarques |
|---|---|---|
0.00 - 2.00 | Remplissage par zéros, tables creuses | Remplissage d'alignement, tampons non initialisés |
2.00 - 5.50 | ASCII standard, configurations | Métadonnées d'application, chaînes lisibles |
5.50 - 6.60 | Code machine natif compilé | Instructions x86/x64 standard (.text) |
6.60 - 7.30 | Ressources compressées | Bitmaps, icônes, flux zlib/deflate |
7.40 - 8.00 | Texte chiffré cryptographique | Charges utiles chiffrées ou shellcode packé |
Licence MIT. Voir LICENSE pour plus de détails.