Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
kunglao-agent — リバースエンジニアリングのエキスパートエージェント:自ら分析経路を計画し、あらゆる事実を生の証拠から導き出し、機械的な検証ゲートの下で収束する — ファームウェア、プロトコル、Web/JS、リスク管理、バイナリ。 | Kitploit
ツール/GitHubGitHub/amd2g2zz/kunglao-agent
Androidセキュリティ静的分析動的分析 (サンドボックス)脆弱性分析モバイルアプリペンテストリバースエンジニアリングウェブセキュリティマルウェア分析バイナリ解析AI支援リバースエンジニアリングファームウェア解析
269111日前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
GitHub
amd2g2zz/kunglao-agent

kunglao-agent

リバースエンジニアリングのエキスパートエージェント:自ら分析経路を計画し、あらゆる事実を生の証拠から導き出し、機械的な検証ゲートの下で収束する — ファームウェア、プロトコル、Web/JS、リスク管理、バイナリ。

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

kunglao-agent

kunglao-agent は自律型リバースエンジニアリングシステムです。ターゲットと、答える必要のある質問を渡すだけで、何時間も何日も自力で問題に取り組みます — 自ら経路を計画し、ワーカーの死から復帰し、クラッシュ後も再開し — そしてすべての答えが生の証拠から導出され、機械的な検証ゲートを通過したときにのみ収束します。

release-check python license PRs welcome

English · 簡体字中国語

現在は Claude Code プラグインとして提供されています — Claude Code は対話するためのインターフェースであり、製品そのものではありません。製品はループです。専門ワーカーが分析し(まず静的解析)、独立した検証者が生の証拠からすべての事実をブラインドで再導出し、機械的なゲートが作業の完了を判断します。成果物は、すべての主張がバイト単位で固定され、独立して検証され、証拠に索引付けされたファクトベースです — 信頼は慣習ではなく、仕組みによって強制されます。

kunglao-agent を選ぶ理由

  • 設計上、長期的な時間軸に対応。 エンゲージメントは何時間も何日も無人で実行されます。スケジュールされたハートビートがループを維持し、死んだワーカーは調整されてその主張は再キューイングされ、クラッシュはディスク上の状態から再開し、ブロックされた主張は自己回復します。収束したときに判定を読むだけで、各ステップを監視する必要はありません。長期的な自律性を参照してください。
  • 信頼できる答え。 独立した検証者が生のアーティファクトからブラインドで再導出するまで、いかなる事実も PROVEN にはなりません。すべての事実は evidence/_index.json を通じて sha256 で索引付けされた生のアーティファクトを引用します。
  • リバースエンジニアリングの全領域。 Windows/Linux ネイティブバイナリ、Android APK、Web/JS、プロトコル解析、ファームウェアエミュレーション、リスク制御の対抗策 — 単一領域のツールではなく、一つのシステムです。
  • 静的解析優先の経済性。 静的に完了するタスクは動的ツールに一切触れません。すべてのエスカレーションは宣言され、ゲートを通り、監査されます。
  • 再導出するのではなく、知識を再利用します。 登録された解析ツール(暗号デコーダ、逆アセンブリパイプライン、グラフクエリ)のカタログが成長することで、システムは使い捨てのスクリプトを書く前に実績のあるツールに手を伸ばします — そしてすべての実行は、消え去るチャットの記録ではなく、再利用可能な事実を残します。
  • 死なずに回復します。 ワーカーの死、API 切断、クラッシュは第一級のイベントです。ループはそれらを検出し、すでに生成されたものをスナップショットし、停止したところから続行するために再ディスパッチします — ゼロからではなく。
  • あなたの環境、あなたのルール。 VMware、ssh、docker、adb、または単なる静的解析のみ — システムはあなたがすでに持っている実行チャネルを駆動します。どれも劣化モードではありません。実行を必要としないタスクは VM を要求しません。

クイックスタート

kunglao-agent は Claude Code 内で動作します。ディスク上のサンプルから判定まで:

1. プラグインをインストールする

任意のディレクトリから、Claude Code 内で:``` /plugin marketplace add amd2g2zz/kunglao-agent /plugin install kunglao-agent@kunglao-agent

root@kitploit:~
(代替: 開発用には `claude --plugin-dir /path/to/kunglao-agent` を使用します。)

### 2. ワークスペースの初期化```
/kunglao-agent:init ~/cases/synth-dropper --type windows

kunglao-init はワークスペースをスキャフォールドし、CLAUDE.md を書き込み、--type に応じてツールチェーンをプローブし、.mcp.json をスキャフォールドします。指定したタイプに必要なツールが欠けている場合は HARD 拒否 します — 修正のガイダンスはエラーブロックに記載されています。

3. タスクを宣言して分析を開始する```

/kunglao-agent:analysis ~/cases/synth-dropper

Goal: confirm this dropper's persistence mechanism and network endpoints; every conclusion must be reproducible from raw evidence. Verification: key findings count only if an independent verifier re-derives them blind and reaches the same answer. Constraints: static-first; never execute the sample on the host.

root@kitploit:~
独立したレビュアーが結果を判断できるようにブリーフを書きます: **分析目標**(何を知る必要があるか)、**検証ロジック**(何が回答を信頼できるものにするか — 例:「署名は同じ入力から再現可能でなければならない」)、**制約**(例:「ホスト上で実行しない」)。すべては `task_spec.yaml` に記録され、そこからループが自らを駆動します。一般的な要求がどのように適切に形成された記述になるかについては、[タスクの記述方法](#how-to-state-the-task)を参照してください。

### 4. 成果物を読む```
claim-register.yaml   # every claim terminal, with verifier sign-off
facts/F<NNN>.md       # byte-anchored, reproducible, frontmatter contract
evidence/_index.json  # every fact → raw artifact (sha256 + path)
runs/                 # session audit trail

タスクをどう記述するか

ループは、あなたが記述した最終状態から完了基準 — オラクル — を機械的に導出する。曖昧な記述は曖昧なオラクルを生み、解析はあなたが必要としていたものではなく、証明可能なものへと漂流していく。4つの言い回しが、その漂流のほとんどをカバーする。それぞれについて、ユーザーが言うこと、それが通常意味すること、適切に形成された記述、そしてオラクルが何にアンカーするかを示す。

「我要纯算」 — 「純粋なアルゴリズムだけ」

通常意味すること: アプリの署名/暗号ルーチンのオフライン再現 — 実行時にデバイスもアプリも不要で動作する unidbg ハーネス、または書き直し。「アプリを解析する」ことではない。アプリはアルゴリズムが存在する場所にすぎない。```

Sample: the v7.2 APK; behavior: the signer producing the sign header on api.example.com/v2/* requests. Criterion: a standalone reproduction (unidbg or rewrite) replays every captured (input → sign) pair byte-exact — including the withheld pairs — with no device or app at run time. Attach: captures/sign-pairs.jsonl — 20 input/output pairs captured from a live session; 10 of them withheld from the analysis.

root@kitploit:~
**Oracle の基準:** すべてのペア(保留されたものを含む)におけるバイト単位で完全な再現 — そして単独で実行される再現。

### 「我要解密」 — 「復号したい」

**通常、2つの異なるターゲットのいずれかを意味する — どちらかを明示すること:**

- **(a) キャプチャした1つのボディを復号する** — このデータに関する単発の回答:「このキャプチャしたキャッシュファイルの平文を生成せよ。」
- **(b) 復号機能** — アルゴリズム + 鍵復元。明日キャプチャするデータに対して再利用可能。

適切に形成された (a):```
> Sample: the v7.2 APK; behavior: the local config cache
>   files/.cfg/v2.dat is encrypted at rest.
> Criterion: produce the plaintext of the captured v2.dat and validate
>   it against what the app renders (field names and values match the
>   screenshot captured alongside).

整形式 (b):```

Sample: the v7.2 APK; behavior: request bodies on api.example.com/v2/* are encrypted with a static key. Criterion: identify the algorithm and the key, then run a canary round-trip — encrypt a known plaintext with the recovered key and match the ciphertext the device produced, byte for byte. Attach: captures/request-bodies.jsonl — ciphertext bodies captured from the device, with the requests that produced them.

root@kitploit:~
**Oracle の基準:** (a) 平文がアプリのレンダリング結果と一致して検証されること、(b) アルゴリズムと鍵が特定され、カナリアのラウンドトリップがデバイス生成の暗号文とバイト単位で同一であること。「一度復号できた」ではどちらも満たさない。

### 「帮我分析这个协议」 — 「このプロトコルを分析して」

**通常の意味:** ワイヤフォーマットの復元 — フレーミング、フィールドの意味論、そして実行可能なコーデック。```
> Sample: the Android chat app; behavior: the TCP protocol on
>   gateway.example.com:443, as captured in gateway-session.pcap.
> Criterion: a codec that round-trips every captured frame byte-exact,
>   and decodes the held-out frame to fields matching the observed app
>   behavior.
> Attach: captures/gateway-session.pcap — 40 frames, plus 1 held-out
>   frame kept out of the analysis.

Oracle の基準: コーデックがキャプチャしたすべてのフレームをバイト単位で正確にラウンドトリップすること、およびホールドアウトフレームが観測されたアプリの動作と一致するフィールドにデコードされること。

「この sign はどこで計算されるのか」 — "where does this sign get computed?"

通常の意味: 証拠を伴う位置。コード内の一点を指し示すのは容易だが、その答えは、この点がまさにその点であるという証拠があって初めて有用となる。```

Sample: the v7.2 APK; behavior: the sign header attached to every request. Criterion: name the class/method (or native function) where sign is computed, and hook that point to reproduce the captured sign values from the same inputs. Attach: captures/sign-session.jsonl — captured sign values with their request inputs.

root@kitploit:~
**Oracle のアンカー:** 名前付きのクラス/メソッド/ネイティブ関数、およびその時点でキャプチャした値を再現するフック。

### これらに共通するもの

- **サンプルと挙動を名指しする** — カテゴリではなく、どのパラメータ、エントリ、フローか。「我要纯算」はカテゴリであり、「api.example.com/v2/* の `sign` ヘッダを生成する署名器」はターゲットである。
- **成功はデータでなければならない。** キャプチャした入力/出力ペアを添付する。伏せられたペアこそがチェックを誠実にする — 再現は決して見なかったデータに過剰適合できない。
- **Oracle はあなたが述べた最終状態から導出される。** 曖昧な記述、曖昧な検証、漂流する分析。
- **制約は計画を変える。** 静的のみ? デバイスが利用可能? どのチャネル? 最初に明言すること — それが作業開始前にルートを決める([Bring your own environment](#bring-your-own-environment) を参照)。

## サブコマンド

| コマンド | 使用する場面 | 何をするか |
|---|---|---|
| `/kunglao-agent:init <workspace> [--type windows\|linux\|android\|web\|macos] [--lane malware\|algorithm\|protocol\|web\|data\|app]` | エンゲージメントの開始時、最初に | ワークスペースをスキャフォールドし、タイプに応じてツールチェーンをプローブし、`CLAUDE.md` と `.mcp.json` を書き込む。必須ツールが欠けている場合は修正ガイダンスとともに HARD 拒否する |
| `/kunglao-agent:analysis <workspace>` (エイリアス `analyze`) | init の後 — タスクを述べて開始する | 目標 / 検証ロジック / 制約を一度だけ収集し、その後収束ループを実行する: レポートまで dispatch / verify サイクルを繰り返す |
| `/kunglao-agent:resume <workspace>` | クラッシュ、再起動、または「どこまでやったっけ?」の後 | 読み取り専用のブレークポイント概要(ヘルス、未解決のクレーム、実行中のワーカー、クラッシュタイムライン)と、状態機械からの次のアクション |
| `/kunglao-agent:upgrade <workspace> [--dry-run]` | プラグイン更新後、古いワークスペースで(またはアップグレードプロンプトがスタンプの遅れを告げたとき) | ワークスペースのスキャフォールド(フック、テンプレート、イベント語彙)を現在のプラグインバージョンに移行する。`--dry-run` はプレビュー。ユーザーデータ(クレーム、ファクト、エビデンス)は決して触れられない — バイトドリフトは RC=4 で拒否する |
| `/kunglao-agent:help` | それ以外すべて | 使用法一覧を出力する |

典型的な順序: `init` がワークスペースを作成 → `analysis` がタスクを述べて開始 → (何かおかしくなれば `resume`) → 収束時にレポートを読む → プラグイン更新後に古いワークスペースを `upgrade`。

## 実行の様子

*エンゲージメントの形 — 何を入力し、何が返り、どこを見るか。* 合成例: 小さな Windows ドロッパーが `~/cases/synth-dropper` に着地する:```bash
/kunglao-agent:init ~/cases/synth-dropper --type windows   # probes Ghidra, VM reachability
/kunglao-agent:analysis ~/cases/synth-dropper
> "What does this binary do, and where does it phone home?"

そこからループは自動で回る — ルートはサンプルが何であるかに応じて適応する。離席してもよい(Long-horizon autonomy を参照)。収束したら、以下の成果物を読む。

シナリオ

さらに2つのエンドツーエンドのパス — ターゲットに合うものを選ぶ(プレーンな Windows PE / Linux ELF バイナリの場合、上記の実例がそのパスである)。

Android APK — ユーザーが入力するもの、どこに何が配置されるか```bash /kunglao-agent:init ~/cases/sample.apk --type android /kunglao-agent:analysis ~/cases/sample.apk > "Does this APK load code dynamically or fight debugging? If so, where is > the hidden logic and what does it do?" ``` - **格納先:** `bins/`(APK)、`facts/`(クラスグラフ、ネイティブ `.so` インベントリ)、`evidence/`(キャプチャ、ダンプ)。 - **完了条件:** すべての問いが再現可能な証拠に裏付けられていること。 - **ルートは適応する。** 純粋な静的 DEX 作業で完結する APK もあれば、オンデバイスデバッグを必要とするものもある — ループはサンプルの実際の姿から判断する。
Web / JS — アンパック → 難読化解除 → 署名付きパラメータのリプレイ```bash /kunglao-agent:init ~/cases/example-site.com --type web /kunglao-agent:analysis ~/cases/example-site.com > "how is the XHR request signed, and where does the nonce come from?" ``` - **格納先:** `evidence/`(キャプチャ、難読化解除されたコード)、`facts/`(署名鍵、nonce 導出)。 - **注記:** `web` はベータ段階のターゲットである — ツールチェーンの基準は意図的に軽くしてあり、不足している機能は init 時ではなく、ループが実際にそれを必要とした時点で表面化する。

得られるもの

信頼が慣習ではなく機械的に担保される、クレームレジスタとファクトベース:

  • 検証済み収束 — PROVEN には独立したブラインド検証者による完全一致のサインオフが必要であり、CONVERGED にはすべての主要な問いがバイト単位の証明をもって回答され、孤立したクレームがゼロで、スピニングがないことが必要である。
  • エビデンスの完全性 — すべてのファクトは evidence/_index.json を通じて生のアーティファクト(キャプチャ / トレース / ダンプ / バイナリ)まで追跡できる。派生した要約は設計上除外される。
  • メーカー・チェッカー — ワーカー(メーカー)がファクトを書き、redteam 検証者(チェッカー)がブラインドでそれを再導出する。常に異なるエージェントである。

いかなるクレームも、その作成者の言葉だけで PROVEN に到達することはない。独立した検証者がブラインドでそれを再導出しなければならず、一連の機械的ゲートを通過しなければならない。ゲート設計の全体は docs/design/loop-engineering.md にある。

実行後、ファイルはそれぞれ異なる問いに答える:

ファクトの例:```yaml id: F061 status: VERIFIED-BY-W01-static-byte-recheck claim_id: C-401 provenance:

  • {role: sample, path: bins/}
  • {role: capture_log, path: runs/c329-inner-pe.bin} # via evidence/_index.json reproduce: python -c "import struct; ..." # runs against the cited artifact verifier_sign_off: {verifier: kunglao-redteam, verdict: CONFIRMED}
root@kitploit:~
## 長期的な自律性

実際のエンゲージメントは20分のチャットではありません。kunglao-agentは、人間がすべてのステップを導かなくても問題に取り組み続けます:

- **数時間から数日間、無人で実行** — スケジュールされたハートビートが訪問の合間もループを動かし続け、停止したループは黙って死ぬのではなくフラグが立てられます。
- **障害から回復** — 死んだワーカーやスタックしたワーカーは交換され、その質問は再キューイングされます。ブロックされた作業はアイドル状態になるのではなく自己回復します。
- **クラッシュや再起動を乗り越える** — `/kunglao-agent:resume <workspace>` がディスク上の状態から状況を再構築し、次のアクションを明示します。
- **チャットではなくディスクに記憶** — クレーム、ファクト、エビデンス、完全な監査証跡がワークスペースに存在するため、どのセッションでもエンゲージメントを再開できます。

ターゲットと質問を与えれば、数時間から数日間その問題に取り組み、障害から回復し、収束した時点で判定を読むことができます。

## 良い結果を得るために

- **静的アクセス可能なターゲットを投入する。** ループは静的優先です。アンパックされたAPK、難読化されていないバンドル、ストリップされていないバイナリは、動的作業を強いられるものよりもはるかに速く収束します。
- **必要になる前に動的レッグをセットアップする。** 主要な質問に実行が必要な場合は、まずチャネルを選択してください([Bring your own environment](#bring-your-own-environment) を参照) — initは`local`上の動的タスクをHARD拒否します。
- **「動作中」と「スタック」の見分け方** — `runs/`内の新しいエントリはループが生きていることを意味します。ハートビートが死んでいる、または新しいファクトなしに同じ決定が繰り返される場合は生きていません — `/kunglao-agent:resume <workspace>` が診断し、次の動きを明示します。

## ターゲット別ツールチェーン

init時に選択する`--type`が、どのHARDティアのツールをインストールしなければならないかを固定します。ガイダンスは折りたたまれています — ターゲットを展開してください。**すべてのタイプで2つのMCPサーバーが必要です:** `ghidra`(`claude mcp add ghidra -- <path>/bridge-mcp-ghidra.exe`)と`sequential-thinking`(`claude mcp add sequential-thinking -- npx -y @modelcontextprotocol/server-sequential-thinking`)。

<details>
<summary><strong>windows (PE32+ x86-64)</strong> — ネイティブWindowsバイナリ</summary>

| Tier | Tool | Install |
|---|---|---|
| HARD | `pefile` (Python) | `pip install pefile` |
| HARD | `die` (Detect It Easy) | `KUNGLAO_DIE` env または PATH 上 — [ntinfo.com](https://ntinfo.com) |
| HARD | `floss` (FLARE FLOSS) | [flare-floss docs](https://github.com/mandiant/flare-floss) に従う |
| HARD | Ghidra または IDA | いずれか一方;[Internals](#internals) を参照 |
| HARD (T2/T3) | VMware + vmr-shell、または ssh/docker チャネル | [Bring your own environment](#bring-your-own-environment) を参照 |
| HARD (T2/T3) | `frida-server`(リネーム済み、カスタムポート) | デバイス/VM側バイナリ、デフォルトポート1337 |

Windows T3動的は`x64dbg` MCPも使用します;`volatility`(メモリフォレンジック)とIDA-Pro MCPはオプションです — [Internals](#internals) のMCPマニフェストを参照してください。

</details>

<details>
<summary><strong>linux (ELF)</strong> — ネイティブLinuxバイナリ / ファームウェア / メモリイメージ</summary>

| Tier | Tool | Install |
|---|---|---|
| HARD | `file`, `readelf`, `objdump` | `binutils` パッケージ |
| HARD | Ghidra または IDA | いずれか一方 |
| HARD (T2/T3) | VMware + vmr-shell、または ssh/docker コントロールプレーン | [Bring your own environment](#bring-your-own-environment) を参照 |
| HARD (T2/T3) | `frida-server`(リネーム済み、カスタムポート) | デバイス側バイナリ、ポート1337 |
| WARN | `gdbserver`(ホスト側PATH)、`strace`、`ltrace` | オプションの追加ツール |

`ssh-mcp`はリモート / クラウド / dockerホスト用のsshコントロールプレーンを有効にします。

</details>

<details>
<summary><strong>android (APK / DEX / native .so)</strong> — 最も難しいターゲットタイプ、HARD項目が最多</summary>

| Tier | Tool | Install |
|---|---|---|
| HARD | `aapt` または `aapt2`(または `unzip` フォールバック) | Android SDK build-tools |
| HARD | `jadx` (DEX → Java デコンパイラ) | [skylot/jadx](https://github.com/skylot/jadx) |
| HARD | `apktool` (APK リソースのデコード/再ビルド) | [iBotPeaches/Apktool](https://github.com/iBotPeaches/Apktool) |
| HARD | `gitnexus` (デコンパイル後のグラフ) | `npm i -g gitnexus` |
| HARD | Ghidra または IDA | APKにネイティブ`.so`が含まれる場合のみ |
| HARD | `adb` + `ro.debuggable=1` の **root化されたデバイス** | platform-tools + デバイス上のカスタムfrida |
| HARD | `frida-server`(リネーム済み、カスタムポート1337) | デバイス側バイナリ |
| HARD | `android_server` (IDA リモートデバッグ) | デバイス側バイナリ、ポート23946 |
| WARN | `apkid` | `pip install apkid` |
| WARN | `baksmali` | [smali releases](https://github.com/baksmali/smali/releases) から |

</details>

<details>
<summary><strong>web &amp; macos (ベータ)</strong> — 最小限のツールチェーン、設計上HARD項目なし</summary>

| Tier | Tool | Install |
|---|---|---|
| WARN | `camoufox-reverse` MCP (web) | フック / トレース / ネットワークキャプチャ用のアンチ検出Firefox |
| WARN | `docker` (web チャネルのデフォルト) | Docker Desktop、または`KUNGLAO_CHANNEL=ssh`を明示的に設定 |
| WARN | `lipo`, `otool`, `nm`, `codesign`, `xattr` (macOS) | Xcode Command Line Tools |
| WARN | `ghidra` MCP (macOS) | 推奨 — [Internals](#internals) のマニフェストを参照 |

どちらもベータ段階のターゲットです:不足している機能は、init時ではなく、ループが実際にそれを必要とした時点で表面化します。macOSの動的作業は`ssh`チャネル(Macホストへ)を使用します;オプションのx64dbgブラウザデバッグパスには、上記のWindowsツールチェーンをインストールしてください。

</details>

上記すべての単一マニフェストソース — いつでもプローブできます:`python scripts/mcp_probe.py <ws> --type <windows|linux|android|web|macos>`(exit 1 = HARD欠落)。

## Bring your own environment

動的デバッグには、エージェントが操作できる実行コントロールプレーンが必要です。`KUNGLAO_CHANNEL`は5つのファーストクラスチャネルのいずれかを選択します — 環境にすでにあるものを使用してください;いずれも劣化モードではありません:

| Channel | What it drives | Prerequisites |
|---|---|---|
| `vmr` (デフォルト) | VMware VM、**任意のゲストOS** — スナップショット/リバートワークフローがその代替不可能な価値 | vmr-shell スキル;`KUNGLAO_VM_HOST` + ポート9876/1337 |
| `ssh` | ssh到達可能な任意のマシン:ベアメタル、クラウドVM、Mac、リモートdockerホスト | 鍵認証 — プローブは実際のBatchMode `ssh ... true`を実行 |
| `docker` | ローカルまたはリモートのdockerデーモン — `docker exec`は任意の制御パスと等価 | `docker version`が正常;オプションの`KUNGLAO_DOCKER_CONTAINER` |
| `adb` | Androidエミュレータまたは実機 | `adb devices`に表示される;frida用に`adb forward tcp:1337 tcp:1337` |
| `local` | **ホスト上での静的解析のみ** | なし — レッドラインを参照 |

> **`local`レッドライン:** localは**静的**作業専用です — ホスト上でサンプルを実行、デバッグ、注入しては決してなりません。動的要件がある場合は`KUNGLAO_CHANNEL`を`vmr`/`ssh`/`docker`/`adb`に切り替えます;initは`local`上の動的タスクをHARD拒否します。

チャネルプローブは動的タスクに対してのみ実行されます(静的のみのタスクはスキップされます)。`ssh`チャネルの実行は**ssh-mcp**コントロールプレーン(`npm i -g ssh-mcp`)を経由します;プレーンなCLI sshがフォールバックです。ssh経由のリモートdockerには、`KUNGLAO_DOCKER_CONTAINER`を設定してください。

## Configuration

4つの変数でほとんどのセットアップをカバーできます:

| Variable | Default | Meaning |
|---|---|---|
| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | unset | unsetまたは`0`のままにする必要があります — truthy値はディスパッチをteammateチャネル経由にルーティングし、拒否されます |
| `KUNGLAO_CHANNEL` | `vmr` | 動的実行コントロールプレーン:`vmr` \| `ssh` \| `docker` \| `adb` \| `local` — [Bring your own environment](#bring-your-own-environment) を参照 |
| `KUNGLAO_VM_HOST` | unset | 動的解析用のVM/ホスト(vmr-shell :9876、Frida :1337) |
| `GHIDRA_HOME` | unset | Ghidraインストールルート(`support/analyzeHeadless.bat`を含む必要があります) |

ほとんど不要:`KUNGLAO_DOCKER_CONTAINER`(`ssh`/`docker`チャネル用のdocker実行ターゲット)、`KUNGLAO_FRIDA_PORT`(デフォルト1337)、`KUNGLAO_DIE`(DIEパス、PATHにフォールバック)、`KUNGLAO_CLAUDE_JSON`(ユーザーレベルMCPレジストリのテストオーバーライド)。

## Safety

- サンプルはホスト上で決して実行されません — `block_malware_exec`フックがそれを強制します;動的作業はVM/コンテナ/デバイス専用で実行され、セッションごとの認可が必要です。
- グラウンドトゥルースの階層:生のアーティファクト > ローカルツール > サンドボックス > 脅威インテリジェンス(CTIは反証可能な仮説であり、真実ではありません)。
- メーカー・チェッカー:ワーカーは自己検証を決して行いません;検証者はメーカーの結論を決して読みません。
- Bins、設定、フックは決してコミットされません;シークレットはワークスペースとリポジトリから除外されます。

## Development

コントリビューションを歓迎します。ワークフロー:`dev`からブランチを切り、変更ごとに1ブランチ、`dev`へPRを戻します。```bash
git worktree add .worktrees/<name> -b <name> dev
uv sync --locked
uv run python -m pytest -q
gh pr create --base dev

正式なフルスイートのエントリポイントは python -m pytest -q です(.github/workflows/release-check.yml を参照)。

設計ドキュメントは docs/ と specs/ にあります。License を参照してください。

内部構造

MCP 供給(完全なマニフェスト)

単一の信頼できる情報源: scripts/mcp_probe.py。kunglao-init はワークスペースの .mcp.json が存在しない場合に生成します(--no-mcp でスキップ、既存ファイルは決して上書きされません)。プローブ: python scripts/mcp_probe.py <ws> --type <windows|linux|android|web|macos> — 終了コード 1 = HARD 欠落、2 = WARN 欠落のみ。

ワークスペースレイアウト

サンプルエンゲージメントごとに 1 つのワークスペース:``` / ├── bins/ # the sample (gitignored) ├── task_spec.yaml # primary_questions / scope / constraints / success_criteria ├── claim-register.yaml # claims C-NN with status (OPEN/PROVEN/STAMP/...) ├── claim_deps.yaml # claim DAG ├── facts/ # byte-anchored facts F-NNN.md + _INDEX.md ├── evidence/ # raw artifacts + _index.json (eid → path + sha256) ├── runs/ # worker-status, plans, ledgers, .heartbeat.json ├── blockers/ # failure-attribution records per claim └── CLAUDE.md # workspace rules, generated by kunglao-init

root@kitploit:~
kunglao のフックはワークスペースレベルで設定されます。グローバルの `~/.claude/settings.json` が書き換えられることはありません。

</details>

---

## ライセンス

デュアルライセンス: 個人利用、学術利用、社内利用には **AGPL-3.0**(無料 — [LICENSE](https://github.com/amd2g2zz/kunglao-agent/blob/master/LICENSE) を参照)。クローズドソースまたは SaaS での商用利用には **商用ライセンス** が必要です — [LICENSE-commercial.md](https://github.com/amd2g2zz/kunglao-agent/blob/master/LICENSE-commercial.md) を参照してください。
ツールをダウンロード
ツール理由インストール
Claude Codekunglao-agent が動作する場所Anthropic のドキュメントに従って
Python 3.10+(Python 2 はサポートされていません)プラグインは uv 経由で固定された環境を同梱します。あなたが触る必要はありませんシステムまたは uv 管理
uvロックされた環境リゾルバpip install uv または astral.sh/uv
Ghidra または IDA逆コンパイル用の静的解析スイートターゲット別ツールチェーンを参照
問い場所
完了したか?ループの終了コード — CONVERGED(0)はすべての主要な問いが検証済みの回答を持つことを意味する。クレームごとのステータスは claim-register.yaml にある
何を発見したか?facts/F<NNN>.md — 1 ファイルにつき 1 つのバイト単位で固定されたファクトがあり、claim-register.yaml によってクレームにマッピングされる
どうやって再現するか?evidence/_index.json — ファクト → 生のアーティファクト(パス + sha256)。各ファクトは reproduce: コマンドを持つ
正確には何が起きたか?runs/ — ティックごとの台帳とワーカーステータス
MCP サーバーティアスコープ目的登録
ghidraHARD必須、全タイプ逆コンパイル / 静的解析claude mcp add ghidra -- <path>/bridge-mcp-ghidra.exe
sequential-thinkingHARD必須、全タイプ構造化推論claude mcp add sequential-thinking -- npx -y @modelcontextprotocol/server-sequential-thinking
x64dbgHARDWindows T3 動的動的デバッグ(VM リモート)claude mcp add x64dbg -- x64dbg-automate-mcp
volatilityWARNWindows T3メモリフォレンジックclaude mcp add volatility -- python <path>/volatility_mcp_server.py
ida-pro-vmWARNIDA 選択時リモート IDA 解析claude mcp add --transport http ida-pro-vm <ida-mcp-url>
gitnexusHARDAndroid グラフ構築逆コンパイル後のナレッジグラフclaude mcp add gitnexus -- gitnexus mcp
virustotalWARNCTI脅威インテリジェンス(ファミリー帰属仮説)claude mcp add virustotal -- npx -y @burtthecoder/mcp-virustotal
ssh-mcpWARNチャネルssh 実行コントロールプレーンclaude mcp add ssh-mcp -- ssh-mcp
camoufox-reverseWARNweb(ベータ)ブラウザ JS リバース(フック / トレース / ネットワークキャプチャ)claude mcp add camoufox-reverse -- python -m camoufox_reverse_mcp