
De-offuscatore PE algoritmico, radar di entropia di Shannon e motore di triage degli incidenti
Uno strumento CLI veloce per il triage dei PE di Windows, l'analisi dell'entropia a finestra scorrevole e il rilevamento di payload nascosti in loader e crypter.
___________ __ _________ __ .__
\_ _____/ _____/ |________ ____ ______ ___.__./ _____// |________|__|_____
| __)_ / \ __\_ __ \/ _ \\____ < | |\_____ \\ __\_ __ \ \____ \
| \ | \ | | | \( <_> ) |_> >___ |/ \| | | | \/ | |_> >
/_______ /___| /__| |__| \____/| __// ____/_______ /|__| |__| |__| __/
\/ \/ |__| \/ \/ |__|
La maggior parte degli strumenti di triage rapido calcola l'entropia di Shannon sull'intera sezione PE o sull'intero file. Gli attaccanti sfruttano questo effetto di mediazione nei moderni loader:
.rdata da 1 MB riempita di zeri mantiene l'entropia dell'intera sezione sotto 5.5.0x90) o delimitatori ripetuti abbassa il punteggio a livelli di codice benigno.UuidFromStringA) o indirizzi IPv4 (RtlIpv4StringToAddressA) mantiene l'entropia su disco intorno a 4.0 fino al riassemblaggio a runtime.EntropyStrip affronta questi punti ciechi con l'analisi a livello di sotto-sezione e controlli strutturali.
UuidFromString e RtlIpv4StringToAddress e i cluster di stringhe UUID formattate.--yara [PATH]. Include uno scanner di fallback in puro Python per l'esecuzione senza dipendenze.RT_RCDATA cifrati.--bazaar per classificare famiglie di malware, tag della community e tassi di rilevamento VirusTotal senza divulgare telemetria forense per impostazione predefinita.WIN_CERTIFICATE del PE e le intestazioni NSIS 0xdeadbeef affinché software firmato e installer non vengano valutati erroneamente.--dump per estrarre buffer sospetti direttamente su disco per Ghidra o x64dbg.Richiede Python 3.8+ su Windows, Linux o macOS.
pip install entropystrip
Oppure installa dal codice sorgente:
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)
Analizza un singolo binario con la scansione YARA:
entropystrip target.exe --yara
Scansiona con regole YARA personalizzate e interroga il threat intel di MalwareBazaar:
entropystrip suspicious.exe --yara my_rules.yar --bazaar
Triage forense approfondito con mappatura MITRE ATT&CK e disassemblaggio:
entropystrip suspicious.exe --deep
Estrai i buffer di payload nascosti e le risorse incorporate:
entropystrip suspicious.exe --dump
I payload estratti vengono scritti in extracted_payloads/payload_<sha256>_sec<index>_<section>.bin.
Esporta un report HTML autonomo:
entropystrip sample.exe --html report.html
Triage di un'intera directory con clustering automatizzato delle campagne:
entropystrip "C:\IncidentTriage" -r --html incident_report.html
L'entropia di Shannon misura la densità informativa da 0,00 a 8,00 bit per byte:
| Intervallo di entropia | Contenuto tipico | Note |
|---|---|---|
0.00 - 2.00 | Zero-padding, tabelle sparse | Padding di allineamento, buffer non inizializzati |
2.00 - 5.50 | ASCII standard, configurazioni | Metadati dell'applicazione, stringhe leggibili |
5.50 - 6.60 | Codice macchina compilato nativo | Istruzioni x86/x64 standard (.text) |
6.60 - 7.30 | Asset compressi | Bitmap, icone, flussi zlib/deflate |
7.40 - 8.00 | Testo cifrato crittografico | Payload cifrati o shellcode impacchettato |
Licenza MIT. Consulta LICENSE per i dettagli.