Hinikaa/entropy

GitHub: Hinikaa/entropy

单文件、零依赖的 C++ 香农熵计算器,用于在逆向工程和恶意软件分析中快速识别文件内的压缩、加密或加壳区域。

Stars: 0 | Forks: 0

# entropy 文件的香农熵,以比特每字节为单位。 ## 概述 适用于在逆向工程或恶意软件分类期间,无需打开十六进制编辑器即可发现压缩、加密或加壳区域:明文和本地代码的熵值远低于 6 比特/字节,而压缩和加密数据的熵值则密集分布在 7.5-8 之间。逐块模式将其转化为二进制文件的粗略映射,让你能直观地看出加壳程序的存根在哪里结束,以及加壳后的有效载荷从哪里开始。 单文件,除了 libstdc++ 之外没有其他依赖。 ## 安装 ``` make ``` 会在当前目录下生成一个 `entropy` 二进制文件。 ## 用法 整个文件的熵: ``` ./entropy suspicious.bin ``` 逐块熵(每 4096 字节块的偏移量和熵,以制表符分隔): ``` ./entropy suspicious.bin 4096 ``` ## 示例 ``` $ ./entropy /bin/ls 6.24471 $ ./entropy encrypted.bin 7.98812 ``` ## 注意事项 - 仅凭熵值并不能证明数据已加密——已经压缩过的格式(PNG、JPEG、ZIP)的得分也同样高。它只是一种筛选信号,而非最终判定。 - 对于文件末尾那些短于 `block-size` 的块,仍然会根据其实际长度进行测量,而不会进行填充。 ## 许可证 MIT,详见 `LICENSE`。
标签:C++, 云资产清单, 信息熵计算, 恶意代码分析, 数据擦除, 逆向工程, 配置文件