
Désobfuscateur PE algorithmique, radar d'entropie de Shannon et moteur de triage d'incidents
___________ __ _________ __ .__
\_ _____/ _____/ |________ ____ ______ ___.__./ _____// |________|__|_____
| __)_ / \ __\_ __ \/ _ \\____ < | |\_____ \\ __\_ __ \ \____ \
| \ | \ | | | \( <_> ) |_> >___ |/ \| | | | \/ | |_> >
/_______ /___| /__| |__| \____/| __// ____/_______ /|__| |__| |__| __/
\/ \/ |__| \/ \/ |__|
La plupart des malwares modernes se cachent derrière des packers, des loaders obfusqués ou des stagers chiffrés conçus pour échapper aux scanners d'entropie naïfs qui analysent le fichier entier. Plutôt que de s'appuyer sur des signatures d'octets statiques, entropystrip évalue :
UuidFromString, RtlIpv4StringToAddress) et détecte les clusters de shellcode UUID formatés.IMAGE_SCN_MEM_WRITE et IMAGE_SCN_MEM_EXECUTE).WIN_CERTIFICATE pour distinguer les vrais certificats des droppers.T1027, T1027.001, T1027.002, T1055, T1497, T1129).0xdeadbeef) et de setup pour éliminer les faux positifs sur les logiciels légitimes.--dump extrait les sections et overlays suspects directement sur le disque pour une désobfuscation hors ligne.Prérequis : Python 3.8+ sous Windows, Linux ou macOS.
pip install entropystrip
Ou installez directement depuis les sources :
git clone https://github.com/dwexi/entropystrip.git
cd entropystrip
pip install -e .
usage: entropystrip [-h] [-r] [--dump] [--deep] [--html HTML] [--json JSON] target
EntropyStrip: PE De-obfuscator & Triage Engine
positional arguments:
target Path to Windows executable (.exe / .dll) or directory to scan
options:
-h, --help show this help message and exit
-r, --recursive
recursively scan subdirectories if target is a folder
--dump carve and write high-entropy payloads to extracted_payloads/
--deep deep forensic triage: MITRE ATT&CK mapping, entry point disassembly, hashes
--html HTML write minimalist HTML report to specified path
--json JSON write machine-readable JSON telemetry to specified path
Analyser un seul binaire :
python main.py target.exe
Triage forensique approfondi avec mappage MITRE ATT&CK & désassemblage :
python main.py suspicious.exe --deep
Analyser et extraire les tampons de charges utiles cachés :
python main.py suspicious.exe --dump
Les charges utiles extraites sont écrites dans extracted_payloads/<target>_<section>.bin.
Exporter un rapport HTML autonome :
python main.py sample.exe --html report.html
Trier un répertoire entier de fichiers inconnus :
python main.py "C:\IncidentTriage" -r
L'entropie de Shannon mesure la densité d'information de 0,00 à 8,00 bits par octet :
$$H(X) = -\sum_{i=0}^{255} P(x_i) \log_2 P(x_i)$$
| Plage d'entropie | Contenu attendu | Remarques |
|---|---|---|
0.00 - 2.00 | Remplissage de zéros, tables creuses | Courant dans les données non initialisées ou le remplissage d'alignement |
2.00 - 5.50 | ASCII standard, configurations | Métadonnées d'application normales, chaînes |
5.50 - 6.60 | Code machine compilé natif | 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 AES/RC4 ou shellcode fortement packé |
Licence MIT. Voir LICENSE pour plus de détails.