Files
reverse-engineering-anything/docs/readme/README_ja.md
T
fd39977c32 docs(desktop): set up a desktop build host from a fresh Linux machine (#9184)
* fix(desktop): keep a program word and a directory's neighbor

The program after env stays the program even when a captured file sits in a
folder of that name. A selected directory is not a database, so a neighboring
file keeps the parent folder's spelling.

* fix(desktop): record whether a selected path is a directory

Capture stores the walked path's kind. A neighboring file of a selected
directory keeps the parent folder's spelling even when that directory never
changes and its children are not content roots.

* fix(desktop): mark containing paths without a pairwise scan

A recorded path marks its known ancestors as directories in one walk up
the path, instead of comparing every recorded path with every other.

* fix(desktop): keep a selected folder that is named like a database log

A folder the caller selected stays a selected root when its name ends in
-journal or -wal. A generated log beside a database file still does not.

* fix(desktop): refuse a build command that exceeds the argument vector

Splitting one argument still leaves the whole command under Linux's E2BIG
limit. A request past that budget is refused before the process starts.

* fix(desktop): remap a captured path in an env assignment

The program word stays the program. A NAME=value assignment keeps its name
and follows a captured path value when that path's spelling moves.

* fix(desktop): keep oversized text out of draft guards

A value or line longer than the draft's text bound is not copied into a
guard, so one large frame cannot fill the task by itself.

* docs(desktop): correct dconf and check-preview guidance

A dconf version kept without its bytes is unreadable, not an empty key
list. A values preview is copied into a check only when it is an uncut scalar.

* fix(desktop): keep an empty env value empty

An empty assignment is not a path. Resolving it named the working directory
and rewrote the value when that directory's spelling moved.

* fix(desktop): keep a run's font on the run, not the frame's text

A formatting attribute such as Scribus FONT is not the document's words.
Joining it across runs made a frame-wide text check of ItalicBold that
failed when a run was split. The font stays a value check on its own run.

* fix(desktop): do not pair JSON records by a selector-shaped field

A field named @record_id matched the id suffix and became [@record_id=one],
which reads an XML attribute. Records paired while their pointers matched
nothing. Names that start with @ or > are not id fields.

* fix(desktop): count a save-numbered id once when pairing members

xml:id and draw:id values such as id123456 were both generated and
numbered, so the same selector was counted twice and refused. A text
edit of two elements keyed only by those ids now keeps its check.

* fix(desktop): preserve selected state directory aliases

* docs(desktop): explain tool and skill refresh prerequisites

* fix(desktop): align nested state selections with aliases

* fix(desktop): check build runtime export capability

* fix(desktop): provide complete runtime repack command

* fix(desktop): retain runtime probe failures

* test(desktop): identify capture independently of schema preflight

* fix(desktop): preserve document URLs and value formats

* fix(desktop): bound added checks and omit noisy text guards

* fix(desktop): exclude unseeded locks from task checks

* fix(desktop): preserve draft bounds and launch URLs

* fix(desktop): render draft values using their source format

* fix(desktop): preserve launch URLs and JSON draft values

* fix(desktop): recognize captured file URL documents

* fix(desktop): render captured file URLs for runtime home

* fix(desktop): distinguish phone numbers from save metadata

* fix(desktop): preserve launch URLs and user text

* fix(desktop): preserve captured URLs and user text

* fix(desktop): preserve local file URL authority

* fix(desktop): preserve local file URL authority

* fix(desktop): preserve local file URL authority

* fix(desktop): render captured file URLs at launch

* fix(desktop): classify numeric timestamps using field context

* fix(desktop): classify numeric timestamps using field context

* fix(desktop): classify numeric timestamps using field context

* fix(desktop): retain context for generated draft values

* fix(desktop): retain context for generated draft values

* fix(desktop): retain context for generated draft values

* test(desktop): cover generated IDs in text guards

* test(desktop): cover generated IDs in text guards

* test(desktop): cover generated IDs in text guards

* fix(desktop): isolate launcher URL encoding

* fix(desktop): isolate launcher URL encoding

* fix(desktop): isolate launcher URL encoding

* fix(desktop): isolate launcher URL encoding

* fix(desktop): retain clean text in noisy record fields

* fix(desktop): classify added line values in one pass

* fix(desktop): apply XML quote rules to text drafts

* fix(desktop): distinguish XML attributes from quoted text

* fix(desktop): preserve parsed XML line context

* fix(desktop): retain partial XML syntax facts

* fix(desktop): recognize markdown autolinks in drafts

* fix(desktop): reuse export exclusions in task drafts

* docs(desktop): clarify gzip scrub limits

* style(desktop): format the noisy-record draft files with the pinned oxfmt

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(desktop): move launch execution to boundary suite

* fix(desktop): redact build schema failure output

* refactor(desktop): normalize schema failure once

* fix(desktop): omit unsafe schema parser snippets

* fix(desktop): preserve draft change and selected path evidence

* test(desktop): group retained dconf note regressions

* fix(desktop): respect archive entry format in draft checks

* test(desktop): separate unowned-file draft note cases

* fix(desktop): preserve explicitly selected journal documents

* fix(xml): avoid scanning selected ancestors per tag

* fix(desktop): exclude covered text runs from draft counts

* fix: preserve text when drafting desktop checks

* fix: restore nested desktop state aliases

* refactor: share UUID recognition across draft checks

* fix: retain multiline XML attribute context

* fix: retain relationship identifiers in task drafts

* docs: clarify desktop draft identifier handling

* test(desktop): type formatting run cases as pairs

* test(desktop): separate markup boundary regression group

* test(desktop): remove duplicate seed filename case

* docs(desktop): clarify task checks before scratch export

* fix(desktop): respell selected paths in file URLs

* test(desktop): group captured document spelling cases

* fix(desktop): bound draft preview serialization

* fix(desktop): restore selected state aliases

* fix(desktop): respect entry format in draft noise

* test(desktop): match exported alias evidence at its JSON boundary

* fix(desktop): retain app state logs in exported seeds

* fix: align desktop numeric seed comparisons

* test(desktop): keep one draft exclusion fixture import

* test(desktop): retain log eligibility across draft test groups

* style: fix desktop launch test formatting

* style: format native command path schema

* fix(desktop): map selected external launch paths

* style(desktop): format seed document regressions

* test(desktop): group launch URL regressions

* fix(desktop): omit redundant nested state aliases

* fix(desktop): compare added free text as a whole

* fix(desktop): check recompressed seeds as shipped

* docs(desktop): clarify recovered seed format

* test(desktop): group shipped gzip seed checks

* fix: retain quoted identifier text in task drafts

* fix: recognize Unicode XML in desktop state readers

* fix(desktop): bound nested draft checks

* fix(desktop): explain missing arrays in truncated views

* fix(desktop): find XML type references in archives

* test(desktop): remove duplicated capture assertions

* fix(desktop): retain nested omitted text boundaries

* style(desktop): format draft value imports

* test(desktop): group model and draft value checks

* fix(desktop): map captured launch paths once

* refactor: remove unused whole-text guard state

* refactor: stop passing unused text children

* test: align free-text checks with whole-note policy

* fix: validate recompressed desktop archive seeds

* style(desktop): format archive seed regression

* fix(desktop): retain placed-item sibling guards

* fix(desktop): redact runtime schema errors

* fix(desktop): normalize captured file URLs

* fix(desktop): report seeded files by capture path

* fix(desktop): retain startup readiness failure stage

* fix(desktop): retain JSON date checks

* fix(desktop): preserve archive formatting checks

* fix(desktop): preserve explicitly selected journal files

* fix(desktop): report build command transport limits

* docs(desktop): clarify unreadable dconf versions

* test(desktop): remove duplicate history regression

* fix(desktop): align XML names with exported reader

* fix(desktop): scrub XML independently of reader compatibility

* style(desktop): format review fixes

* style(desktop): format capture review fixes

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-09 22:59:45 +08:00

40 KiB
Raw Blame History

English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Türkçe · Русский · Tiếng Việt · ไทย · Deutsch · Español · Français · Українська · Polski · Português (Brasil) · العربية · فارسی · Bahasa Indonesia · Italiano · Ελληνικά · മലയാളം · Roman Urdu · Română · Български

REA:あらゆるものをリバースエンジニアリング

バイナリ、アプリケーション、実行時の動作を、ひとつの MCP でリバースエンジニアリング。

気に入った機能を見つけたら、その仕組みをバイナリのレベルまで理解する。

npm version MCP tool catalog Node.js requirements skills.sh MIT license Discord

morluto%2Frea | Trendshift

ウェブサイト · ガイド · 事例

DiscordのREAコミュニティに参加

クイックスタート · REA の仕組み · 分析できる対象 · 事例 · RL 環境を構築する · よくある質問 · ドキュメント

npx rea-agents setup

Important

REA の公式配布元: morluto/rea, rea.tools, rea-agents (npm). インストールとリリースのリンクは、これらの公式配布元からたどってください。似たリポジトリ名やコピーされた README だけでは、公式の配布物とは確認できません。


REA が Hopper 内で分析ブリッジを起動し、ネイティブバイナリを調べる様子



Discord
リバースエンジニアリングのコミュニティに参加

Discord · 質問と回答 · 成果の共有


アプリに、自分の製品にも取り入れたい機能を見つけましたか?エージェントに REA で調査を依頼してください。ソースコードがなくてもアプリを調べ、機能の仕組みを説明し、根拠を示したうえで、あなたのプロジェクト向けに実装できます。

REA はエージェントを分析ツールにつなぎ、ネイティブバイナリ、JavaScript や Electron のアプリ、.NET アセンブリ、ウェブサイトを調べられるようにします。同じツールをターミナルからも使えます。分析はローカルで実行され、結果には各結論を裏付ける根拠と制限事項が含まれます。

セットアップはエージェントに REA を登録し、対応するワークフロー指示をインストールします。ネイティブ解析には既存の Hopper、Ghidra、IDA、Kuna を使用でき、承認すれば Hopper をインストールできます。静的 JavaScript 解析にネイティブ解析エンジンは不要です。

**REA のウェブサイト**で、セットアップ手順、図解ガイド、実際の事例を確認できます。

クイックスタート

Linux での Ghidra、JADX、ファームウェアツールの起動と静的 JavaScript/Electron 解析には、プロセス所有権の確認用に、REA の PATH 上に procps 互換の ps が必要です。対処方法はインストールガイドの Linux 前提条件を参照してください。

エージェントを設定する

Node.js と npm がインストールされている環境で実行します。

npx rea-agents setup

使うエージェントを選び、予定されている変更を確認して承認してください。セットアップは REA の MCP サーバーと対応するワークフローの手順を追加し、既存の設定をバックアップします。完了後にエージェントを再起動してください。

セットアップは Claude Code、Codex、Cursor、Gemini CLI、Grok Build、およびその他のエージェントに対応しています。プロバイダーの設定と MCP の手動登録については、インストールとセットアップを参照してください。

MCP は既定でコンパクトな入力スキーマを使用します。完全なフィールド説明と入れ子の検証情報が必要な場合は、MCP 登録に REA_MCP_INPUT_SCHEMA_PROFILE=full を設定してください。どちらも全ツールと同じ正規サーバー検証を維持します。詳細は MCP 契約ガイドを参照してください。

セットアップは選択したランタイムと REA のエントリースクリプトを直接登録します。パッケージランナーを使う場合は、そのキャッシュ項目とランタイムを残し、対象プロジェクト外の信頼できるディレクトリからパッケージを取得してください。 インストールガイドを参照してください。

出力スキーマはデフォルトで完全なものが公開されます。クライアントが tools/list を制限する場合は、MCP 登録で REA_MCP_OUTPUT_SCHEMA_PROFILE=compact または off を設定してください。サーバー側の検証と構造化結果は完全なままです。 MCP 契約ガイドの「Output schemas」を参照してください。

エージェントに依頼する

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 と Evidence のガイドを参照してください。

REA を更新する

REA は更新が速く、新しいリリースには頻繁にバグ修正が含まれます。インストールしたバージョンを最新に保ってください。

npm install --global / bun add --global でインストールした CLI の場合:

rea update

rea --update は rea update の別名で、同じグローバル出力オプションを受け付けます。更新コマンドが保持する stdout/stderr は合計 4 MiB までです。大きすぎるメタデータは終了後に拒否され、詳細なインストール出力は制限付きで保持されます。進捗出力は端末のバックプレッシャーに従い、送信済みの書き込み完了を待ちます。

Bun のグローバル更新には Bun 1.2.17 以降が必要です。古い場合は、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 の調査フロー:エージェントがローカルの対象について質問し、REA が分析ツールで調査・追跡します。エージェントは返されたコード、参照、未解明の点を使い、説明、実装、テストを行います。

原寸大の図を開く。

分析できる対象

REA には Node.js 22.x(>=22.23.4)、24.x(>=24.22.1)、または 26+ (>=26.12.1) と npm が必要です。追加のツールや対応ホストは、対象によって異なります。

対象 REA が返すもの 要件とガイド
ネイティブバイナリ 疑似コード、アセンブリ、文字列、シンボル、呼び出し、参照 Hopper、Ghidra、IDA、または Kuna;ネイティブ分析
オフライン ELF レイアウト セクション、セグメント、元のシンボル/再配置情報、静的解析によるセキュリティ対策の候補 Linux x64 で利用者が用意する pwntools;バイナリ診断
PE certificates Authenticode WIN_CERTIFICATE entries and PKCS#7 signer/X.509 identity fields Built-in static PE inspection; PE certificates
PE imports Import and delay-load DLL names, ordinals, IAT RVAs and pefile import hash Built-in static PE inspection; PE imports
Windows shortcuts Shell Link target, arguments, working dir, ExtraData and Tracker droid facts Built-in static LNK inspection; Windows shortcuts
EVM バイトコード ディスパッチセレクター、バイトオフセット、推定された引数と状態変更の可否 Linux x64 上のローカルの生バイト/16 進数の入力ファイル;オフライン EVM ガイド
Rust binaries Embedded cargo-auditable dependency list Rust binaries
ELF notes PT_NOTE/SHT_NOTE owners, types, GNU build-id and ABI-tag fields Built-in static ELF inspection; ELF notes
Binary hardening PIE, NX, RELRO, CFG and related header flags for ELF, PE and Mach-O Built-in static header inspection; binary hardening
Apple IPS crashes .ips metadata, threads, images, registers and crash classes Built-in static JSON inspection; Apple IPS
Linux kernel modules .modinfo keys, __versions CRCs, this_module presence, and signature trailer Built-in static ELF inspection; kernel modules
Erlang BEAM IFF chunks, atoms, exports, and tables Built-in static BEAM inspection; Erlang BEAM
記録済みの Linux クラッシュ 生の note レコード、記録された全スレッドのレジスター/シグナル、任意のマッピング候補 Linux x64 で利用者が用意する pwntools;GDB/pwndbg は任意;記録済みクラッシュ
デスクトップのインストール先 ランタイム候補、根拠ファイル、コンポーネントの目印、次の調査手順 上限付きのディレクトリ・ヘッダー検査;デスクトップアプリ
JavaScript / Electron モジュール、インポート、ソースマップ、ルート、IPC、ネイティブアドオンの関係 Node.js と npm;アプリケーション分析; Linux: procps ps
ウェブサイト ページ構造、スクリプト、ネットワークの観測結果、依頼されたスクリーンショット Chrome 系ブラウザー;ブラウザー分析
保存済みのネットワークキャプチャ リクエスト、レスポンス、取得可能なペイロード、ソース内の位置 HAR / Fiddler Everywhere SAZ;mitmproxy ネイティブ形式のキャプチャには Linux 上の mitmdump;キャプチャガイド
パケットキャプチャ エンドポイント、DNS、TLS SNI、プロトコル分布、HTTPリクエスト 呼び出し側が用意した tshark と capinfos;pcapガイド
.NET アセンブリ メタデータ、CIL 命令、宣言されたネイティブ依存関係、ビルドの比較 静的な検査;マネージドコードのガイド
PyInstaller CArchive, PYZ, Python bytecode Static inspection; Python packaged applications
Deno compile binaries Virtual files, entry point, recorded options, npm snapshot length Static inspection; Deno compile executables
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;ファームウェアガイド
記録済みパケット 選択フィールド、繰り返し値、フィルター、デコード指定 Linux: TShark 4.x + prlimit; キャプチャガイド
記録済みロジック信号 デコーダ注釈、サンプル範囲、診断情報 Linux: sigrok-cli 0.7.2 + prlimit; 信号記録ガイド
パッケージとリソース ファイル一覧、ダイジェスト、plist、Apple バンドルの構造、抽出されたリソース アーティファクトと JavaScript のガイド、Apple アプリケーション
プロセスの動作 ターミナル出力、対話、終了とファイルシステムの観測結果、実行の比較 ネイティブ PTY を備えた Linux/macOS;プロセスキャプチャ
Go バイナリ 埋め込みコンパイラバージョン、モジュール、置換、ビルド設定 組み込みの静的解析 ELF/PE/thin Mach-O; Go のインストールは不要
SQLite データベース テーブル、列、インデックス、ビュー、トリガー、選択した通常テーブルの行 ローカル DB/WAL スナップショット。ネイティブ SQLite 制限 API を備える Node.js 24.x >=24.15 または 26+
GPU コードオブジェクト CUDA/HIP ターゲット、選択したカーネルの引数とリソース、保持された PTX 組み込みの静的解析 ELF/PE/fatbin/CUBIN/PTX; GPU
モデルファイル GGUF / safetensors メタデータ、テンソル宣言、導出した合計 ヘッダー解析。任意でファイル全体をハッシュ; GGUF / safetensors
IL2CPP メタデータ Unity global-metadata.dat のアセンブリ、型・メソッド名、インデックス範囲 バージョン 24、27、29、31、39 を静的デコード。Unity 不要
Godot PCK アーカイブ一覧と展開、元のヘッダー・ディレクトリ情報、選択内容の識別情報 形式 2、3、4 を静的解析。Godot 不要
WASM アーティファクト 検証、セクション、正確なインポート/エクスポート WAT 形式、デコード済み WAT 利用者が用意 WABT 1.0.42; inspect_wasm_artifact
APK 署名 v1/v2/v3/v3.1 署名者、証明書指紋、鍵ローテーション、ダイジェストの自己整合性 組み込みの静的解析; inspect_apk_signature

静的な JavaScript と .NET の検査は、指定されたファイルを読み取り、アプリケーションを実行しません。実行時キャプチャは、あなたのユーザー権限で対象を実行したり、対象とやり取りしたりします。それぞれの実行時ガイドに、どのような操作が行われるかを記載しています。

ネイティブバイナリのオフライン検査では、利用者が用意した GNU objdump と Rizin も使用できます。リバースエンジニアリングツールのガイドでは、プロバイダーのセットアップ、CLI コマンド、Evidence の制約を説明しています。REA はどちらのプロバイダーもインストールや更新を行いません。

大きなバイナリでは REA_GHIDRA_STARTUP_TIMEOUT_MS または REA_HOPPER_STARTUP_TIMEOUT_MS でプロバイダーの起動期限を延長できます。

対応するネイティブ形式とホストは、プロバイダーによって異なります。Hopper と Ghidra のセットアップ、IDA ガイド、Kuna、Windows 向け Ghidra の実験的対応を参照してください。Ghidra は 16 ビット DOS 分析にも対応しています。プロバイダーの選択は CLI ガイドを参照してください。最新の npm リリース以降に追加された機能については、リリースでの利用可否を確認してください。

事例

DX-Ball の音声パン、Notion のクリップボードブリッジ、TH04 の弾幕リングの事例を表すイラスト

DX-Ball:音声のパン計算を再構築する

音声の呼び出しから位置をパンに変換する補助関数をたどり、命令を調べ、不完全な疑似コードを C に書き直します。再構築した実装は、元の x86 に対する 3,205 ケースの検証を通過し、コンパイル後の関数の全 63 バイトを再現しています。

事例を読む · 再構築リポジトリ

Notion:Electron のクリップボードブリッジを追跡する

レンダラーのクリップボード API を見つけ、preload と IPC を経由してメインプロセスまでたどり、リッチなクリップボード形式を調べます。

事例を読む

TH04:DOS の弾幕リングの計算を復元する

元の PC-98 ゲームの 16 ビット命令を調べ、固定角度と自機を狙う角度の計算を復元し、再構築した C++ を当時のコンパイラーの出力と比較します。

事例を読む · 再構築リポジトリ

REA で RL 環境を構築する

Web アプリのセッションを記録し、API をツールに変換して、AI エージェントが使える環境をエクスポートします。AgentEnv で実行し、タスクと報酬のチェックを追加して、RL の学習や評価に使えます。

環境構築ガイド · X でデモを見る

REA で興味深い対象を調べたら、ぜひ共有してください。issue または pull request に、対象、調べたかったこと、REA がどう役立ったか、何が分かったかを記載してください。

RL 環境を構築する

元のアプリを動かさずに、AI エージェントが issue の検索やフォルダーの作成などを練習できるローカル環境を構築します。強化学習(RL)や、エージェントのタスク遂行能力のテストに使えます。

REA は記録した API のリクエストと応答を、エージェントが呼び出せるツールに変換します。環境は記録したデータを使い、記録で効果が確認された変更だけをサポートします。

エージェントに REA を設定したら、次の URL とフォルダー操作を自分の環境に合わせて変更してください。

REA を使い、次のテスト用 Web アプリから RL 環境を構築してください。
http://127.0.0.1:3000
フォルダーの一覧表示、作成、名前変更、削除を対象にしてください。
テスト用フォルダーの作成と削除は許可します。既存のデータは変更しないでください。
my-env というフォルダーに保存し、使える操作を確認して実行方法を教えてください。
コマンドラインを使う場合

アプリのブラウザーリクエストと応答を記録したファイルがあれば、このコマンドを使えます。作成した環境の実行には AgentEnv と Docker も必要です。

rea environment-build ./session.har ./my-env --name my-env --json
agent-env run ./my-env

REA は実行可能な環境と、起動して応答することを確認する基本テストをエクスポートします。RL フレームワークに接続して、タスクの目標や報酬のチェックを定義し、学習を実行できます。

環境構築ガイド · 環境リファレンス · X でデモを見る

デスクトップアプリの環境

REA は、エージェントがスクリーンショット、マウス、キーボードで操作する Linux デスクトップアプリの環境も構築できます。「エージェントが買い物リストのメモにオリーブオイルを追加する Gnote 環境を作って」のような 1 行の依頼から、エージェントがローカルのビルド用コンピューターにアプリをインストールし、タスクを書き、環境をエクスポートし、新しいコンピューターでタスクを確認します。構築するマシンには、amd64 または arm64 の Linux、Docker、ガイドが指定するバージョンの agentenv フレームワークが必要です。

デスクトップアプリ環境を設定する

よくある質問

どのエージェントで REA を使えますか?

ローカル MCP サーバーに対応するエージェントなら使えます。セットアップは対応エージェントを設定します。その他のクライアントでは、MCP の手動登録を利用できます。

Hopper、Ghidra、IDA、Kuna は必要ですか?

深いネイティブ分析には、そのいずれかを使います。静的な JavaScript と .NET の検査には、ネイティブ分析エンジンは必要ありません。セットアップは承認後に Hopper をインストールできます。Ghidra、IDA、Kuna は既存のインストールを使います。プロバイダーのセットアップを参照してください。

先に Hopper を起動する必要はありますか?

REA は必要な操作の際に Hopper を起動します。macOS では、初回起動時にデモモードを選ぶか、ライセンスを有効化するよう求められることがあります。Hopper の起動とトラブルシューティングを参照してください。

skills.sh からスキルをインストールすると何ができますか?

スキルはエージェントに調査の手順を提供します。npx rea-agents setup で REA の MCP サーバーを登録し、対応する手順をインストールしてから、エージェントを再起動してください。スキルのみのインストールを参照してください。

REA はどのようなコードを返しますか?

ネイティブ分析は疑似コードとアセンブリを返します。JavaScript/Electron 分析はモジュールとその関係を復元します。エージェントはその結果を使って実装を書き、テストします。事例に具体的な手順があります。

REA はアプリをアップロードしますか?

REA は対象をローカルで分析します。エージェントはツールの結果を受け取り、そのモデルプロバイダーには独自のデータポリシーがあります。

バグに遭遇したらどうすればよいですか?

まず更新してください。最近のリリースですでに修正されている可能性があります。

npm でインストールした CLI の場合:

rea update

npx でエージェントを設定している場合:

npx rea-agents@latest setup

エージェントを使っている場合は、設定の更新を完了し、再起動してください。同じタスクをもう一度試し、問題が続く場合は issue を作成して、REA のバージョン、対象の種類、再現手順、エラー出力を記載してください。

ドキュメント

まずはウェブサイトの実践ガイドを参照してください。正確なオプション、前提条件、結果の契約については、以下を参照してください。

脆弱性の報告は SECURITY.md に従ってください。

スター履歴

🎉 GitHub スター 400,000 件、ありがとうございます!

REA の利用、バグ報告、機能の要望、ビルドのテスト、修正への貢献に感謝します。

REA の GitHub スター履歴

免責事項

責任ある利用については DISCLAIMER.md を参照してください。

REA は、法令に従った研究、教育、相互運用性の確保、ソフトウェアの保存、および所有するソフトウェアや調査を許可されたソフトウェアの解析を目的としています。

違法または無許可の利用に関するプロジェクトの立場は、REA のすべてのバージョン、配布チャネル、およびプラットフォームに適用されます。各コピーには、それぞれに適用されるライセンスが引き続き適用されます。

貢献する

REA への貢献を歓迎します!issue を作成してバグや機能の提案を報告したり、pull request を送信してコードやドキュメントを改善したりできます。

開発環境とチェックは CONTRIBUTING.md、検証レーンはテストガイド、プロジェクト構造はアーキテクチャ図を参照してください。

ライセンス

MIT

REA が作成したコードは MIT ライセンスの下で提供されます。サードパーティの素材には、それぞれのライセンスと著作権表示が引き続き適用されます。依存関係の一覧、保存されたライセンス本文、および外部ツールの利用条件については、サードパーティ通知を参照してください。

IDA Pro / Hex-Rays デコンパイラ、Hopper、JEB を含む商用ツールは、適用されるライセンスに従って合法的に入手し、使用する権限を得ている必要があります。 REA はツールのライセンス、キー、またはアクティベーションの権利を一切付与しません。試用版やデモ版も、ユーザー、機能、自動化、および出力の共有に関する制限を含め、ベンダーの利用条件に従います。クラックされたコピー、盗まれたキー、無許可のキー共有、およびライセンス制限の回避は認められていません。このガイダンスは、MIT ライセンスやサードパーティのライセンスを変更するものではありません。