コンテンツにスキップ

パス

Kagura は LLVM の New Pass Manager 上に構築されています。各変換は個別のパスで、-kagura-<name> フラグまたは JSON ポリシー で個別に有効化します。

パスは目的別に分類されています:

  • 制御フロー — CFG をフラット化、偽の分岐を注入、BB を分割・並び替え、呼び出しを間接化。
  • データ難読化 — 文字列、定数、グローバル、alloca 値を暗号化。
  • アンチ解析 — デバッガ / フックフレームワークの検出、整合性検証、シンボル隠蔽。
  • プラットフォーム固有 — ObjC セレクタ / クラス名難読化、JNI 動的登録、VM 仮想化。
  • インフラ — DWARF 制御、設定ローダ、シンボルマップ、監査ログ。

関連: