Byte Entropy

v0.1.0添加于 2026年9月26日示例数据

在二进制文件的滑动窗口上计算香农熵,用于发现加壳或加密的区段。

cargo install kura-rs
kura add byte-entropy

将源码文件复制到你的项目中。此后代码完全归你所有。

如果其他工具已经安装了 kura 命令,请运行 cargo install kura-rs --bin kura-rs,并改用 kura-rs add。

use crate::parts::byte_entropy::windows;

for w in windows(&binary, 4096) {
    if w.entropy > 7.2 {
        println!("offset {:#x}: likely packed ({:.2} bits/byte)", w.offset, w.entropy);
    }
}

验证

示例数据

使用基于属性的测试与 scipy.stats.entropy 1.14(Python)进行对照:向两个实现输入相同数据,并比较输出结果。

参考实现
scipy.stats.entropy
Python 1.14
测试用例
4,000
基于属性的测试
通过
4,000 / 4,000
全部一致
最近运行
2026年9月26日
UTC

以下数值仅为占位。 这些数值尚未经过实测,请勿当作真实结果。该组件在其 registry 文件中标记为 "sample": true。

基准测试

示例数据

在不同输入规模下对比 kura-rs(Rust)与 scipy.stats.entropy。 在所有测量的输入规模下均更快,最高快 35×。

以下数值仅为占位。 这些数值尚未经过实测,请勿当作真实结果。该组件在其 registry 文件中标记为 "sample": true。

kura-rs (Rust)scipy.stats.entropy
每次运行的耗时(越低越好)。
显示数据表
输入规模kura-rs (Rust)scipy.stats.entropy加速比
4,0960.01 ms0.35 ms35×
65,5360.09 ms2.9 ms32×
1,048,5761.4 ms44 ms31×
16,777,21622 ms700 ms32×

文件

  • parts/byte_entropy/mod.rs

crate 依赖

无,仅使用标准库。