
알고리즘 기반 PE 디오브푸스케이터, 섀넌 엔트로피 레이더, 인시던트 트리아지 엔진
___________ __ _________ __ .__
\_ _____/ _____/ |________ ____ ______ ___.__./ _____// |________|__|_____
| __)_ / \ __\_ __ \/ _ \\____ < | |\_____ \\ __\_ __ \ \____ \
| \ | \ | | | \( <_> ) |_> >___ |/ \| | | | \/ | |_> >
/_______ /___| /__| |__| \____/| __// ____/_______ /|__| |__| |__| __/
\/ \/ |__| \/ \/ |__|
대부분의 최신 악성코드는 순진한 전체 파일 엔트로피 스캐너를 우회하도록 설계된 패커, 난독화된 로더 또는 암호화된 스테이저 뒤에 숨어 있습니다. entropystrip은 정적 바이트 시그니처에 의존하는 대신 다음을 평가합니다:
UuidFromString, RtlIpv4StringToAddress)를 표시하고 포맷된 UUID 셸코드 클러스터를 탐지합니다.IMAGE_SCN_MEM_WRITE 및 IMAGE_SCN_MEM_EXECUTE)을 식별합니다.WIN_CERTIFICATE Authenticode 테이블을 구조적으로 검증하여 실제 인증서와 드로퍼를 구별합니다.T1027, T1027.001, T1027.002, T1055, T1497, T1129)에 자동으로 연관시킵니다.0xdeadbeef) 및 설정 헤더를 검증하여 정상 소프트웨어에 대한 오탐을 제거합니다.--dump는 의심스러운 섹션과 오버레이를 오프라인 디오브푸스케이션을 위해 디스크에 직접 추출합니다.요구 사항: Windows, Linux 또는 macOS에서 Python 3.8+.
pip install entropystrip
또는 소스에서 직접 설치:
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
단일 바이너리 분석:
python main.py target.exe
MITRE ATT&CK 매핑 및 디스어셈블리를 포함한 심층 포렌식 트리아지:
python main.py suspicious.exe --deep
숨겨진 페이로드 버퍼 분석 및 추출:
python main.py suspicious.exe --dump
캐빙된 페이로드는 extracted_payloads/<target>_<section>.bin에 기록됩니다.
독립형 HTML 보고서 내보내기:
python main.py sample.exe --html report.html
알 수 없는 파일로 구성된 전체 디렉터리 트리아지:
python main.py "C:\IncidentTriage" -r
섀넌 엔트로피는 바이트당 0.00에서 8.00비트까지의 정보 밀도를 측정합니다:
$$H(X) = -\sum_{i=0}^{255} P(x_i) \log_2 P(x_i)$$
| 엔트로피 범위 | 예상 콘텐츠 | 비고 |
|---|---|---|
0.00 - 2.00 | 제로 패딩, 희소 테이블 | 초기화되지 않은 데이터 또는 정렬 패딩에서 흔함 |
2.00 - 5.50 | 표준 ASCII, 구성 | 일반 애플리케이션 메타데이터, 문자열 |
5.50 - 6.60 | 네이티브 컴파일된 기계어 코드 | 표준 x86/x64 명령어 (.text) |
6.60 - 7.30 | 압축된 자산 | 비트맵, 아이콘, zlib/deflate 스트림 |
7.40 - 8.00 | 암호화 암호문 | AES/RC4 암호화 페이로드 또는 밀집 패킹된 셸코드 |
MIT 라이선스. 자세한 내용은 LICENSE를 참조하세요.