
Algorithmischer PE-Deobfuskator, Shannon-Entropie-Radar und Incident-Triage-Engine
Ein schnelles CLI-Tool für Windows-PE-Triage, Entropieanalyse mit gleitendem Fenster und die Erkennung versteckter Payloads in Loadern und Cryptern.
___________ __ _________ __ .__
\_ _____/ _____/ |________ ____ ______ ___.__./ _____// |________|__|_____
| __)_ / \ __\_ __ \/ _ \\____ < | |\_____ \\ __\_ __ \ \____ \
| \ | \ | | | \( <_> ) |_> >___ |/ \| | | | \/ | |_> >
/_______ /___| /__| |__| \____/| __// ____/_______ /|__| |__| |__| __/
\/ \/ |__| \/ \/ |__|
Die meisten Schnell-Triage-Tools berechnen die Shannon-Entropie über ganze PE-Sektionen oder ganze Dateien. Angreifer nutzen diesen Mittelungseffekt in modernen Loadern aus:
.rdata-Sektion, die mit Nullen aufgefüllt ist, hält die Entropie über die gesamte Sektion unter 5,5.0x90) oder sich wiederholenden Trennzeichen drückt den Wert auf das Niveau von harmlosem Code.UuidFromStringA) oder IPv4-Adressen (RtlIpv4StringToAddressA) hält die Entropie auf der Festplatte bei etwa 4,0, bis die Neuzusammensetzung zur Laufzeit erfolgt.EntropyStrip adressiert diese blinden Flecken mit Sub-Sektions-Analyse und strukturellen Prüfungen.
UuidFromString und RtlIpv4StringToAddress sowie Cluster formatierter UUID-Strings.--yara [PATH]. Enthält einen reinen Python-Fallback-Scanner für die Ausführung ohne Abhängigkeiten.RT_RCDATA-Payloads.--bazaar zur Klassifizierung von Malware-Familien, Community-Tags und VirusTotal-Erkennungsraten, ohne standardmäßig forensische Telemetrie preiszugeben.WIN_CERTIFICATE und NSIS-Header 0xdeadbeef, damit signierte Software und Installer nicht fälschlicherweise bewertet werden.--dump, um verdächtige Puffer direkt auf die Festplatte für Ghidra oder x64dbg zu extrahieren.Erfordert Python 3.8+ unter Windows, Linux oder macOS.
pip install entropystrip
Oder aus dem Quellcode installieren:
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)
Eine einzelne Binärdatei mit YARA-Scanning analysieren:
entropystrip target.exe --yara
Mit benutzerdefinierten YARA-Regeln scannen und MalwareBazaar-Threat-Intel abfragen:
entropystrip suspicious.exe --yara my_rules.yar --bazaar
Tiefgehende forensische Triage mit MITRE-ATT&CK-Zuordnung & Disassemblierung:
entropystrip suspicious.exe --deep
Versteckte Payload-Puffer und eingebettete Ressourcen extrahieren:
entropystrip suspicious.exe --dump
Extrahierte Payloads werden nach extracted_payloads/payload_<sha256>_sec<index>_<section>.bin geschrieben.
Einen eigenständigen HTML-Bericht exportieren:
entropystrip sample.exe --html report.html
Einen gesamten Verzeichnisbestand triagieren mit automatisierter Kampagnen-Clusterbildung:
entropystrip "C:\IncidentTriage" -r --html incident_report.html
Die Shannon-Entropie misst die Informationsdichte von 0,00 bis 8,00 Bit pro Byte:
| Entropiebereich | Typischer Inhalt | Hinweise |
|---|---|---|
0.00 - 2.00 | Null-Auffüllung, spärliche Tabellen | Ausrichtungsauffüllung, nicht initialisierte Puffer |
2.00 - 5.50 | Standard-ASCII, Konfigurationen | Anwendungsmetadaten, lesbare Zeichenketten |
5.50 - 6.60 | Nativ kompilierter Maschinencode | Standard-x86/x64-Instruktionen (.text) |
6.60 - 7.30 | Komprimierte Assets | Bitmaps, Icons, zlib/deflate-Streams |
7.40 - 8.00 | Kryptografischer Chiffretext | Verschlüsselte Payloads oder gepackter Shellcode |
MIT-Lizenz. Siehe LICENSE für Details.