
De-offuscatore PE algoritmico, radar di entropia di Shannon e motore di triage degli incidenti
___________ __ _________ __ .__
\_ _____/ _____/ |________ ____ ______ ___.__./ _____// |________|__|_____
| __)_ / \ __\_ __ \/ _ \\____ < | |\_____ \\ __\_ __ \ \____ \
| \ | \ | | | \( <_> ) |_> >___ |/ \| | | | \/ | |_> >
/_______ /___| /__| |__| \____/| __// ____/_______ /|__| |__| |__| __/
\/ \/ |__| \/ \/ |__|
La maggior parte del malware moderno si nasconde dietro packer, loader offuscati o stager cifrati progettati per eludere i semplici scanner di entropia sull'intero file. Invece di affidarsi a firme statiche sui byte, entropystrip valuta:
UuidFromString, RtlIpv4StringToAddress) e rileva cluster di shellcode in formato UUID.IMAGE_SCN_MEM_WRITE e IMAGE_SCN_MEM_EXECUTE).WIN_CERTIFICATE per distinguere i certificati reali dai dropper.T1027, T1027.001, T1027.002, T1055, T1497, T1129).0xdeadbeef) e di setup per eliminare i falsi positivi su software legittimo.--dump estrae le sezioni sospette e gli overlay direttamente su disco per il deoffuscamento offline.Requisiti: Python 3.8+ su Windows, Linux o macOS.
pip install entropystrip
Oppure installa direttamente dal sorgente:
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
Analizzare un singolo binario:
python main.py target.exe
Triage forense approfondito con mappatura MITRE ATT&CK e disassembly:
python main.py suspicious.exe --deep
Analizzare ed estrarre i buffer dei payload nascosti:
python main.py suspicious.exe --dump
I payload estratti vengono scritti in extracted_payloads/<target>_<section>.bin.
Esportare un report HTML autonomo:
python main.py sample.exe --html report.html
Triage di un'intera directory di file sconosciuti:
python main.py "C:\IncidentTriage" -r
L'entropia di Shannon misura la densità informativa da 0,00 a 8,00 bit per byte:
$$H(X) = -\sum_{i=0}^{255} P(x_i) \log_2 P(x_i)$$
| Intervallo di entropia | Contenuto previsto | Note |
|---|---|---|
0.00 - 2.00 | Zero-padding, tabelle sparse | Comune nei dati non inizializzati o nel padding di allineamento |
2.00 - 5.50 | ASCII standard, configurazioni | Metadati e stringhe normali dell'applicazione |
5.50 - 6.60 | Codice macchina compilato nativo | Istruzioni x86/x64 standard (.text) |
6.60 - 7.30 | Asset compressi | Bitmap, icone, stream zlib/deflate |
7.40 - 8.00 | Testo cifrato crittografico | Payload cifrati AES/RC4 o shellcode strettamente compattato |
Licenza MIT. Vedi LICENSE per i dettagli.