REA: コーディングエージェントのためのAI駆動リバースエンジニアリング

REAはAIエージェントによる自律的なリバースエンジニアリングを可能にします

REAは、高レベルなAIコーディングエージェントと低レベルなプログラム解析の間のギャップを埋めるために設計されたツールセットです。エージェントに実行可能バイナリ、JavaScriptファイル、ブラウザランタイムを検査するために必要なツールを提供し、エージェントがプログラムの仕組みを説明し、そのロジックを復元し、平易な英語のプロンプトで機能を再構築できるようにします。

人間の開発者がデバッガでアセンブリ命令を手動でデコードし、コールスタックを追跡する代わりに、ユーザーはREAを備えたエージェントに「Windows電卓を検査して、なぜ200 + 10%が220になるのか説明してください」と依頼できます。エージェントはREAを使用してハンドラの命令と逆コンパイルされたコードを取得し、パーセントボタンが加算中に最初の数値のパーセンテージを取ることを判断します。

中核機能と対象環境

REAは3つの主要な解析ベクトルをサポートし、エージェントがさまざまなソフトウェア層で動作できるようにします。

ネイティブバイナリ

REAを使用すると、エージェントはコンパイルされた実行可能ファイルやライブラリ内の関数、文字列、参照、呼び出し関係を検査できます。これにより、Windows電卓のパーセントハンドラで使用される特定の分岐ロジックなど、ネイティブコードからロジックを復元できます。

JavaScriptとElectron

WebベースまたはElectronアプリケーションの場合、REAはモジュール、ルート、プロセス間通信(IPC)、およびネイティブ依存関係をマッピングできます。アプリケーションフォルダまたはASARアーカイブを分析して、デプロイされたアプリの基盤となるロジックを抽出できます。

ブラウザとランタイムアクティビティ

REAは選択したブラウザまたはプロセスからアクティビティをキャプチャし、異なる実行間で結果を比較できます。これは、Chromiumの恐竜ゲームの実行中スクリプトを検査して加速ルール(6から始まり、更新ごとに0.001を加算し、13で上限)を復元し、調整可能な速度スライダー付きのゲームバージョンを再構築する機能によって実証されています。

実装とセットアップ

REAは既存のAIコーディングエージェントへのシームレスな統合を目的として設計されています。インストールは、エージェント自身またはユーザーがターミナルで実行できる単一のコマンドで処理されます。

npx rea-agents@latest setup

インストール後、エージェントをREAツールセットに接続でき、ユーザーが平易な英語で要求した解析タスクを実行できるようになります。

コミュニティの洞察と技術的議論

REAの導入は、ソフトウェア開発の未来とリバースエンジニアリングの合法性に関する重要な議論を引き起こしました。

技術的有効性と既存ツールの比較

一部の開発者は、REAがエージェントにGhidraやRadare2などの確立されたツールを使用するよう指示することとどう違うのか疑問視しました。他の開発者は、

これが大規模なバイナリ全体で生のGhidraスクリプトよりも確実に状態を維持できるなら、ワークフローに組み込む価値があります。

「ソフトウェアの死」と知的財産

AI支援によるリバースエンジニアリングがクローズドソースソフトウェアの価値を根本的に変える可能性があるという強い見方があります。一部のユーザーは、これが「ソフトウェアの死」につながり、コンパイルされたプログラムのソースコードにアクセスまたは生成する能力がもはや障壁ではなくなる可能性があると示唆しています。

AIは現在、コンピュータの始まり以来私たちがすべてのシステムの基盤としてきた前提の1つを打ち破っています:コンパイルされたプログラムのソースコードにアクセスまたは生成できないという前提です。

法的および倫理的懸念

ユーザーは、デジタルミレニアム著作権法(DMCA)と修理または学習する権利との間の緊張を強調しました。これらのツールがユーザーに力を与え、制限的なDRMを回避したり、放棄されたソフトウェア(アバンダンウェア)の失われたソースコードを回復したりできるようになるという期待があります。

モデルのガードレールと拒否

繰り返し指摘される懸念点は「サイバーウォール」です。これは、AnthropicやOpenAIなどのフロンティアモデルプロバイダーが実装する安全ガードレールであり、正当な研究や趣味の作業であっても、ユーザーが「リバースエンジニアリング」や「エクスプロイト」に言及すると拒否を引き起こすことがよくあります。

大規模なパフォーマンス

一部の開発者は、現在の実装の限界を指摘しました。たとえば、あるユーザーは、jadx MCPを介したREAのAndroidサポートは大規模なAPK解析には遅い可能性があり、大規模バイナリのミリ秒レベルの解析のためにdroidascなどの代替ツールを開発したと述べました。

SUMMARY: REAは、AIコーディングエージェントがバイナリ、JavaScript、ブラウザランタイムを検査して、コンパイルされたプログラムからソフトウェアロジックを説明、変更、または再構築できるようにするツールセットです。

TITLE: REA: コーディングエージェントのためのAI駆動リバースエンジニアリング

Sources

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch