HN 日本語サマリー

← 一覧へ戻る
プログラミング

エージェントを使って、アプリの動作からネイティブバイナリまであらゆるものをリバースエンジニアリングする

Reverse engineer anything with agents, from app behavior down to native binaries (github.com)

23 pointsby taytus4 コメント

要約

REA(Reverse Engineer Anything)は、バイナリ、アプリケーション、ランタイム動作全体にわたるリバースエンジニアリングのための統合プラットフォームです。エージェントと連携し、ソースコードなしでアプリの機能を調査し、その仕組みをバイナリレベルまで理解することを可能にします。ネイティブバイナリ、JavaScript/Electronアプリ、.NETアセンブリ、ウェブサイトなどを分析でき、結果には証拠と限界が含まれます。ローカルで分析が実行され、プライバシーが保護されます。

全文翻訳

English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Türkçe · Русский · Tiếng Việt · ไทย · Deutsch · Español · Français · Українська · Polski · Português (Brasil) · العربية · فارسی · Bahasa Indonesia · Italiano REA: Reverse Engineer Anything バイナリ、アプリケーション、ランタイム動作全体にわたる1つのMCP(Meta-Cognitive Process)。 気に入った機能を見つけたら、それがどのように機能するか、バイナリレベルまで理解してください。 ウェブサイト · ガイド · ショーケース クイックスタート · REAの仕組み · 分析できるもの · ショーケース · FAQ · ドキュメント npx rea-agents setup リバースエンジニアリングコミュニティDiscordに参加 · Q&A · ショーアンドテル アプリで気に入った機能があり、自分の製品にも取り入れたいですか?エージェントに調査を依頼してください。REAを使えば、ソースコードなしでアプリを検査し、機能の仕組みを説明させ、証拠を示し、あなたのプロジェクト用にバージョンを構築させることができます。 REAは、エージェントをネイティブバイナリ、JavaScriptおよびElectronアプリ、.NETアセンブリ、ウェブサイトの検査ツールに接続します。これらのツールは、ターミナルから直接使用することもできます。分析はローカルで実行され、結果には各結論の証拠と限界が含まれます。 セットアップは、REAをエージェントに登録し、対応するワークフロー指示をインストールします。ネイティブ分析には、既存のHopper、Ghidra、またはIDAのインストールを使用できます。セットアップでは、承認を得てHopperをオプションでインストールすることもできます。静的JavaScript分析には、ネイティブ分析エンジンは必要ありません。 セットアップ手順、図解付きガイド、実際のケーススタディについては、REAのウェブサイトをご覧ください。 クイックスタート エージェントをセットアップする Node.jsとnpmがインストールされている場合、以下を実行します。 npx rea-agents setup エージェントを選択し、提案された変更を確認して承認してください。セットアップは、REAのMCPサーバーと対応するワークフロー指示を追加し、既存の設定のバックアップを作成します。その後、エージェントを再起動してください。 セットアップは、Claude Code、Codex、Cursor、Gemini CLI、Grok Buildなどのエージェントをサポートしています。プロバイダーの設定と手動MCP登録については、インストールとセットアップをご覧ください。 エージェントに質問する Notesアプリの検索機能がどのように機能するかを説明し、証拠を示し、私のプロジェクト用に同様の機能を作成してください。 Notesをターゲットアプリと理解したい機能に置き換えてください。 ターミナルを使用する 抽出されたJavaScript/ElectronアプリのディレクトリまたはASARを検査する: npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json 結果には、モジュール、インポート、Electronの境界、およびそれらの証拠が含まれます。 Windows上の"D:/apps/example"のようなターゲットパスに置き換えてください。 定期的な使用のためにreaコマンドをインストールするには: npm install --global rea-agents rea --help ネイティブ分析の場合、まずプロバイダーを設定してください。ネイティブコマンド、プロバイダー選択、スナップショット、スクリプティングについては、CLIおよび証拠ガイドをご覧ください。 REAを更新する REAは迅速に変更され、新しいリリースには頻繁なバグ修正が含まれます。インストールを最新の状態に保ってください。 npm install --globalまたはbun add --globalでインストールしたCLIの場合: rea update BunのグローバルアップデートにはBun 1.2.17以降が必要です。古いBunリリースを使用している場合は、rea updateを実行する前にBunを手動でアップグレードしてください。 エージェントの登録とスキルをリフレッシュするには、アップデートによって表示されるセットアップコマンドを実行してください。 npxを使用している場合、以下でエージェントのセットアップを更新します。 npx rea-agents@latest setup セットアップの変更を確認し、エージェントを再起動してください。 ワンオフCLIコマンドの場合は、npx rea-agents@latestの後にコマンドを使用してください。 Bunを使用している場合は、npx rea-agents@latestの代わりにbunx rea-agents@latestを使用してください。 REAの仕組み エージェントはMCPを介してREAを呼び出し、ターゲットを検査して関連コードをトレースします。REAは証拠とともに調査結果を返します。エージェントはそれらを使用してフォローアップの質問をしたり、動作を説明したり、実装を記述してテストしたりします。CLIコマンドも同じワークフローを使用します。 フルサイズの図を開く。 分析できるもの REAにはNode.js 22.x (>=22.19)、24.x (>=24.11)、または26+、およびnpmが必要です。追加のツールとホストサポートはターゲットによって異なります。 ターゲット | REAが返すもの | 要件とガイド ---|---|--- ネイティブバイナリ | 疑似コード、アセンブリ、文字列、シンボル、コール、参照 | Hopper、Ghidra、またはIDA。ネイティブ分析 オフラインELFレイアウト | セクション、セグメント、元のシンボル/リロケーション、静的緩和候補 | Linux x64上のpwntools(呼び出し元提供);バイナリ診断 Goバイナリ | 埋め込みコンパイラバージョン、モジュール、置換、ビルド設定 | 内蔵静的ELF/PE/thin Mach-O検査;Goインストール不要 WASMアーティファクト | 検証、セクション、正確なインポート/エクスポートWATフォーム、デコードされたWAT | WABT 1.0.42(呼び出し元提供);inspect_wasm_artifact EVMバイトコード | ディスパッチセレクタ、バイトオフセット、推測された引数、ミュータビリティ | Linux x64上のローカル生/16進数キャリア;オフラインEVMガイド 記録されたLinuxクラッシュ | 生のノート、記録された各スレッドのレジスタ/シグナル、オプションのマッピング候補 | Linux x64上のpwntools(呼び出し元提供);オプションのGDB/pwndbg;記録されたクラッシュ JavaScript / Electron | モジュール、インポート、ソースマップ、ルート、IPC、ネイティブアドオンの関係 | Node.jsとnpm;アプリケーション分析 ウェブサイト | ページ構造、スクリプト、ネットワーク観測、要求されたスクリーンショット | Chromeファミリーブラウザ;ブラウザ分析 保存されたネットワークキャプチャ | 要求、応答、公開されたペイロード、ソースの場所 | HAR;Linux上のmitmdump(ネイティブmitmproxyキャプチャ用);キャプチャガイド .NETアセンブリ | メタデータ、CIL命令、宣言されたネイティブ依存関係、ビルド比較 | なし(静的のみ);マネージドコードガイド Android APK | マニフェスト宣言、クラス、デコンパイルされたメソッド、参照 | Linux/macOS/Windows x64上のヘッドレスJADXとフルJDK;Androidガイド Androidデバイス | デバイス、パッケージ、プロセス、ログ、ダンプ、スクリーンショット、APK/ファイル転送 | adb(エミュレータまたはハードウェア)(呼び出し元提供);ADBガイド JEBプロジェクト | エンジンベースのプロジェクトユニット、アーティファクトダイジェスト、タイプ/メソッド疑似コード | MCPを提供する呼び出し元起動JEBクライアント、REA_JEB_MCP_URLで選択;JEBガイド Androidリソース | デコードされたマニフェスト、文字列テーブル、ロケール、バージョン情報 | Apktoolランチャー(呼び出し元提供);リソースガイド Flutterアプリ | Dartスナップショットハッシュ、ABIごとのライブラリダイジェスト、エンジンビルドの出所 | なし(静的APK解析);Flutterガイド ファームウェア | リージョン、抽出結果、ネイティブ分析のハンドオフ | Linux上のBinwalk / Unblob;ファームウェアガイド パッケージとリソース | ファイルインベントリ、ダイジェスト、plist、Appleバンドルの構造、抽出されたリソース | アーティファクトとJavaScriptガイド、Appleアプリケーション アプリケーションの動作 | ターミナル出力、インタラクション、終了およびファイルシステム観測、実行比較 | Linux/macOS(ネイティブPTY付き);プロセスキャプチャ 静的JavaScriptおよび.NET検査は、アプリケーションを実行せずに提供されたファイルを読み取ります。ランタイムキャプチャは、ユーザー権限を使用してターゲットを実行または操作します。各ランタイムガイドは、その影響を説明します。ネイティブフォーマットとホストサポートはプロバイダーによって異なります。HopperおよびGhidraのセットアップ、IDAガイド、および実験的なWindows Ghidraサポートを参照してください。Ghidraは16ビットDOS分析もサポートしています。大きなバイナリの場合、REA_GHIDRA_STARTUP_TIMEOUT_MSまたはREA_HOPPER_STARTUP_TIMEOUT_MSでプロバイダーの起動タイムアウトを増やしてください。プロバイダーの選択については、CLIガイドを参照してください。最新のnpmリリース以降に追加された機能のリリース状況を確認してください。 ショーケース DX-Ball: サウンドパン計算の再構築 サウンドコールを位置合わせパンヘルパーに追跡し、命令を検査し、不完全な疑似コードをCに変換します。再構築は3,205の元のx86ケースをパスし、コンパイルされた関数のすべての63バイトを再現します。 ケーススタディを読む · 再構築リポジトリ Notion: Electronクリップボードブリッジをトレースする レンダラーのクリップボードAPIを見つけ、それをプリロードとIPCを介してメインプロセスに追跡し、リッチクリップボード形式を検査します。 ケーススタディを読む TH04: DOS弾丸リング計算を復元する 元のPC-98ゲームの16ビット命令を検査し、固定および照準角度の計算を復元し、再構築されたC++を歴史的なコンパイラ出力と比較します。 ケーススタディを読む · 再構築リポジトリ REAで何か興味深いものを使用した場合は、ぜひお見せしたいです。ターゲット、質問、REAがどのように役立ったか、そして