本文へ移動

AI Buildersのための最新のニュース、知見、事例を毎日お届け

運営会社
コーディングエージェントREA

REA、エージェントにアプリの中身を調べさせる 使う前に権利の確認を

REAは、Claude CodeやCodexなどのエージェントに、ソースコードのないアプリの中身を調べさせるオープンソースの道具だ。ネイティブのバイナリやElectronのアプリ、Androidのアプリ、ウェブサイトなどを手元で解析し、機能の動き方を根拠付きで説明させる。ライセンスはMITで、直近10日でも4回のリリースが出た。ただ、何を解析してよいかは使う人の責任だと、REA自身がはっきり書いている。

記事の内容を自社でどう進めるか、内容が固まっていない段階でも相談できます。仕事の相談

毎週 1 回、その週の記事から 5 本と実践の 1 本を選んでメールで届けます。ニュースレターを購読する(無料)

公開
REA の README の解析の画面。逆アセンブラーにバイナリの命令と解析の記録が並ぶ
画像: REA

ほかのアプリで見かけた機能が、どう作られているのかを知りたい。ソースコードは手に入らない。そんな時に、Claude CodeやCodexに調べ役を任せる道具が、オープンソースのREA(Reverse Engineer Anything)だ。Xでは10月11日に、まとめ系のアカウントが「クローズドソースは死んだ」という強い言葉で紹介した(Xのみ)。REAのリポジトリの説明も「気に入った機能を、バイナリの水準まで理解する」とうたい、売り文句はXの紹介に近い。一方で、同梱の注意書きはずっと慎重だ。何ができて、何に気をつけるべきかを整理する。

エージェントに解析の道具を渡す

REAは、エージェントが外部の道具を呼び出すための仕組みであるMCPのサーバーとして動く。エージェントに「メモアプリの検索がどう動いているかを調べ、根拠を見せ、自分のプロジェクトに似た機能を作って」と頼むと、エージェントがREAの道具を呼び出して対象を調べる。REAは見つけたことを根拠と一緒に返し、エージェントはそれをもとに説明したり、実装して試したりする。

リポジトリによると、解析は手元のパソコンで動き、結論ごとに根拠と限界を添える。アプリをどこかに送るのかという問いには、REAは手元で解析するが、結果を受け取ったエージェントのモデルの提供元には、その会社のデータの扱いが別にあると答えている。

導入は、Node.jsとnpmがあれば、npx rea-agents setupを走らせるだけだ。使うエージェントを選び、書き換える設定の中身を確かめて承認する。既存の設定はバックアップを取る。Claude CodeとCodexのほか、CursorやGemini CLIなどにも対応するという。

調べられる対象は幅広い

対象の一覧は長い。ネイティブのバイナリでは、逆アセンブルした命令や、読みやすく戻した疑似コード、文字列、関数の呼び出し関係を返す。この深い解析には、Hopper、Ghidra、IDAのいずれかの解析ソフトが要る。JavaScriptやElectronのアプリ、.NETのアセンブリは、そうしたソフトなしで、アプリを動かさずにファイルを読んで調べられる。

ほかにも、Androidのアプリや端末、ウェブサイト、保存した通信の記録、ファームウェア、スマートコントラクトのバイトコードまで並ぶ。READMEのよくある質問では、ネイティブの解析が返すのは疑似コードと逆アセンブルの結果で、JavaScriptやElectronでは、モジュールとその関係を取り出すと答えている。エージェントは、この結果をもとに自分で実装を書き、試す。Xの紹介が言うほど、閉じたソフトが丸裸になるわけではない(編集部の読み)。

公式の事例で見る使い方

具体的な姿は、公式サイトの事例集が分かりやすい。1つは、Electronで作られたNotionのアプリで、画面側のクリップボードの機能から、アプリ内部のやり取りをたどって本体の処理までを追い、独自のクリップボードの形式を調べた例だ。

古いゲームを扱った例もある。ブロック崩しのDX-Ballでは、効果音を左右に振り分ける計算を命令レベルで追い、不完全な疑似コードからC言語で書き直した。REAの説明では、書き直した関数は元のx86の3205件の試験に通り、コンパイル後の63バイトも一致したという(開発者の申告)。書き直したコードは、作業中の別のリポジトリで公開されている。いずれも、1つの機能に絞って根拠を積み上げる使い方だ。

使う前に読むべき注意書き

いちばん大事なのは、REAが同梱する注意書きだ。REAは、セキュリティの研究や、自分のソフトや調べる許しを得たソフトの解析など、合法な目的のための道具だとしている。そのうえで、コピーガードやライセンスの確認を外すこと、ゲームのチート作り、他社のソフトのコードや素材を写すこと、AIの提供元の利用規約をすり抜けることには協力しないと書く。

使う人の責任も明記している。必要な許可を取り、法律や使用許諾、利用規約を守るのは使う人で、リバースエンジニアリングは国や地域、解析するソフトの使用許諾で制限されることがあるという。ソフトが公開されている、ファイルを持っているというだけでは、どんな操作でも許されるわけではない、とも書く。さらに、ソースに近い出力や解析の報告を得ても、元のプログラムやその出力の権利は得られないとし、公開したり、ほかの製品に使ったりする前に、対象の権利と使った道具の条件を確かめるよう求めている。機能を自分の製品に作りたい読者にとって、いちばん効く1文だ(編集部の読み)。

アプリを実際に動かしたり、通信を記録したり、端末を操作したりする解析は、ファイルやアカウントに影響が出うる。怪しい対象は、普段の作業環境とは分けて調べるよう勧めている。

ライセンスはMITだが、Hopperなどの市販の解析ソフトは、それぞれ正規に入手して使う必要がある。体験版にも販売元の条件がかかる。HopperはmacOSで初めて起動した時に、体験版で使うか、持っているライセンスを入れるかを選ぶ画面が出ることがある。リポジトリの冒頭には、公式の入手先はこのリポジトリとrea.tools、npmのrea-agentsだけで、名前の似たリポジトリや写したREADMEは公式の証拠にならないという注意もある。

直近10日も動きは速い

開発は活発だ。GitHubのリリース一覧では、10月11日の6.4.0から10月18日の6.7.0まで、10日の間に4回のリリースが出た。6.6.0と6.7.0は、同じ18日に続けて出ている。リポジトリ自身も、変化が速く修正が多いので、こまめに更新するよう勧めている。編集部はまだ試していない。

編集部の見方

REAの面白さは、エージェントに解析の道具を持たせ、根拠付きで説明させる点にある(編集部の読み)。自分のアプリの古い部品や、手元にある依存先の中身を確かめる用途なら、小さなチームにも役に立ちそうだ。ただ、Xの言う「クローズドソースは死んだ」とは違い、他社のアプリを調べて機能を写す使い方は、使用許諾や法律の問題になりうる。調べてよい対象かを先に決めてから入れたい。

出典

に確認(日本時間)

  1. 紹介した(x.com)
  2. REAのリポジトリ(github.com)
  3. 事例集(rea.tools)
  4. リポジトリ(github.com)
  5. 注意書き(github.com)
  6. リリース一覧(github.com)

この記事をシェア

この記事は役に立ちましたか