Byte Entropy

v0.1.02026年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

この数値は仮のものです。 まだ計測していないため、実際の結果として読まないでください。この部品のレジストリファイルには "sample": true が付いています。

ベンチマーク

サンプルデータ

入力サイズごとに kura-rs(Rust)と scipy.stats.entropy を比べています。 計測したすべての入力サイズで速い。最大 35× 速い。

この数値は仮のものです。 まだ計測していないため、実際の結果として読まないでください。この部品のレジストリファイルには "sample": true が付いています。

kura-rs (Rust)scipy.stats.entropy
1回あたりの処理時間(短いほど良い)。
数値の表を見る
入力サイズ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

なし。標準ライブラリのみです。