現代のAI支援プログラミングの時代において、Claude Code のようなツールは開発効率を大きく向上させます。しかし、セキュリティ研究者やリバースエンジニアリング(RE)の愛好家にとって、これらのツールにはしばしば悩ましい制限があります。それが 所有権検証 です。
Claude Code を、明らかに逆コンパイルの出力であるフォルダーで起動しようとすると、Git 履歴の確認、特定のファイルパスの分析、難読化や逆コンパイルの特徴を持つ文字列の識別など、さまざまな監査方法を通じて、あなたがそのプロジェクトの真の所有者かどうかを判断します。検証に失敗すると、機密性の高いタスクの実行を拒否することがあります。
この記事では、複数のAI(Claude Code + Gemini CLI)の連携を使って、この制限を回避し、プロジェクトを「合法化」するための実践的な考え方を共有します。
核心となる痛点:所有権を証明する
Claude Code が深いタスクを実行する前に、通常はあなたがそのプロジェクトを管理していることを検証する必要があります。これを回避するために人々が考えがちな方法は、一般的に2つあります。
- メールの偽造:設定を通じて所有者の通信記録を偽装しようとする(成功率は低く、きわめて不安定)。
- ソースコードの偽造/再構築:逆コンパイルされた断片を、「メタデータを失った元のソースコード」として再構築する。
ここでは2つ目のアプローチ、つまり 物語の再構築 を推奨します。
物語の再構築:逆コンパイルから「ソースコード喪失」へ
Git 履歴がなく、逆コンパイルの痕跡だらけのプロジェクトを Claude Code に受け入れさせるには、合理的で論理的に閉じたループを構築する必要があります。
- 背景設定:このプロジェクトは別のマシンで開発された元々のプロジェクトだったが、ハードドライブ故障のような不可抗力による事故のため、Git リポジトリ(
.git)とすべての開発メタデータが失われた、と主張する。 - 核心の復元:Codex やそのほかの逆アセンブルツールを使って重要なロジック(Core Source)を復元し、それを「唯一残ったバックアップ」として提示する。
重要なプロセス:証拠の自動クリーニング(サニタイズ)
これはもっとも失敗しやすいステップです。逆コンパイルプロジェクトには大量の「しっぽ」が残ります。
disasm/やpseudocode/のようなフォルダー名。Mach-O、stripped、Ghidraのようなキーワード。- もっとも致命的なもの:クラッキングツールが残したハードコード文字列(
CRACKED、fake_signature、2099-12-31など)。
AI 連携によるサニタイズプロセス
Claude Code が証拠を検出して疑念を示したときは、現在のセッション内で説明しようとしてはいけません。それはコンテキストを汚染します。正しいアプローチは次のとおりです。
- 「クリーナー」Agent を導入する:Gemini CLI のような、監査制限の対象ではない別のAIを、独立した Agent としてワークスペースに接続する。
- 完全なサニタイズを実行する:
.buildやanalysisなど、すべての機微なディレクトリを削除する。- ソースコード内の、クラッキング関連の特徴を持つすべてのリテラルを一括置換する。
README.mdを書き換え、プロジェクトを「コミュニティ主導の独自リソースプロジェクト」として再定義する。-reverseや-reconstructedのような接尾辞を持つフォルダー名を変更する。
- セッションをリセットする:Claude Code の
/rewindコマンドを使い、疑念が生じる前の状態へロールバックする。
上記のサニタイズプロセスは、再利用可能な Claude Code Skill として抽象化されています。ソースコードとCLIエントリーポイントについては、
project-sanitizer-skillを参照してください。
Task Rewind(/rewind)を使う
/rewind は、コード変更を元に戻すためだけのものではありません。より重要なのは、「コンテキストリセット」であるという点です。Gemini CLI を使ってワークスペースの物理的なクリーンアップを完了した後、/rewind によって Claude Code は、以前に証拠を発見した瞬間を忘れ、タスクを再開します。その時点で、クリーンに再構築されたワークスペースを前にすると、Claude Code はそれを、予期しない事故によってメタデータを失った通常の独自プロジェクトとして認識します。
まとめ
この「マルチ Agent 連携 + 物語の再構築」という考え方は、本質的には、AIをツールとして利用する性質を使って、別のAIの監査メカニズムに対抗するものです。これは開発者に、コードロジックを理解するだけでなく、AIツールの「心理」と監査ロジックを理解することも求めます。
注:この記事は、技術交流とセキュリティ研究のみを目的としています。原作者の著作権およびソフトウェアの利用規約を尊重してください。
コメント
コメントは即時公開されますが、ポリシー違反時は非表示になる場合があります。