Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
recurse — バイナリ解析とCTF作業のための、純粋なRust製マルチアーキテクチャ逆アセンブラ、ネイティブ逆コンパイラ、デバッガ、およびLLMエージェントを備えたエージェント型リバースエンジニアリングIDE。 | Kitploit
ツール/GitHubGitHub/recurse-labs/recurse
静的分析動的分析 (サンドボックス)リバースエンジニアリングデバッガマルウェア分析CTFバイナリ解析学習と教育AI支援リバースエンジニアリングAIセキュリティ
GitHubrecurse-labs/recurse

recurse

21416991日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →

バイナリ解析とCTF作業のための、純粋なRust製マルチアーキテクチャ逆アセンブラ、ネイティブ逆コンパイラ、デバッガ、およびLLMエージェントを備えたエージェント型リバースエンジニアリングIDE。

リポジトリを見るウェブサイト
共有

Recurse

エージェント型リバースエンジニアリング環境 — 「リバースエンジニアリングのための Cursor」の精神で作られた Ghidra クラスのデスクトップアプリ。Tauri 2(React + TypeScript フロントエンド)で構築され、プラグイン可能な解析バックエンドの上に成り立っています。デフォルトは純粋な Rust ネイティブエンジン — 外部プロセスなし、コピーレフト依存なし、Capstone によるマルチアーキテクチャ対応。r2(radare2)を通じて解析を実行することもできます。インストールしてエンジンとして選択すれば、アプリ全体 — エージェントツールと UI — がそれを使って動作します。エージェントツールと UI はバックエンド非依存です — docs/backends.md を参照してください。

Recurse demo

リポジトリ構成

ルートに Cargo ワークスペースがあり、デスクトップアプリはその中の 1 パッケージです。

root@kitploit:~
tauri/                   desktop app (Tauri + React)
  src/                     React frontend
  src-tauri/               Tauri Rust backend (engine sessions, agent wiring)
  package.json             app scripts (Vite, Vitest, Tauri CLI)
crates/
  recurse-agent/              agent framework: LLM loop, tool runtime, SQLite memory
  recurse-static/          static analysis: ELF/PE/Mach-O parsing, multi-arch disassembly,
                           CFG and cross-reference recovery, the engine seam
  recurse-vtil/            VTIL-inspired de-obfuscation/de-virtualization IL, lifter, optimizer
  recurse-mcp/             standalone headless MCP server (stdio) over the engine — no Tauri, no IDA
  recurse-debug/           cross-platform debugger (ptrace/Mach/Win32, breakpoints, stepping)
  recurse-eval/            headless eval harness (YAML-configured tiers)
justfile                 single entry point for both halves

recurse-agent はエージェントのみです。静的解析は recurse-static に、デバッガは recurse-debug にあるため、エージェントは使用しないシステムコードを取り込みません。どのクレートも Tauri に依存せず、それぞれ単独でビルド/テストできます。recurse-eval はエージェントをヘッドレスで駆動します。すべてワークスペースメンバーなので、1 つの Cargo.lock と 1 つの target/ がリポジトリ全体をカバーします。

機能

  • Cursor スタイルのワークスペース: 関数リスト、逆アセンブリ/文字列/インポートタブ、CFG グラフ、チャットエージェントサイドバー(Chat ボタンまたは Ctrl+L で切り替え)
  • Recon ページ: バイナリ情報、MD5/SHA1/SHA256/CRC32 ハッシュ、エントロピー、リンクされたライブラリ、自己完結型のハードニングレポート(RELRO / PIE / NX / canary / FORTIFY / RPATH — 外部の checksec 不要)、および解析カウント
  • リストから関数をリネーム(ダブルクリックまたは ✎ ボタン)。名前は SQLite に永続化され、関数リスト、逆アセンブリの注釈、およびエージェントに表示されます
  • グラウンデッドなエージェント: すべてのアドレスはクリック可能なオブジェクト(関数リスト、グラフノード、xref、逆コンパイラ注釈)であり、モデルがハルシネーションする可能性のある貼り付けテキストではありません
  • 任意のバイナリに対するライブ解析セッション — 拡張子のないファイルも含む
  • FTS5/BM25 検索による SQLite の永続的なプロジェクトメモリ — リネーム、発見事項、ノートは /clear や再オープンを経ても保持され、次のセッションのシードになります
  • ターンごとのデバッグトレースを備えたヘッドレスコア(recurse-agent)。同じエージェントループが UI と eval ハーネスの両方で動作します
  • OpenAI 互換エンドポイント(デフォルトは OpenRouter)に支えられた LLM エージェントとモデルピッカー。セッションを直接駆動します(disasm、xrefs、strings、imports、decompile)
  • Tailwind CSS v4 + shadcn/ui で構築されたダークファースト UI
  • lift オペレーション: 関数を VTIL スタイルの難読化解除 IL に持ち上げ、ルーチン全体の伝播/畳み込み/デッドコード除去/分岐解決パスを実行します — 逆アセンブリが VM ディスパッチャや不透明述語チェーンのように見える場合に有用です(docs/vtil-lift.md を参照)
  • ネイティブ逆コンパイラ: decompile は同じ recurse-vtil パイプラインから C ライクな擬似コード(if/while 構造化、全命令カバレッジ)を生成します — 外部ツール不要、r2 も不要
  • スタンドアロンの recurse-mcp サーバー: MCP stdio 経由で同じ Engine を任意の MCP 対応エージェント(Claude Code、Cursor、Claude Desktop など)に提供 — Tauri 不要、IDA シート不要、Python ブリッジ不要(docs/recurse-mcp.md を参照)

解析バックエンド

解析は単一の Engine トレイト(crates/recurse-static/src/engine.rs)を通じて行われるため、エンジンは選択肢であり、ハード依存ではありません:

  • native(デフォルト) — 純粋な Rust による ELF/PE/Mach-O パースとマルチアーキテクチャ逆アセンブリ(object + capstone): x86/x86-64、ARM、AArch64、MIPS、PowerPC、RISC-V、SPARC、SystemZ、M68K、BPF。子プロセスなし、外部ツールなし、ビルドに LGPL なし。逆コンパイラ(recurse-vtil の lift → optimize → structure パイプライン — docs/vtil-lift.md を参照)と、VTIL スタイルの難読化解除のための lift オペレーションを含みます。
  • r2(radare2) — より完全な独自の逆コンパイラや生のコンソールを求めるインストール向けに、オプトインの代替としてサポートされています。r2 をインストールしてエンジンとして選択してください。別プロセスとして実行され、Recurse にリンクされたりバンドルされたりすることはありません。

設定メニュー、RECURSE_BACKEND 環境変数、または保存された設定で選択します。エージェントは 1 つのバックエンド中立な analyze ツール(functions、disasm、graph、lift、decompile、xrefs、strings、imports、info、およびエンジンコンソール用の raw)を取得します — アクティブなエンジンが実際にサポートするオペレーションにフィルタリングされるため、raw(native にはコンソールがない)は利用可能な場合にのみ通知されます。UI は任意のエンジンの JSON ではなく、正規の結果型を消費します。トレイト、クレートの選択、ライセンスの根拠については docs/backends.md を参照してください。大きなバイナリを開くのが高速なのは、解析が遅延であるためです — ディスカバリは関数を安価にインデックス化し、基本ブロックは関数が表示されたときにのみデコードされます。docs/lazy-analysis.md を参照してください。

なぜ MCP-to-IDA や Claude Code で雑にやらないのか?

MCP サーバーを IDA/Ghidra に接ぎ木したり、逆アセンブリを CLI エージェントに貼り付けたりするのは、5 関数の CTF なら機能しますが、実際のバイナリでは破綻します。Recurse はチャットボットのラッパーではなく、目的に特化して作られた環境です:

  • テキストのスクレイピングではなく、バイナリのワールドモデル。 関数、xref、文字列、CFG はエージェントと UI が共有する第一級の状態です。毎ターン pdF ダンプをコンテキストに再パースする必要も、でっち上げの 0x401023 もありません。
  • 生成よりも検証。 RE には npm test がありません — 検証は視覚的に行います。エージェントのリネームは関数リスト、グラフ、逆コンパイルに即座に反映されるため、人間がワンクリックで確認または却下できます。
  • スケールのために構築。 実際のマルウェアは 1 万関数です。オンデマンドのツール + 永続メモリは、コンテキストが OOM するまで完全な逆コンパイルをダンプするよりも優れています。
  • エージェント可能なエンジン。 スクリプト可能でパイプ可能なエンジンとは、エージェントが 100 ターン実行し、フォークし、リセットし、差分を取れることを意味します — そして実際に出荷できます。デフォルトのネイティブエンジンは外部ツールを一切必要としません。
  • デフォルトでマルウェアセーフ。 ローカルファースト、BYO キー/OpenRouter ルーティング、オフラインモデルへの道 — サンプルをクラウドチャットボットに強制的に持ち出すことはありません。

前提条件

1. コアツールチェーン

ToolVersion (tested)Install
Node.js≥ 20 (23.11 used)https://nodejs.org or nvm
npm≥ 10ships with Node.js
Rust≥ 1.77 (1.97 used)https://rustup.rs
cargo—ships with Rust (rustup)

確認:

root@kitploit:~
node --version && npm --version && rustc --version && cargo --version

2. 解析エンジン

デフォルトの native エンジンは純粋な Rust です — インストールするものはありません。代わりに r2(radare2)を解析エンジンとして使用するには、インストールして選択します(設定メニュー、または RECURSE_BACKEND=r2)。Recurse は PATH 上の r2 バイナリを駆動します。r2 はオプションであり、ビルドで要求されることはなく、Recurse と共に配布されることもありません — ご自身でインストールしてください。

3. Tauri Linux システム依存関係

Debian/Ubuntu/Pop!_OS:

root@kitploit:~
sudo apt update
sudo apt install -y libwebkit2gtk-4.1-dev build-essential \
  curl wget file libxdo-dev libssl-dev libayatana-appindicator3-dev librsvg2-dev

その他のディストリビューション: 公式の Tauri prerequisites に従ってください。

4. 逆コンパイラ

両方のエンジンが提供します: native は recurse-vtil を介して擬似コードを生成し(lift → optimize → structure — docs/vtil-lift.md を参照)、インストールするものはありません。r2 はプラグインがインストールされていれば、より完全な独自の逆コンパイラを提供できます。

ビルド

アプリの依存関係は tauri/ にあり、Rust はワークスペースルートから取得します。just は両方をラップします(just --list を参照)、または直接駆動することもできます。

開発

root@kitploit:~
just dev
# equivalent: cd tauri && npm install && npm run tauri dev

これにより Vite 開発サーバーが起動し、Tauri ウィンドウが立ち上がります。最初のコンパイルにはしばらくかかります(Rust ビルド)が、以降は高速です。

プロダクションバイナリ

root@kitploit:~
just build
# equivalent: cd tauri && npm run tauri build

バンドルは target/release/bundle/(ワークスペースターゲット)に出力されます:

  • Linux 用の .deb / .rpm / .AppImage
  • target/release/recurse にあるスタンドアロンバイナリ

Arch やその他のローリングディストリビューションでは、AppImage ステップに一度きりのローカル修正が必要です(上流の linuxdeploy がディストリビューションのツールチェーンに遅れているため) — docs/linux-appimage-build.md を参照してください。

フロントエンドのみ(デスクトップシェルなし)

root@kitploit:~
just preview
# equivalent: cd tauri && npm run build && npm run preview

品質チェック

root@kitploit:~
just lint        # cargo clippy --workspace + eslint
just fmt         # cargo fmt --all + prettier
just fmt-check   # verify without writing
just test        # cargo test --workspace + vitest

同等の直接コマンド: ルートで cargo clippy --workspace --all-targets、cargo test --workspace。tauri/ 内で npm run lint / npm run format / npm run build。

評価

エージェントは crackme ティアに対してヘッドレスで評価されます(crates/recurse-eval/README.md を参照)。ティアは YAML です: データセットに対する選択フィルタ、または凍結された hexid リスト、および実行ノブ。

root@kitploit:~
just eval-fetch   # download the tier's binaries
just eval-test    # harness self-tests (no API key needed, no LLM calls)
just eval-run     # run the tier — the only way to execute an eval YAML

eval-run はテストではなくバイナリであるため、cargo test がエージェントに金銭や時間を費やすことはありません。エンドポイント + キーは crates/recurse-eval/.env に記述します(.env.example をコピー)。各実行は target/eval-traces/<tier>/<backend>/run.log(完全なナラティブ)と、タスクごとに完全なターンごとの会話を含む <hexid>.json を 1 つ書き出します。バックエンド(native または r2)は実行ごとに選択可能です — eval README を参照してください。

エージェント LLM

エージェントチャットパネルは任意の OpenAI 互換エンドポイントで動作します。API キー、ベース URL、モデルはアプリ内の Model & Provider ダイアログから設定するか(~/.recurse/recurse.db に永続化)、環境変数で設定します:

root@kitploit:~
# Hosted provider (default)
export RECURSE_LLM_API_KEY=sk-or-...   # or OPENROUTER_API_KEY
export RECURSE_LLM_ENDPOINT=https://openrouter.ai/api/v1/chat/completions  # optional
export RECURSE_LLM_MODEL=openrouter/auto  # optional

ローカルモデル / カスタムベース URL

エージェントを任意のローカルまたはセルフホストの OpenAI 互換サーバー — Ollama、LM Studio、llama.cpp の llama-server、vLLM、text-generation-webui、またはリモートゲートウェイ — に向けます。ダイアログで Base URL を設定し(ベアなベース URL でも完全な /chat/completions ルートでも動作します)、そのサーバーのカタログからモデルを選択するか、モデル ID(llama3.1:8b、qwen2.5-coder など)を直接入力します:

root@kitploit:~
export RECURSE_LLM_ENDPOINT=http://localhost:11434/v1   # Ollama
export RECURSE_LLM_MODEL=llama3.1:8b
export RECURSE_LLM_API_KEY=           # usually unnecessary locally

ローカルエンドポイントには API キーは不要です: キーが空の場合、リクエストは Authorization ヘッダーなしで送信され、モデルリストはエンドポイント自身の {base}/models から読み取られます。カスタムエンドポイントはキーなしで設定済みとして扱われるため、チャットはローカルサーバーに対してすぐに動作します。

認証情報がない場合はエコークライアントにフォールバックするため、配線は引き続き試すことができます。

エージェントはライブのバイナリコンテキスト(アーキテクチャ、ビット数、タイプ)を認識し、セッションを通じて完全な解析サーフェス(逆アセンブリ、xref、文字列、インポート、逆コンパイル)を駆動できます。

ライセンス

Apache-2.0 — © 2026 Aayush Khanna

ツールをダウンロード