cognis-digital/packpeek
GitHub: cognis-digital/packpeek
一款无依赖的 C 语言静态加壳检测工具,通过特征标记匹配和 Shannon 熵值计算快速判断二进制文件是否被加壳。
Stars: 0 | Forks: 0
# packpeek
**静态加壳/加载器指纹识别工具 (C)** —— 这个二进制文件加壳了吗?是被什么加的?
[](https://github.com/cognis-digital/packpeek/actions/workflows/ci.yml)


**[Cognis Neural Suite](https://github.com/cognis-digital)** 的一部分。这是恶意软件分类的经典第一步:`packpeek` 会在二进制文件中搜索常见运行时加壳/保护工具的已知标记 —— **UPX, ASPack, Themida, WinLicense, MPRESS, PECompact, Petite, FSG, MEW, NsPack, Enigma, VMProtect, Armadillo** —— 并测量 **Shannon 熵**。加壳标记加上高熵值是一个强烈的“已加壳,需深入检查”的信号。
格式无关(PE / ELF / Mach-O / 固件 blob),无依赖,输出 JSON。与 [`entroc`](https://github.com/cognis-digital/entroc) 配合使用以获取滑动窗口熵,并通过内置配套工具生成 **YARA + SARIF**。
## 构建
```
gcc -O2 -std=c99 -o packpeek packpeek.c -lm
```
## 用法
```
packpeek [--threshold F]
--threshold entropy (bits, 0..8) above which a file is "high entropy" (default 7.2)
```
```
packpeek suspicious.exe
packpeek suspicious.exe | python sarif.py # -> SARIF for code scanning
packpeek suspicious.exe | python sarif.py --yara # -> deployable YARA rule
```
## 输出
```
{"tool":"packpeek","file":"suspicious.exe","size":204800,"entropy":7.91,
"high_entropy":true,"threshold":7.20,
"packers":[{"name":"UPX","offset":336}],"packer_count":1,"verdict":"packed"}
```
如果 `packed`/`likely-packed` 则退出码为 **2**,`clean` 为 **0**,出错则为 **1** —— 可据此对 CI 进行门控。
## 许可证
COCL 1.0 —— 详见 [LICENSE](LICENSE)。商业使用 → licensing@cognis.digital
标签:客户端加密, 逆向工具