Files
reverse-engineering-anything/docs/readme/README_id.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

33 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: Rekayasa Balik Apa Pun

Satu MCP untuk rekayasa balik pada berbagai biner, aplikasi, dan perilaku saat runtime.

Melihat fitur yang Anda sukai. Pahami cara kerjanya hingga ke tingkat biner.

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

morluto%2Frea | Trendshift

Situs Web · Panduan · Contoh Penggunaan

Bergabunglah dengan komunitas REA di Discord

Mulai Cepat · Cara Kerja REA · Hal yang Dapat Anda Analisis · Contoh Penggunaan · Membangun lingkungan RL · FAQ · Dokumentasi

npx rea-agents setup

Important

Sumber resmi REA: morluto/rea, rea.tools, rea-agents (npm). Gunakan tautan instalasi dan rilis dari sumber resmi ini. Nama repositori yang mirip atau README yang disalin tidak membuktikan bahwa unduhan tersebut resmi.


REA menjalankan jembatan analisisnya di dalam Hopper saat memeriksa biner native



Discord
Bergabunglah dengan Komunitas Rekayasa Balik

Discord · Tanya Jawab · Berbagi Hasil


Melihat fitur dalam suatu aplikasi yang ingin Anda hadirkan di produk sendiri? Minta agen Anda menyelidikinya menggunakan REA. REA dapat memeriksa aplikasi tanpa kode sumbernya, menjelaskan cara kerja fitur tersebut, menunjukkan bukti, dan membangun versi untuk proyek Anda.

REA menghubungkan agen Anda dengan berbagai alat untuk memeriksa biner native, aplikasi JavaScript dan Electron, assembly .NET, serta situs web. Anda juga dapat menggunakan alat yang sama dari terminal. Analisis dijalankan secara lokal, dan hasilnya mencakup bukti serta keterbatasan yang mendasari setiap kesimpulan.

Proses penyiapan mendaftarkan REA ke agen Anda dan memasang instruksi alur kerja yang sesuai. Analisis native dapat menggunakan instalasi Hopper, Ghidra, IDA, atau Kuna yang sudah ada. Proses penyiapan juga dapat memasang Hopper secara opsional setelah mendapatkan persetujuan. Analisis JavaScript statis tidak memerlukan mesin analisis native.

Kunjungi situs web REA untuk mendapatkan petunjuk penyiapan, panduan bergambar, dan studi kasus nyata.

Mulai Cepat

Di Linux, peluncuran Ghidra, JADX dan alat firmware serta analisis statis JavaScript/Electron memerlukan ps yang kompatibel dengan procps pada PATH REA untuk memeriksa kepemilikan proses. Lihat prasyarat Linux.

Siapkan agen Anda

Dengan Node.js dan npm yang telah terpasang, jalankan:

npx rea-agents setup

Pilih agen yang ingin digunakan, tinjau perubahan yang diusulkan, lalu setujui perubahan tersebut. Proses penyiapan menambahkan server MCP REA dan instruksi alur kerja yang sesuai, serta membuat cadangan konfigurasi yang sudah ada. Setelah itu, mulai ulang agen Anda.

Penyiapan mendukung Claude Code, Codex, Cursor, Gemini CLI, Grok Build, dan agen lainnya. Lihat instalasi dan penyiapan untuk konfigurasi penyedia dan pendaftaran MCP secara manual.

MCP menggunakan skema input ringkas secara default. Untuk petunjuk bidang lengkap dan validasi bertingkat, atur REA_MCP_INPUT_SCHEMA_PROFILE=full pada pendaftaran MCP. Kedua profil mempertahankan semua alat dan validasi server kanonis yang sama; lihat panduan kontrak MCP.

Setup mencatat runtime yang dipilih dan skrip masuk REA secara langsung. Jika memakai package runner, pertahankan entri cache dan runtime tersebut; unduh paket dari direktori tepercaya di luar proyek target. Lihat panduan instalasi.

Skema keluaran lengkap diumumkan secara default. Jika klien membatasi tools/list, atur REA_MCP_OUTPUT_SCHEMA_PROFILE=compact atau off dalam registrasi MCP. Validasi server dan hasil terstruktur tetap lengkap. Lihat «Output schemas» di panduan kontrak MCP.

Minta agen Anda

Pahami cara kerja pencarian di aplikasi Notes, tunjukkan buktinya, dan buat fitur serupa untuk proyek saya.

Ganti Notes dengan aplikasi target dan fitur yang ingin Anda pahami.

Gunakan terminal

Periksa direktori aplikasi JavaScript/Electron yang telah diekstrak atau berkas ASAR:

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

Hasilnya mencakup modul, impor, batas antarkomponen Electron, dan bukti yang mendasarinya. Ganti jalur tersebut dengan lokasi target Anda, misalnya "D:/apps/example" di Windows.

Untuk memasang perintah rea agar dapat digunakan secara rutin:

npm install --global rea-agents
rea --help

Untuk analisis native, konfigurasikan penyedia terlebih dahulu. Lihat Panduan CLI dan Bukti untuk perintah native, pemilihan penyedia, snapshot, dan pembuatan skrip.

Perbarui REA

REA berkembang dengan cepat, dan rilis baru sering menyertakan perbaikan bug. Pastikan instalasi Anda selalu diperbarui.

Untuk CLI yang dipasang melalui npm install --global atau bun add --global:

rea update

rea --update adalah alias rea update dengan opsi keluaran global yang sama. Perintah pembaruan menyimpan stdout/stderr gabungan maksimal 4 MiB. Metadata terlalu besar ditolak setelah perintah selesai; instalasi verbose menyimpan diagnostik terbatas. Kemajuan mengikuti backpressure terminal dan menunggu penulisan yang telah dikirim.

Pembaruan global dengan Bun memerlukan Bun 1.2.17 atau yang lebih baru. Pada rilis Bun yang lebih lama, perbarui Bun secara manual sebelum menjalankan rea update.

Untuk memperbarui pendaftaran agen dan skill Anda, jalankan perintah penyiapan yang ditampilkan oleh proses pembaruan.

Jika Anda menggunakan npx, perbarui penyiapan agen dengan:

npx rea-agents@latest setup

Tinjau perubahan penyiapan dan mulai ulang agen Anda. Untuk menjalankan perintah CLI sekali pakai, gunakan npx rea-agents@latest diikuti dengan perintah yang diinginkan. Dengan Bun, gunakan bunx rea-agents@latest sebagai pengganti npx rea-agents@latest.

Cara Kerja REA

Agen Anda memanggil REA melalui MCP untuk memeriksa target dan menelusuri kode yang relevan. REA mengembalikan temuan beserta bukti pendukungnya. Agen kemudian menggunakan temuan tersebut untuk mengajukan pertanyaan lanjutan, menjelaskan perilaku, atau menulis dan menguji implementasi.

Perintah CLI menggunakan alur kerja yang sama.

Alur investigasi REA: agen Anda menanyakan sesuatu tentang target lokal, REA memeriksa dan menelusurinya menggunakan alat analisis, lalu agen menggunakan kode, referensi, dan hal-hal yang belum diketahui dari hasil tersebut untuk menjelaskan, mengimplementasikan, dan menguji.

Buka ilustrasi dalam ukuran penuh.

Hal yang Dapat Anda Analisis

REA memerlukan Node.js 22.x (>=22.23.4), 24.x (>=24.22.1), atau 26+ (>=26.12.1), beserta npm.

Alat tambahan dan dukungan sistem host bergantung pada target yang dianalisis:

Target Hasil yang diberikan REA Persyaratan dan panduan
Biner native Pseudocode, assembly, string, simbol, pemanggilan, dan referensi Hopper, Ghidra, IDA, atau Kuna; analisis native
Tata letak ELF offline Bagian, segmen, simbol/relokasi asli, dan kandidat mitigasi statis pwntools yang disediakan pemanggil pada Linux x64; diagnostik biner
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
Artefak WASM Validasi, bagian, bentuk WAT import/ekspor yang tepat, dan WAT yang didekode WABT 1.0.42 yang disediakan pemanggil; inspect_wasm_artifact
Bytecode EVM Selector dispatch, offset byte, argumen yang disimpulkan, dan sifat mutabilitas Pembawa data raw/hex lokal di Linux x64; panduan EVM offline
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
Crash Linux yang direkam Catatan mentah, register/sinyal setiap thread yang direkam, dan kandidat pemetaan opsional pwntools yang disediakan pemanggil di Linux x64; GDB/pwndbg opsional; crash yang direkam
Instalasi desktop Kandidat runtime, berkas pendukung, penanda komponen, dan langkah berikutnya Pemeriksaan direktori dan header terbatas;Aplikasi desktop
JavaScript / Electron Modul, impor, source map, rute, IPC, dan hubungan add-on native Node.js dan npm; analisis aplikasi; Linux: procps ps
Situs web Struktur halaman, skrip, pengamatan jaringan, dan tangkapan layar yang diminta Peramban berbasis Chrome; analisis peramban
Rekaman jaringan tersimpan Permintaan, respons, payload yang terekspos, dan lokasi sumber HAR / Fiddler Everywhere SAZ; mitmdump di Linux untuk rekaman native mitmproxy; panduan rekaman
Capturan paket Endpoint, DNS, TLS SNI, distribusi protokol, dan permintaan HTTP tshark dan capinfos buatan pemanggil; panduan pcap
Assembly .NET Metadata, instruksi CIL, dependensi native yang dideklarasikan, dan perbandingan build Tidak ada (hanya analisis statis); panduan kode terkelola
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
APK Android Deklarasi manifest, kelas, metode hasil dekompilasi, dan referensi JADX mode headless dan JDK lengkap di Linux/macOS/Windows x64; panduan Android
Perangkat Android Perangkat, paket, proses, log, dump, tangkapan layar, serta transfer APK/berkas adb buatan pemanggil (emulator atau perangkat); panduan ADB
Proyek JEB Unit proyek bertenaga mesin, hash artefak, dan pseudokode tipe/metode Klien JEB yang dijalankan pemanggil dan menyajikan MCP, dipilih dengan REA_JEB_MCP_URL; panduan JEB
Resource Android Manifest terdekode, tabel string, lokal, dan fakta versi Peluncur Apktool buatan pemanggil; panduan resource
Aplikasi Flutter Hash snapshot Dart, hash pustaka per ABI, dan asal build engine Tidak ada (parsing APK statis); panduan Flutter
Firmware Wilayah, hasil ekstraksi, dan pengalihan ke analisis native Binwalk / Unblob di Linux; panduan firmware
Paket rekaman Kolom terpilih, nilai berulang, filter, dan aturan decode-as Linux: TShark 4.x + prlimit; panduan tangkapan
Sinyal logika terekam Anotasi dekoder, rentang sampel, dan diagnostik Linux: sigrok-cli 0.7.2 + prlimit; panduan sinyal
Paket dan sumber daya Inventaris berkas, digest, plist, struktur paket Apple, dan sumber daya yang diekstrak Panduan artefak dan JavaScript, aplikasi Apple
Perilaku proses Keluaran terminal, interaksi, pengamatan proses keluar dan sistem berkas, serta perbandingan eksekusi Linux/macOS dengan PTY native; perekaman proses
Biner Go Versi compiler tertanam, modul, penggantian dan pengaturan build Pemeriksaan statis bawaan ELF/PE/thin Mach-O; Tidak perlu memasang Go
Database SQLite Tabel, kolom, indeks, view, trigger dan baris terpilih dari tabel biasa Snapshot database/WAL lokal; Node.js 24.x >=24.15 atau 26+ dengan batas SQLite native
Objek kode GPU Target CUDA/HIP, parameter dan sumber daya kernel terpilih, teks PTX yang dipertahankan Pemeriksaan statis bawaan ELF/PE/fatbin/CUBIN/PTX; GPU
Berkas model Metadata GGUF / safetensors, deklarasi tensor dan total turunan Pemeriksaan header; hash seluruh berkas opsional; GGUF / safetensors
Metadata IL2CPP Citra assembly Unity global-metadata.dat, nama tipe/metode dan rentang indeks Dekode statis versi 24, 27, 29, 31, 39; tanpa Unity
Godot PCK Inventaris dan ekstraksi arsip, header/direktori asli dan identitas konten terpilih Format statis 2, 3, 4; tanpa Godot
Tanda tangan APK Penanda tangan v1/v2/v3/v3.1, sidik jari sertifikat, rotasi kunci dan konsistensi internal digest Pemeriksaan statis bawaan; inspect_apk_signature

Pemeriksaan JavaScript dan .NET statis membaca berkas yang disediakan tanpa menjalankan aplikasinya. Perekaman runtime menjalankan atau berinteraksi dengan target yang dipilih menggunakan izin pengguna Anda. Setiap panduan runtime menjelaskan dampaknya.

Untuk pemeriksaan biner native secara offline, REA juga mendukung GNU objdump dan Rizin yang Anda sediakan sendiri. Panduan alat rekayasa balik menjelaskan penyiapan penyedia, perintah CLI, dan keterbatasan Evidence. REA tidak menginstal atau memperbarui kedua penyedia tersebut.

Format native dan dukungan sistem host berbeda-beda menurut penyedia. Lihat penyiapan Hopper dan Ghidra, panduan IDA, Kuna, dan dukungan eksperimental Ghidra di Windows.

Ghidra juga mendukung analisis DOS 16-bit.

Untuk biner berukuran besar, tingkatkan batas waktu startup menggunakan REA_GHIDRA_STARTUP_TIMEOUT_MS / REA_HOPPER_STARTUP_TIMEOUT_MS.

Untuk memilih penyedia, lihat panduan CLI.

Periksa ketersediaan rilis untuk mengetahui fitur yang ditambahkan setelah rilis npm terbaru.

Contoh Penggunaan

Ilustrasi contoh penggunaan DX-Ball sound-pan, Notion clipboard-bridge, dan TH04 bullet-ring

DX-Ball: merekonstruksi perhitungan sound-pan

Ikuti pemanggilan suara hingga ke fungsi pembantu yang mengubah posisi menjadi nilai pan, periksa instruksinya, lalu ubah pseudocode yang belum lengkap menjadi C. Hasil rekonstruksi tersebut lolos pada 3.205 kasus x86 asli dan mereproduksi seluruh 63 byte fungsi hasil kompilasi.

Baca studi kasus · Repositori rekonstruksi

Notion: menelusuri jembatan clipboard Electron

Temukan API clipboard pada renderer, telusuri jalurnya melalui preload dan IPC hingga ke proses utama, lalu periksa format clipboard kaya.

Baca studi kasus

TH04: memulihkan perhitungan bullet-ring DOS

Periksa instruksi 16-bit dari gim PC-98 asli, pulihkan perhitungan sudut tetap dan sudut yang diarahkan, lalu bandingkan C++ hasil rekonstruksi dengan keluaran historis kompiler.

Baca studi kasus · Repositori rekonstruksi

Bangun lingkungan RL dengan REA

Rekam sesi aplikasi web, ubah API menjadi alat, lalu ekspor lingkungan yang dapat digunakan agen AI. Jalankan dengan AgentEnv dan tambahkan tugas serta pemeriksaan reward untuk pelatihan RL atau evaluasi.

Panduan membangun lingkungan · Tonton demo di X

Jika Anda telah menggunakan REA untuk menganalisis sesuatu yang menarik, kami ingin melihat hasilnya. Bagikan kasus Anda melalui issue atau pull request, sertakan target, pertanyaan Anda, bagaimana REA membantu, dan apa yang Anda temukan.

Membangun lingkungan RL

Buat lingkungan lokal agar agen AI dapat berlatih tugas seperti mencari issue atau membuat folder tanpa menjalankan aplikasi aslinya. Gunakan untuk pembelajaran penguatan (RL) atau menguji kemampuan agen menyelesaikan tugas.

REA mengubah permintaan dan respons API yang direkam menjadi alat yang dapat dipanggil agen. Lingkungan memakai data rekaman dan hanya mendukung perubahan yang dampaknya dikonfirmasi oleh rekaman.

Setelah menyiapkan REA di agen, ganti URL contoh dan tugas folder di bawah sesuai aplikasi Anda:

Gunakan REA untuk membuat lingkungan RL dari aplikasi web uji saya di
http://127.0.0.1:3000.
Cakup daftar, pembuatan, penggantian nama, dan penghapusan folder. Boleh membuat
dan menghapus folder uji, tetapi jangan ubah data yang sudah ada.
Simpan dalam folder bernama my-env, periksa operasi yang berfungsi, dan beri tahu cara menjalankannya.
Gunakan baris perintah

Gunakan perintah ini jika Anda sudah punya file rekaman permintaan dan respons aplikasi di browser. Untuk menjalankan hasilnya, Anda juga perlu AgentEnv dan Docker.

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

REA mengekspor lingkungan yang dapat dijalankan dengan uji dasar untuk memeriksa bahwa lingkungan mulai dan merespons. Hubungkan ke framework RL untuk menetapkan tujuan tugas, menambahkan pemeriksaan reward, dan menjalankan pelatihan.

Panduan membangun lingkungan · Referensi lingkungan · Tonton demo di X

Lingkungan aplikasi desktop

REA juga dapat membuat lingkungan untuk aplikasi desktop Linux yang digunakan agen melalui tangkapan layar, mouse, dan keyboard. Dari permintaan satu baris, seperti "Buatkan lingkungan Gnote tempat agen menambahkan minyak zaitun ke catatan daftar belanja", agen Anda memasang aplikasi di komputer build lokal, menulis tugas, mengekspor lingkungan, dan memeriksa tugas di komputer baru. Mesin yang membuatnya memerlukan Linux di amd64 atau arm64, Docker, dan versi framework agentenv yang ditetapkan panduan.

Siapkan lingkungan aplikasi desktop

FAQ

Agen apa saja yang dapat menggunakan REA?

Agen apa pun yang mendukung server MCP lokal dapat menggunakan REA. Proses penyiapan mengonfigurasi agen yang didukung. Klien lain dapat menggunakan pendaftaran MCP manual.

Apakah saya memerlukan Hopper, Ghidra, IDA, atau Kuna?

Analisis native mendalam menggunakan salah satu dari keempatnya. Pemeriksaan JavaScript dan .NET statis dapat dilakukan tanpa mesin analisis native.

Proses penyiapan dapat memasang Hopper setelah memperoleh persetujuan. Ghidra, IDA, dan Kuna menggunakan instalasi yang sudah tersedia. Lihat penyiapan penyedia.

Apakah saya harus menjalankan Hopper terlebih dahulu?

REA akan menjalankan Hopper saat suatu operasi membutuhkannya. Di macOS, dialog saat pertama kali dijalankan mungkin meminta Anda memilih mode demo atau mengaktifkan lisensi.

Lihat startup dan pemecahan masalah Hopper.

Apa fungsi memasang skill dari skills.sh?

Skill tersebut menyediakan instruksi investigasi untuk agen Anda. Gunakan npx rea-agents setup untuk mendaftarkan server MCP REA dan memasang instruksi yang sesuai, lalu mulai ulang agen Anda.

Lihat instalasi khusus skill.

Kode seperti apa yang dihasilkan REA?

Analisis native menghasilkan pseudocode dan assembly. Analisis JavaScript/Electron memulihkan modul dan hubungan antarmodulnya. Agen Anda menggunakan temuan tersebut untuk menulis dan menguji implementasi. Contoh penggunaan menyediakan contoh yang telah dikerjakan.

Apakah REA mengunggah aplikasi saya?

REA menganalisis target secara lokal. Agen Anda menerima hasil alat, sedangkan penyedia model yang digunakannya memiliki kebijakan datanya sendiri.

Apa yang harus saya lakukan jika menemukan bug?

Perbarui terlebih dahulu. Rilis terbaru mungkin sudah memperbaiki masalah tersebut.

Untuk CLI yang dipasang melalui npm install --global atau bun add --global:

rea update

Untuk penyiapan agen melalui npx:

npx rea-agents@latest setup

Jika Anda menggunakan agen, selesaikan pembaruan penyiapan dan mulai ulang agen tersebut.

Coba kembali tugas yang sama. Jika masalah masih terjadi, buat issue dengan menyertakan versi REA, jenis target, langkah-langkah untuk mereproduksi masalah, dan keluaran kesalahan.

Dokumentasi

Mulailah dengan panduan praktik di situs web.

Untuk mengetahui opsi, prasyarat, dan kontrak hasil secara tepat:

Laporkan kerentanan melalui SECURITY.md.

Riwayat Bintang

🎉 400.000 bintang GitHub, terima kasih!

Terima kasih kepada semua orang yang menggunakan REA, melaporkan bug, meminta fitur, menguji build, dan berkontribusi dalam perbaikan.

Riwayat bintang GitHub REA

Penafian

Lihat DISCLAIMER.md untuk panduan penggunaan yang bertanggung jawab.

REA ditujukan untuk penelitian, pendidikan, interoperabilitas, pelestarian perangkat lunak, dan analisis perangkat lunak yang Anda miliki atau diizinkan untuk Anda periksa, sesuai hukum.

The project's position on illegal or unauthorized use covers all REA versions, distribution channels, and platforms; each copy retains its applicable licenses.

Kontribusi

Kami sangat menghargai bantuan Anda untuk REA! Buat issue untuk melaporkan bug atau menyarankan fitur, atau kirim pull request untuk meningkatkan kode atau dokumentasi.

Lihat CONTRIBUTING.md untuk penyiapan pengembangan dan pemeriksaan, pengujian untuk tahapan verifikasi, serta peta arsitektur untuk struktur proyek.

Lisensi

MIT

REA-authored code is licensed under MIT. Third-party material retains its own licenses and copyright notices; see Third-party notices for the dependency inventory, preserved license texts, and external-tool terms.

You must legally obtain and be authorized to use commercial tools, including IDA Pro / Hex-Rays decompilers, Hopper, and JEB, under their applicable licenses. REA grants no tool license, key, or activation entitlement. Trials and demos remain subject to vendor terms, including user, feature, automation, and output sharing restrictions. Cracked copies, stolen keys, unauthorized key sharing, and bypassing license restrictions are not authorized. This guidance does not amend MIT or third-party licenses.