---
title: "REAのAIリバースエンジニアリングの仕組みと複製の限界"
locale: ja
category: knowledge_base
category_name: "ナレッジベース"
translation_status: reviewed
license: cc_by
author: "Injoys 編集部"
source_url: https://injoys.com/ja/articles/rea-ai-reverse-engineering-capabilities-and-limits
published_at: 2026-10-19T23:23:10+09:00
---

# REAのAIリバースエンジニアリングの仕組みと複製の限界

> REAはAIエージェントを既存の分析ツールと連携させ、ソフトウェアを調査できるようにします。元のコードの復元や完成品の複製を保証するものではなく、ArtCraftの事例でも機能の実装と実務で使える完成度は区別する必要があります。

## Key Points

- REAはGhidra・Hopper・IDAなどとAIエージェントをつなぐリバースエンジニアリングツールです。
- デコンパイル結果はプログラムの動作を解釈する手がかりであり、元のソースコードと同じではありません。
- REAのEvidence記録は分析の根拠と限界を追跡するのに役立ちますが、正確性を保証するものではありません。
- FilmCraftは2026年10月10日の自己評価で、機能の範囲と実務で使うための準備状況を別々に示しました。
- CLIとMCPへの対応はアプリの自動化手段を広げますが、性能や互換性の検証に代わるものではありません。

REAは、AIがソースコードなしでアプリを分析できるよう支援するリバースエンジニアリングツールです。既存の分析ツールをつなぎ、機能の再実装を支援します。ただし、元のコードを完全に復元できるとは限りません。ソフトウェアの時代が終わったという結論も立証できません。

以下の完成度の数値は、FilmCraftが2026年10月10日に行った自己評価に基づいています。

## REAとは何ですか？

REAはReverse Engineer Anythingの略です。リバースエンジニアリングは、完成したプログラムの構造と動作を調べる作業です。REAを使うと、AIエージェントがこの作業に必要なツールを呼び出せます。

接続方法はMCPとCLIです。MCPはAIと外部ツールをつなぐ規約です。CLIでは、ターミナルにコマンドを入力して操作します。対応対象は[REA README](https://github.com/morluto/rea)で確認できます。

| 構成要素 | 役割 | 結果を読む際の確認点 |
| --- | --- | --- |
| AIエージェント | 調査する問いの設定と結果の解釈 | 説明に根拠が示されているか |
| REA | ツールの呼び出しと分析結果の受け渡し | 分析範囲と抜けている事項 |
| Ghidra・Hopper・IDA | 実行ファイルの内部構造の分析 | 対応形式と分析ツールごとの限界 |
| 実行観察ツール | 実際の動作と出力の観察 | 試した入力と実行環境 |

REAとArtCraftは役割の異なるプロジェクトです。REAは分析ツールをつなぎます。ArtCraftのCrafting Appsは編集作業をするアプリです。2つのプロジェクトが存在するというだけで、制作過程に関連があるとは断定できません。

## 実行ファイルから何が分かりますか？

デコンパイルは、実行コードを人が読みやすい形に変える作業です。その結果を元のソースコードと同じものとは見なせません。コンパイルの過程で、元の名前やコメントが失われる場合があるためです。

GhidraはNSAが開発・保守するリバースエンジニアリングツールです。デコンパイルと命令の分析機能を提供します。自動化とスクリプトの実行にも対応しています。機能の範囲は[Ghidra README](https://github.com/NationalSecurityAgency/ghidra)に明記されています。

| 分析対象 | 得られる手がかり | 手がかりだけでは確定できないこと |
| --- | --- | --- |
| ネイティブ実行ファイル | 疑似コード、命令、文字列、呼び出し関係 | 元のソースコード全体 |
| JavaScript・Electronアプリ | モジュール、インポート関係、アプリ内部のつながり | サーバーでのみ実行される実装 |
| ウェブサイト | 画面構造、スクリプト、観察した通信 | サーバーのコード全体と非公開データ |
| 実行中のプログラム | 出力、操作への反応、ファイルの変化 | 試していないすべての入力に対する動作 |

クライアント側で観察したリクエストは、サーバー分析の手がかりになります。そのリクエストだけでサーバー内部をすべて復元することはできません。REAの対象別の対応範囲も[公式README](https://github.com/morluto/rea)に区分して示されています。

## REAはAIの分析をどう支援しますか？

REAは必要な分析結果を選んで渡し、根拠を保存します。この仕組みにより、AIが長い出力全体を繰り返し読む負担を減らせます。作業の流れは公式CLI文書とMCPの仕様で確認できます。

### 必要な部分だけを読む仕組み

REAは保存した分析結果から、要約や一部の項目を取り出せます。関数やモジュールごとに調査範囲を絞る方法です。大量の結果をそのまま会話に入れる負担を減らせます。使い方は[CLI and Evidence文書](https://github.com/morluto/rea/blob/main/docs/cli.md)で説明されています。

### 分析状態と結果の再利用

Ghidraとの連携では、開いているプログラムに対してデコンパイラを維持します。MCPセッションでは分析の根拠を保存できます。ただし、個別に実行するCLIはそれぞれ別のプロセスです。維持される範囲は[インストール文書](https://github.com/morluto/rea/blob/main/docs/installation.md)で確認できます。

### 根拠を残すEvidenceの記録

Evidenceは、分析結果の根拠と限界を記録したものです。観察できなかった項目は未確認のまま残せます。結果が空であるというだけで、機能がないとは断定しません。この区別は[MCP runtime contracts](https://github.com/morluto/rea/blob/main/docs/mcp-contracts.md)に明記されています。

Evidenceは領収書に例えられます。ただし、領収書があるだけで解釈の正確さが保証されるわけではありません。重要な結論については、元の根拠と試験結果を改めて照合する必要があります。

## ArtCraftのアプリは何を再実装しますか？

ArtCraftは、なじみのある創作作業ができるRust製アプリを公開しています。公式の一覧には、初期アルファ版や開発中といった状態が表示されています。無料で公開されているかどうかと、実務で代替できるかどうかは別々に判断する必要があります。一覧は[Crafting Appsのページ](https://getartcraft.com/apps)で確認できます。

| アプリ | 主な作業 |
| --- | --- |
| PhotoCraft | 画像編集 |
| VectorCraft | ベクターイラスト制作 |
| FilmCraft | 動画編集 |
| LightCraft | 写真管理とRAW現像 |
| PdfCraft | PDFを開くことと文書処理 |
| EffectCraft | モーショングラフィックスと視覚効果 |
| DesignCraft | ページのレイアウトと出版物の編集 |

PhotoCraftはPhotoshopでの作業の再実装を掲げています。FilmCraftはPremiere Proでの作業の再実装を掲げています。これは開発チームが説明するプロジェクトの目標です。完全な互換性を独立して立証した結果ではありません。

## 機能の実装と実務での完成度の比較

機能が存在することと、実務に投入できることは別です。FilmCraftはこの2項目を別々に評価しています。2026年10月10日時点の比較対象はPremiere Pro 26.5.2です。

| FilmCraftの自己評価項目 | 公開された数値 | 数値が示す範囲 |
| --- | --- | --- |
| 機能の範囲 | 約86% | メニュー・効果・パネル・形式など、実装された項目の範囲 |
| 実務への対応度 | 約56% | 実際のプロジェクトで代替できる水準についての自己推定 |

当時の実務への対応度の推定値は**約56%**です。2つの数値は評価基準が異なります。その差をエラー率や残りの開発期間として読み替えてはいけません。数値と限界は[FilmCraft README](https://github.com/storytold/filmcraft)のStatusの項目で公開されています。

公式文書は、大きな動画の処理速度を改善課題として挙げています。Premiereのプロジェクトファイルを直接開くことも、未対応の項目として説明しています。プラグインのホスティングにも制約があります。

このため、画面が似ているというだけでは、代替できるか判断しにくいです。保存と再読み込みを含め、作業全体を確認する必要があります。動画編集では、書き出したファイルの同期も検証対象です。

次の基準は、アプリを比較する際のチェックリストとして使えます。

| 確認項目 | 直接確認する内容 |
| --- | --- |
| ファイルの互換性 | 使用中のファイルを開き、再び保存できるか |
| 再生品質 | 実際に作業する動画で再生の途切れや音声の遅延が生じるか |
| 成果物 | 書き出した動画の色・字幕・音が意図どおりか |
| 作業の復旧 | 保存したプロジェクトを再び開き、作業を続けられるか |
| 既存の作業環境 | 必要なプラグインと交換形式に対応しているか |

## CLIとMCPが変えるアプリの使い方

CLIとMCPは、画面上のクリック以外の操作経路を提供します。PhotoCraftの説明によると、同じエンジンを複数のインターフェースから呼び出します。その経路はUI・CLI・JSON制御チャネル・MCPです。この構造は[PhotoCraft README](https://github.com/storytold/photocraft)で公開されています。

これは、AIがアプリの機能を作業単位で呼び出すための基盤です。自然言語の依頼を実際のコマンドに変える役割は、エージェントが担います。結果を確認する手順は別途必要です。

| 操作経路 | 適した作業 | 確認する点 |
| --- | --- | --- |
| 画面UI | 視覚的な判断が必要な編集 | プレビューと最終結果の一致 |
| CLI | 繰り返し作業とスクリプトの実行 | 入力オプションと終了状態 |
| MCP | AIエージェントが組み合わせる作業 | 呼び出した機能と結果の検証 |

ここからUIの消滅まで予測するには、根拠が足りません。人が結果を目で確認する必要がある場合もあります。自動化の経路と視覚的な編集画面は併用できます。

## REAを理解する際によくある間違い

REAの分析機能を、完成品を複製する能力と同一視すると誤解が生じます。ツールの数だけで分析の質を判断することも困難です。次の主張には、それぞれ別の根拠が必要です。

| よくある主張 | 分けて確認すべきこと |
| --- | --- |
| どんなアプリでも数分で復元できます | 対象・分析範囲・環境別の測定結果 |
| ツールは常に126個です | インストールしたバージョンの実際のツール一覧 |
| Evidenceがハルシネーションを防ぎます | 根拠の記録と解釈の正確さの違い |
| Rustで作れば常に高速です | 実際の作業で測定した処理性能 |
| 画面が同じなら機能も同じです | 保存・互換性・出力まで含めた検証 |
| エージェントを分ければ合法的なクリーンルームです | アクセスを分離する方法と適用される利用条件 |

ツール一覧は、インストールしたバージョンの`tools/list`で確認できます。個々の作業に使えるかどうかも確認する必要があります。関連する基準は[MCPの仕様](https://github.com/morluto/rea/blob/main/docs/mcp-contracts.md)で説明されています。

GitHubのトレンドランキングには、集計時点と期間が必要です。開発の動機も、開発者本人の発言の原文で確認する必要があります。解約違約金がきっかけで始めたという主張は、確認された事実として採用していません。

Claude Opus 5.5を使用したという主張にも、別途、制作記録が必要です。アプリが公開されているというだけでは、使用したモデルを立証できません。この主張は開発者の作業記録や発表の原文で確認してください。

## クリーンルーム再実装の条件

クリーンルーム再実装は、分析と実装で情報へのアクセスを分ける方法です。機能仕様を作る役割と、新しいコードを書く役割を分けます。エージェントを別々のチャット画面に置くだけでは十分ではありません。

REAのインストール文書では、ファイルとネットワークへのアクセス制限を説明しています。実装環境から分析の成果物にアクセスできないようにするための内容です。分離方法は[Installation and setup文書](https://github.com/morluto/rea/blob/main/docs/installation.md)で確認できます。

REAのDISCLAIMERは、結果の正確さを保証していません。分析結果を得ても、元のプログラムに対する権利が生じるわけではありません。プログラムごとの権利と利用条件は別途確認する必要があります。適用範囲は[REA DISCLAIMER](https://github.com/morluto/rea/blob/main/DISCLAIMER.md)に明記されています。

> Decompilation, reconstruction, heuristics, and AI-assisted analysis may be incomplete or incorrect.
>
> REA DISCLAIMER, Analysis results and generated output

この文言は、AIによる分析が不完全だったり、誤っていたりする可能性があるという意味です。クリーンルームという名称も、適法性を自動的に保証するものではありません。公開や商用化を計画するなら、まず対象の利用条件を確認してください。

## ローカル分析とAIへの送信の違い

ローカル分析は、すべての情報の外部送信を遮断するという意味ではありません。REAは分析対象のファイルをローカルで処理すると説明しています。ツールの結果を受け取るエージェントには、モデル提供者のポリシーが適用されます。この区別は[REA FAQ](https://github.com/morluto/rea)で案内されています。

分析結果には、ファイル内部の文字列が含まれる場合があります。実行記録には、アカウント情報が混じる場合があります。業務用アプリを調べるなら、まず以下の項目を確認してください。

- 分析結果に含まれる可能性がある個人情報と機密情報
- エージェントがモデル提供者に送るツールの出力
- モデルサービスの保存・学習・保持に関するポリシー
- 分析レポートとログを共有できる範囲

分析対象に、AIをだます指示文が入っている場合もあります。REAの文書では、これを信頼できないデータとして扱うよう説明しています。ファイル内の指示文をユーザーの命令として受け取ってはいけません。取り扱いの原則は[MCPの仕様](https://github.com/morluto/rea/blob/main/docs/mcp-contracts.md)にあります。

## 自分で検証する際の手順

検証は、再現したい機能を狭く定めるところから始めてください。アプリ全体を理解するという目標では、完了の基準が曖昧です。入力と期待する結果を決めると、分析が役に立つか判断しやすくなります。

1. 分析する権限のあるプログラムを選んでください。
2. 確認する機能と試験用の入力を決めてください。
3. REAと分析ツールのバージョンを記録してください。
4. 根拠と未確認の項目を分けて保存してください。
5. 許可された環境で、実際の動作と分析結果を照合してください。
6. 再実装した場合は、同じ入力で結果を比較してください。
7. 失敗した入力と、対応していない条件を記録してください。

レポートには、対象ファイルのハッシュ値も記録できます。ハッシュは、同じファイルかどうかを区別するための値です。バージョンと試験条件が残っていれば、ほかの人が結果を再検証しやすくなります。

## ソフトウェアの競争力はどこに残りますか？

再実装しやすくなっても、製品の価値のすべてがコピーされるわけではありません。クライアント側を分析するだけで、サーバーのデータが手に入るわけではありません。ユーザーとの関係やサービスの運営能力も別のものです。

公開文書を基に、競争の基準が変わると予想できます。機能をどれだけ早く実装したかだけでは、評価が難しくなります。検証できる品質と運営能力の重要性も併せて見る必要があります。

| 競争上の要素 | REAと再実装の事例が示すこと |
| --- | --- |
| 機能の実装 | 既存の動作を調べるツールをつなぎやすくなること |
| 製品の完成度 | 機能の有無と実務への対応度を分けて評価する必要があること |
| 自動化へのアクセス | CLI・MCPなど、呼び出し可能なインターフェースが活用の経路を広げること |
| サービスの運営 | サーバーのデータとユーザーとの関係は別途築く必要があること |

この表は公式文書に基づく解釈です。市場全体の収益の変化を測定した結果ではありません。企業ごとの影響は、製品の品質と運営体制によって異なる可能性があります。

## FAQ

### REAは元のソースコードを復元しますか？
元と同一のソースコードを復元できるとは保証しません。ネイティブ解析では、疑似コードや命令などの手がかりが得られます。エージェントはそれを基に動作を説明したり、実装を作成したりします。

### REAを使うにはGhidraが必須ですか？
解析対象によって異なります。ネイティブ解析にはGhidra、Hopper、IDAなどの解析ツールを使います。静的なJavaScriptや.NETの解析には、ネイティブ解析ツールなしで行える方法もあります。

### REAのツールは126個ですか？
バージョンを指定せずに固定の数値とみなすのは難しいです。インストールしたバージョンのtools/listで一覧を確認してください。一覧にあるツールも、現在の環境では使えない場合があります。

### Evidenceの記録があれば、AIの説明を信じてもよいですか？
Evidenceは根拠と限界を追跡するための仕組みです。記録があっても解釈は間違っている可能性があります。重要な結論は実際の実行や別途行う試験で検証してください。

### REAとArtCraftは同じツールですか？
別々のプロジェクトです。REAはリバースエンジニアリングツールとエージェントをつなぎます。ArtCraftのCrafting Appsは画像、動画、文書などの編集作業をします。

### FilmCraftをPremiere Proの代わりにすぐ使ってもよいですか？
作業に必要な互換性と出力品質を先に確認してください。FilmCraftの公式文書では、アルファ版であることと機能上の制約を説明しています。2026年10月10日時点の実務への準備度に関する自己推定値は約56%でした。

### FilmCraftの機能範囲が86%というのは、性能が同じという意味ですか？
性能が同じという意味ではありません。2026年10月10日時点の約86%は、実装済みの機能範囲に関する自己評価です。処理速度やエラー率を示す数値ではありません。

### CLIとMCPに対応していれば、画面UIは不要になりますか？
自動化の方法が増えても、UIが不要になるわけではありません。視覚的な編集や結果の確認には画面が必要な場合があります。作業の性質に応じて、複数の操作方法を併用できます。

### ローカルで解析すれば、会社の情報は外部に出ませんか？
ローカルでの解析とエージェントによるデータ送信は区別する必要があります。ツールの結果が外部のモデルサービスに送られる可能性があります。使用しているエージェントの設定と提供元のデータポリシーを確認してください。

### AIエージェントを分ければ、クリーンルームでの再実装は完成しますか？
役割を分けるだけでは不十分です。実装環境のファイルへのアクセスとネットワークへのアクセスも分離する必要があります。こうした技術的な分離によって適法性が自動的に保証されるわけではありません。

### REAだけでサーバーのデータとコードをコピーできますか？
クライアントの解析だけでサーバー内部のすべてを把握することはできません。観察したリクエストとレスポンスは限られた手がかりです。サーバーの非公開の実装やデータの全体を立証する資料ではありません。

### この記事はREAとArtCraftを実際に使ったレビューですか？
公式文書を確認してまとめた技術解説です。アプリの実行や性能試験はしていません。公開されている機能説明と開発チーム自身による評価を区別してまとめました。

## Sources

- [REA README: サポート対象、動作の仕組み、FAQ](https://github.com/morluto/rea)
- [Ghidra Software Reverse Engineering Framework](https://github.com/NationalSecurityAgency/ghidra)
- [REA CLI and Evidence](https://github.com/morluto/rea/blob/main/docs/cli.md)
- [REA MCP runtime contracts](https://github.com/morluto/rea/blob/main/docs/mcp-contracts.md)
- [REA Installation and setup](https://github.com/morluto/rea/blob/main/docs/installation.md)
- [REA DISCLAIMER: 利用範囲と分析結果の限界](https://github.com/morluto/rea/blob/main/DISCLAIMER.md)
- [ArtCraft Crafting Apps 公式一覧](https://getartcraft.com/apps)
- [FilmCraft README: 機能、アルファ版の状態、2026年10月10日の自己評価](https://github.com/storytold/filmcraft)
- [PhotoCraft README: 編集エンジンとエージェント制御](https://github.com/storytold/photocraft)

## Images

![黒いセーターの男性が、二つの映像プレビューと編集タイムラインを表示したタブレットを見つめる。](https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzAxOTUsInB1ciI6ImJsb2JfaWQifX0=--945925f39590e27477cbcb5280f3e9984ab90869/ai-ed2a455d.webp)
![青いセーターの女性がモニターを見つめ、ガラス越しに男性が作業する。二人の間にネットワーク図が重なる。](https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzAyMDEsInB1ciI6ImJsb2JfaWQifX0=--9d6b6cad7c57d623804982aaeddbe8270740975f/ai-33a9acb5.webp)