Scrambler: Mixed Boolean Arithmetic Obfuscation Tool Using E-graph and Equality Expansion

この論文は、等価性保証付きの効率的な複雑かつ多様な式生成を可能にする「Equality Expansion」を用いた e-graph ベースの MBA 難読化ツール「Scrambler」を提案し、既存ツールよりも優れた表現力と複雑さを有することを実験で示しています。

Seoksu Lee, Sangjun An, Eun-Sun Cho

公開日 Mon, 09 Ma
📖 1 分で読めます☕ さくっと読める

Each language version is independently generated for its own context, not a direct translation.

この論文は、**「Scrambler(スクランブラー)」**という新しいツールについて紹介しています。このツールは、コンピュータのプログラムを「解読しにくいようにごちゃごちゃに混ぜる(難読化)」技術に特化しています。

専門用語を避け、日常の例えを使って簡単に説明しますね。

🍳 料理の例え:「同じ味」でも「見た目は全く違う」

Imagine(想像してみてください)、「卵とトマトの炒め物」という料理があるとします。

  • 元の料理(素朴なコード): 卵とトマトを炒めるだけ。誰でも「あ、炒め物だ」とわかります。
  • 既存のツール(古い方法): 料理のレシピ本(決まりきった変換ルール)を使って、少し複雑な味付けに変えます。でも、レシピ本が限られているので、結局「炒め物」の形はあまり変わらなかったり、作り方が決まりきっていたりします。
  • Scrambler(新しい方法): 「卵とトマト」を、「卵とトマトを混ぜたもの」+「卵とトマトを別々に炒めたものを足したもの」-「余計な調味料」のように、数学的なマジックを使って無限に複雑な形に変えてしまいます。

重要なのは、「見た目(コードの形)は超複雑になって読めなくなっても、味(プログラムの機能)は全く同じまま」という点です。


🔍 このツールがすごい 3 つの理由

1. 「魔法の箱(E-Graph)」を使う

これまでのツールは、一つ一つの料理(式)を個別に作って、最後に「本当に同じ味か?」を味見(検証)していました。これだと時間がかかります。

Scrambler は**「E-Graph(イー・グラフ)」という「魔法の箱」**を使います。
この箱は、「A という料理」と「B という料理」は実は同じ味だということを、最初から箱の中で「同じグループ」として管理しています。

  • メリット: 箱の中で複雑な料理を作っている最中に、「これは同じ味だ」ということが自動的に保証されるので、最後に味見(検証)をする必要がありません。 効率バツグンです!

2. 「Equality Expansion(等式の拡張)」というテクニック

これまでのツールは「シンプルにする」方向に働いていましたが、Scrambler は逆です。
**「もっと複雑に、もっとごちゃごちゃに!」**という方向に働きます。

  • 例え: 元の料理が「卵」だけだとします。
    • 既存ツール:「卵+塩」や「卵+胡椒」くらいしか作れません。
    • Scrambler:「卵+(卵×卵)÷(卵+卵)」のように、ルールさえ守れば、果てしなく長いレシピ(コード)を自動生成します。
    • 論文では、「AST サイズ(料理の分量の目安)」が3 万倍以上に膨れ上がった例も報告されています。

3. 既存ツールとの比較

実験結果によると、Scrambler は他の有名なツール(NeuReduce や Loki など)よりも、圧倒的に複雑で多様なコードを生成できることがわかりました。

  • 他のツール:料理のバリエーションが限られている。
  • Scrambler:ルールさえ与えれば、無限に近いバリエーションを生み出せる。

🎯 なぜこれが重要なの?

コンピュータのプログラムには、**「リバースエンジニアリング(中身を解析して盗んだり、改造したりする)」**というリスクがあります。

  • 今の状態: 解析者が「あ、これは足し算だ」と一発でバレてしまう。
  • Scrambler の状態: 「これは何?足し算?掛け算?論理演算?これら全部がごちゃ混ぜになってる!」と解析者が頭を抱えるほど複雑にする。

これにより、プログラムの中身を盗んだり、悪用したりするのを非常に難しくします。

📝 まとめ

この論文は、**「Scrambler」**という新しいツールを紹介しています。

  • 何をする? プログラムを、機能はそのままに、**「解読不可能なほど複雑な形」**に変える。
  • どうやって? 「E-Graph(魔法の箱)」と「等式の拡張」という新しい技術を使って、自動的かつ高速に複雑なコードを生成する。
  • 何がすごい? 従来のツールよりはるかに複雑なコードが作れ、かつ**「同じ機能であること」を自動的に保証**できるので、検証の手間が省ける。

つまり、**「プログラムのセキュリティを、魔法のように強固にする新しい調理法」**が見つかった、というのがこの論文の核心です。