Noelo-Lab/kuna

An agent-first decompiler designed to be refined by other agents. Kuna is written in Rust and was originally ported from Ghidra.

Kuna – エージェントファーストな逆コンパイラ (Rust)

概要

  • KunaはRustで書かれたバイナリ逆コンパイラです。コンパイル済みの実行ファイル(ELF、PEなど)を受け取り、Cのソースコード、ヘッダーファイル、アセンブリファイルを生成します。
  • このプロジェクトは「大規模言語モデル (LLM) エージェントが逆コンパイラの主要なユーザーになる」という考えに基づいて構築されており、ツールはエージェントファースト(高速、テキスト指向、スクリプト化が容易)に設計されています。

主な機能 (READMEより)

  • 速度と精度 – 最適化されたCコードのDecBenchベンチマークでトップの座を占めており、19 MBのバイナリを3分以内に逆コンパイル可能です。
  • 複数のフロントエンド – 単一の自己完結型Rustバイナリとして配布され、以下のように実行可能です:
    1. CLI – kuna decompile <binary> <function>(オプションフラグ --addr, --option をサポート)。
    2. Web (WASM) – kuna.noelo.org/decompile にあるブラウザベースのUI。完全にクライアントサイドで動作し、バイナリのプライバシーを保護します。
    3. Ghidraプラグイン – KunaDecompiler 拡張機能を通じてGhidraの組み込み逆コンパイラを置き換えることができます。
  • エージェント統合 – LLMエージェント(Claude Code、Codex、OpenCodeなど)が最適なコマンド使用法を学習するためにインストールできる「スキル」ファイル (skills/kuna/SKILL.md) を同梱しています。
  • 拡張可能なパイプライン – 逆コンパイラは明確に定義されたフェーズ (p0_knowledge … p9_emit) に分割されています。各フェーズは自然言語の仕様で文書化されており、LLMが変更を提案・テストしやすくなっています。
  • 調整可能なオプション – 機能の切り替えは階層的なオプションカタログ (docs/options.md) を通じて公開されています。これにより、ユーザー(リバースエンジニアやエクスプロイト開発者など)は、高レベルまたは低レベルの出力を要求できます。

入手方法

  • Linux、Windows、macOS用のビルド済みバイナリは、GitHub Releasesページから入手可能です。
  • ソースからのビルドにはRustツールチェーン (cargo) のみが必要です。リポジトリにはショートカットを含む Makefile が用意されています:
    • make binaries – 逆コンパイラ、SLEIGHコンパイラ、CLIをビルドします。
    • make specs – SLEIGHプロセッサ仕様をコンパイルします。
    • make test – 完全な回帰テストスイート(83のテストファイルにわたる675のアサーション)を実行します。

プロジェクトの目標

  1. 自律的な改善 – LLM駆動のパイプラインとDecBenchメトリクスを使用して、人間の介入なしに逆コンパイラを継続的に改善します。
  2. エージェントファーストな設計 – 逆コンパイルされたテキストの品質と速度を優先し、LLMエージェントにクリーンなインターフェースを提供します。
  3. 調整可能なパイプライン – エージェント(または人間)が、さまざまなリバースエンジニアリングタスクに合わせて機能をオン/オフできるようにします。

コミュニティとサポート

  • 質問や開発議論のためのアクティブなDiscordチャンネル。
  • 米空軍研究所、Metalware、米国国防総省による支援。
  • 貢献ガイドラインとエージェント向けドキュメントは AGENTS.md および docs/ にあります。

結論 Kunaは、リバースエンジニアリングを行うAIエージェントのバックエンドとして位置付けられた、現代的なRustベースの逆コンパイラです。高速で高品質なC出力、複数のデプロイオプション、そして自動化されたLLM駆動の改善のために構築されたアーキテクチャを提供します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト