
Algorithmic PE de-obfuscator, Shannon entropy radar, and incident triage engine
___________ __ _________ __ .__
\_ _____/ _____/ |________ ____ ______ ___.__./ _____// |________|__|_____
| __)_ / \ __\_ __ \/ _ \\____ < | |\_____ \\ __\_ __ \ \____ \
| \ | \ | | | \( <_> ) |_> >___ |/ \| | | | \/ | |_> >
/_______ /___| /__| |__| \____/| __// ____/_______ /|__| |__| |__| __/
\/ \/ |__| \/ \/ |__|
Most modern malware hides behind packers, obfuscated loaders, or encrypted stagers designed to slip past naive whole-file entropy scanners. Rather than relying on static byte signatures, entropystrip evaluates:
UuidFromString, RtlIpv4StringToAddress) and detects formatted UUID shellcode clusters.IMAGE_SCN_MEM_WRITE and IMAGE_SCN_MEM_EXECUTE).WIN_CERTIFICATE Authenticode tables to distinguish true certificates from droppers.T1027, T1027.001, T1027.002, T1055, T1497, T1129).0xdeadbeef) and setup headers to eliminate false positives on legitimate software.--dump extracts suspicious sections and overlays straight to disk for offline deobfuscation.Requirements: Python 3.8+ on Windows, Linux, or macOS.
pip install entropystrip
Or install directly from source:
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
Analyze a single binary:
python main.py target.exe
Deep forensic triage with MITRE ATT&CK mapping & disassembly:
python main.py suspicious.exe --deep
Analyze and extract hidden payload buffers:
python main.py suspicious.exe --dump
Carved payloads are written to extracted_payloads/<target>_<section>.bin.
Export a standalone HTML report:
python main.py sample.exe --html report.html
Triage an entire directory of unknown files:
python main.py "C:\IncidentTriage" -r
Shannon entropy measures information density from 0.00 to 8.00 bits per byte:
$$H(X) = -\sum_{i=0}^{255} P(x_i) \log_2 P(x_i)$$
| Entropy Range | Expected Content | Notes |
|---|---|---|
0.00 - 2.00 | Zero-padding, sparse tables | Common in uninitialized data or alignment padding |
2.00 - 5.50 | Standard ASCII, configurations | Normal application metadata, strings |
5.50 - 6.60 | Native compiled machine code | Standard x86/x64 instructions (.text) |
6.60 - 7.30 | Compressed assets | Bitmaps, icons, zlib/deflate streams |
7.40 - 8.00 | Cryptographic ciphertext | AES/RC4 encrypted payloads or tightly packed shellcode |
MIT License. See LICENSE for details.