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

52 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: Reverse Engineer Anything

Един MCP сървър за обратно инженерство на бинарни файлове, приложения и поведение по време на изпълнение.

Харесва ви функция в някое приложение? Разберете как работи, чак до ниво бинарен код.

Версия в npm Каталог с MCP инструменти Изисквания за Node.js skills.sh Лиценз MIT Discord

morluto%2Frea | Trendshift

Уебсайт · Ръководства · Примери

Присъединете се към общността на REA в Discord

Бърз старт · Как работи REA · Какво можете да анализирате · Примери · Създаване на RL среди · Често задавани въпроси · Документация

npx rea-agents setup

Important

Изтегляйте REA от morluto/rea, rea.tools или npm пакета rea-agents. Следвайте връзките за инсталиране и издания от тези официални източници. Подобно име на хранилище или копиран README не доказва, че дадено изтегляне е официално.


REA стартира своя мост за анализ в Hopper, докато изследва нативен бинарен файл



Discord
Присъединете се към общността за обратно инженерство

Discord · Въпроси и отговори · Покажете какво сте направили


Видели сте функция в приложение и искате същата във вашия продукт? Помолете агента си да я проучи с REA. Той може да изследва приложението без изходния му код, да обясни как работи функцията, да покаже доказателствата и да изгради подобна версия за вашия проект.

REA свързва агента ви с инструменти за изследване на нативни бинарни файлове, JavaScript и Electron приложения, .NET асемблита и уебсайтове. Същите инструменти можете да използвате и от терминала. Анализът се извършва локално, а резултатите включват доказателствата и ограниченията зад всеки извод.

Настройката регистрира REA в агента ви и инсталира съответните инструкции за работния процес. Нативният анализ може да използва вече инсталиран Hopper, Ghidra, IDA или Kuna; по желание настройката може да инсталира Hopper след ваше одобрение. Статичният анализ на JavaScript не изисква двигател за нативен анализ.

Посетете уебсайта на REA за инструкции за настройка, илюстрирани ръководства и реални казуси.

Бърз старт

В Linux стартирането на Ghidra, JADX и инструментите за фърмуер, както и статичният анализ на JavaScript/Electron, изискват съвместима с procps команда ps в PATH на REA за проверките кой процес на кого принадлежи. Стъпките за отстраняване на проблема са в docs/getting-started/installation.md, в раздела „Linux owned-process prerequisite“.

Настройте агента си

След като имате инсталирани Node.js и npm, изпълнете:

npx rea-agents setup

Изберете агентите си, прегледайте предложените промени и ги одобрете. Настройката добавя MCP сървъра на REA и съответните инструкции за работния процес, като прави резервни копия на съществуващата конфигурация. След това рестартирайте агента. Настройката записва директно избраната среда за изпълнение и входния скрипт на REA. Ако сте получили REA чрез инструмент за изпълнение на пакети (package runner), не изтривайте записа му в кеша. Изтегляйте пакета от доверена директория извън целевия проект. Подробности за инсталирането и отстраняването на проблеми има в ръководството за настройка по-долу.

Настройката поддържа Claude Code, Codex, Cursor, Gemini CLI, Grok Build и други агенти. Вижте инсталиране и настройка за конфигуриране на доставчици на анализ, ръчна регистрация на MCP и инсталиране на плъгина за Claude Code/Codex.

По подразбиране MCP използва компактни входни схеми, за да заема по-малко от контекста. Задайте REA_MCP_INPUT_SCHEMA_PROFILE=full в MCP регистрацията си, когато са ви нужни пълните описания на полетата и подробностите за вложената валидация. И двата профила запазват пълния набор от инструменти и каноничната валидация на сървъра. Вижте „Compact input schema profile“ в ръководството за MCP договорите.

По подразбиране се обявяват пълните изходни схеми. Ако клиентът ви ограничава размера на цялата рамка tools/list, задайте REA_MCP_OUTPUT_SCHEMA_PROFILE=compact, за да ограничите всяка обявена изходна схема, или off, за да пропуснете изходните схеми изцяло. И двете настройки запазват каноничната валидация от страна на сървъра и пълните структурирани резултати. Вижте „Output schemas“ в ръководството за MCP договорите.

Попитайте агента си

Разбери как работи търсенето в приложението Notes, покажи ми доказателствата и
изгради подобна функция за моя проект.

Заменете Notes с целевото си приложение и функцията, която искате да разберете.

Използвайте терминала

Изследвайте директорията на разархивирано JavaScript/Electron приложение или ASAR архив:

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

Резултатът включва модули, импорти, границите на Electron и доказателствата за тях. Заменете пътя с вашата цел, например "D:/apps/example" в Windows.

За да инсталирате командата rea за редовна употреба:

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

За нативен анализ първо конфигурирайте доставчик на анализ. Вижте ръководството за CLI и Evidence за нативните команди, избора на доставчик, моментните снимки (snapshots) и скриптирането.

Обновяване на REA

REA се променя бързо и новите издания често съдържат поправки на грешки. Поддържайте инсталацията си актуална.

За CLI, инсталиран с npm install --global или bun add --global:

rea update

rea --update е псевдоним на същия проверен процес и приема същите глобални флагове за изхода. Използвайте rea update, когато го комбинирате с други опции на командата.

Командите за обновяване запазват общо най-много 4 MiB от stdout и stderr. Твърде големите отговори с метаданни се отхвърлят след приключване на командата; подробните (verbose) инсталации продължават с ограничена диагностика. Изходът за напредъка, предназначен за хора, се съобразява с обратното налягане (backpressure) на терминала и изчаква изпратените записи да завършат.

Глобалните обновявания чрез Bun изискват Bun 1.2.17 или по-нова версия. При по-стара версия първо обновете Bun ръчно и след това изпълнете rea update.

За да опресните регистрациите в агентите и умението (skill), изпълнете командата за настройка, която обновяването отпечатва.

Ако използвате npx, обновете настройката на агента си с:

npx rea-agents@latest setup

Прегледайте промените от настройката и рестартирайте агента. За еднократни CLI команди използвайте npx rea-agents@latest, последвано от командата. С Bun използвайте bunx rea-agents@latest вместо npx rea-agents@latest.

Как работи REA

Агентът ви извиква REA чрез MCP, за да изследва целта и да проследи съответния код. REA връща констатации заедно с доказателствата за тях. Агентът ги използва, за да задава допълнителни въпроси, да обяснява поведението или да напише и тества реализация. CLI командите използват същите работни процеси.

Процес на изследване с REA: агентът ви пита за локална цел, REA я изследва и проследява с инструменти за анализ, а агентът използва върнатия код, препратките и неизвестните, за да обясни, реализира и тества.

Отворете фигурата в пълен размер.

Какво можете да анализирате

REA изисква Node.js 22.x (>=22.23.4), 24.x (>=24.22.1) или 26.12.1+, както и npm. Допълнителните инструменти и поддържаните операционни системи зависят от целта:

Цел Какво връща REA Изисквания и ръководство
Инсталирани настолни приложения Кандидати за среда за изпълнение, поддържащи файлове, маркери на компоненти и следващи проверки Вградена ограничена проверка на директории и заглавни части; настолни приложения
Нативни бинарни файлове Псевдокод, асемблер, низове, символи, извиквания и препратки Hopper, Ghidra, IDA или Kuna; нативен анализ
Структура на ELF (офлайн) Секции, сегменти, оригинални символи/релокации и кандидати за статични защитни механизми Предоставен от вас pwntools на Linux x64; диагностика на бинарни файлове
Go бинарни файлове Вградена версия на компилатора, модули, замени и настройки на компилацията Вградена статична проверка на ELF/PE/thin Mach-O; не изисква инсталиран Go
GPU кодови обекти CUDA/HIP цели, избрани параметри и ресурси на ядрата, запазен PTX текст Вградена статична проверка на ELF/PE/fatbin/CUBIN/PTX; GPU кодови обекти
Файлове на модели Метаданни на GGUF / safetensors, декларации на тензори и изчислени общи стойности Вградена проверка на заглавните части; по желание хеш на целия файл; файлове на модели
IL2CPP метаданни Образи на асемблита от Unity global-metadata.dat, имена на типове и методи и диапазони на индекси Вградено статично декодиране на версии 24, 27, 29, 31 и 39; не изисква Unity
Godot PCK Опис и извличане на архива, оригинални данни от заглавната част и директорията и идентичност на избрано съдържание Вградена статична поддръжка на формати 2, 3 и 4; не изисква Godot
Rust бинарни файлове Вградени от cargo-auditable имена на crate-ове, версии, източници и връзки между зависимостите Вградена статична проверка на ELF/PE/thin Mach-O; Rust бинарни файлове
PE сертификати Записи Authenticode WIN_CERTIFICATE и полета за самоличност на подписващия от PKCS#7/X.509 Вградена статична проверка на PE; PE сертификати
PE импорти Имена на импортирани и отложено зареждани (delay-load) DLL библиотеки, ординали, IAT RVA адреси и pefile хеш на импортите Вградена статична проверка на PE; PE импорти
Windows преки пътища Цел, аргументи, работна директория и данни от Shell Link Вградена статична проверка на LNK; Windows преки пътища
ELF бележки Собственици и типове на PT_NOTE/SHT_NOTE, полета GNU build-id и ABI-tag Вградена статична проверка на ELF; ELF бележки
Защита на бинарни файлове PIE, NX, RELRO, CFG и свързаните с тях флагове в заглавните части на ELF, PE и Mach-O Вградена статична проверка на заглавните части; защита на бинарни файлове
Сривове на Apple (IPS) Метаданни от .ips, нишки, образи, регистри и документирани класове сривове Вградена статична проверка на JSON; Apple IPS
Модули на ядрото на Linux Ключове от .modinfo, CRC стойности от __versions, наличие на this_module и подпис в края на файла Вградена статична проверка на ELF; модули на ядрото
Erlang BEAM IFF блокове (chunks), атоми, експорти, импорти, ламбди и заглавната част Code Вградена статична проверка на BEAM; Erlang BEAM
WASM артефакти Валидация, секции, точни WAT форми на импортите/експортите и декодиран WAT Предоставен от вас WABT 1.0.42; inspect_wasm_artifact
EVM байткод Селектори на функции, отмествания в байтове, изведени аргументи и променливост (mutability) Локален raw/hex носител на Linux x64; ръководство за офлайн EVM
SQLite бази данни Таблици, колони, индекси, изгледи, тригери и избрани редове от обикновени таблици Локална моментна снимка на базата/WAL; Node.js 24.x >=24.15 или 26+ с нативни ограничения на SQLite
Записани сривове в Linux Сурови бележки, регистри/сигнали на всяка записана нишка и по желание кандидати за съпоставяне с файлове в паметта Предоставен от вас pwntools на Linux x64; по желание GDB/pwndbg; записани сривове
JavaScript / Electron Модули, импорти, source maps, маршрути, IPC и връзки с нативни добавки Node.js и npm; Linux: съвместима с procps команда ps; анализ на приложения
Уебсайтове Структура на страниците, скриптове, мрежови наблюдения и заявени екранни снимки Браузър от семейството на Chrome; анализ в браузъра
Запазени мрежови записи Заявки, отговори, открити полезни данни (payloads) и местоположения в изходния код HAR или Fiddler Everywhere SAZ; mitmdump на Linux за нативен mitmproxy; ръководство за мрежови записи
.NET асемблита Метаданни, CIL инструкции, декларирани нативни зависимости и сравнения между компилации Няма (само статичен анализ); ръководство за управляван код
Android APK файлове Декларации в манифеста, класове, декомпилирани методи и препратки JADX без графичен интерфейс и пълен JDK на Linux/macOS/Windows x64; ръководство за Android
Подписи на APK Подписващи v1/v2/v3/v3.1, отпечатъци на сертификати, ротация на ключове и вътрешна съгласуваност на хешовете Няма (само статичен анализ); inspect_apk_signature
Android устройства Устройства, пакети, процеси, логове, дъмпове, екранни снимки и прехвърляне на APK/файлове Предоставен от вас adb (емулатор или физическо устройство); ръководство за ADB
JEB проекти Единици на проекта от двигателя на JEB, хешове на артефакти и псевдокод на типове/методи Стартиран от вас JEB клиент, който обслужва MCP и е избран чрез REA_JEB_MCP_URL; ръководство за JEB
Android ресурси Декодиран манифест, таблици с низове, локали и данни за версията Предоставен от вас стартер за Apktool; ръководство за ресурси
Flutter приложения Хеш на Dart snapshot, хешове на библиотеките за всяко ABI и произход на компилацията на двигателя Няма (статичен анализ на APK); ръководство за Flutter
Фърмуер Региони, резултати от извличането и предаване към нативен анализ Binwalk / Unblob на Linux; ръководство за фърмуер
Записани пакети Избрани полета, повтарящи се стойности, филтри и правила decode-as Linux: TShark 4.x + prlimit; ръководство за записи
Обобщения на пакети Крайни точки, DNS, TLS SNI, разпределение по протоколи и HTTP заявки Предоставени от вас tshark и capinfos (проверено на Linux); ръководство за pcap
Записани логически сигнали Анотации от декодерите, диапазони от семпли и диагностика Linux: sigrok-cli 0.7.2 + prlimit; записи на сигнали
Пакети и ресурси Описи на файлове, хешове, plist файлове, устройство на Apple пакети (bundles) и извлечени ресурси Ръководство за артефакти и JavaScript, Apple приложения
Поведение на процеси Изход в терминала, взаимодействия, наблюдения на изхода от процеса и на файловата система и сравнения между изпълнения Linux/macOS с нативен PTY; запис на процеси
PyInstaller изпълними файлове Членове на CArchive, версия на Python, входни скриптове и извлечен байткод Няма (само статичен анализ); пакетирани Python приложения
Изпълними файлове на Deno Виртуални файлове, входна точка, опции и размер на npm снимката Няма (само статичен анализ); изпълними файлове на Deno

Статичната проверка на JavaScript и .NET чете предоставените файлове, без да стартира приложението. Записът по време на изпълнение стартира избраната цел или взаимодейства с нея с правата на вашия потребител; всяко ръководство за анализ по време на изпълнение описва какво точно прави.

За офлайн проверка на нативни бинарни файлове REA поддържа и предоставени от вас GNU objdump и Rizin. Вижте ръководството за инструменти за обратно инженерство за настройка на доставчиците, CLI командите и ограниченията на Evidence. REA не инсталира и не обновява нито един от двата доставчика.

Поддържаните нативни формати и операционни системи зависят от доставчика. Вижте настройката на Hopper и Ghidra, ръководството за IDA (включително незадължителен нативен MCP мост), ръководството за декомпилатора Kuna и експерименталната поддръжка на Ghidra за Windows. Ghidra поддържа и анализ на 16-битов DOS код. За големи бинарни файлове увеличете времето за стартиране на доставчика с REA_GHIDRA_STARTUP_TIMEOUT_MS или REA_HOPPER_STARTUP_TIMEOUT_MS. За избора на доставчик вижте ръководството за CLI. Проверете наличността в изданията за функции, добавени след последното издание в npm.

Примери

Илюстрации на примерите DX-Ball (звукова панорама), Notion (мост за клипборда) и TH04 (пръстен от куршуми)

DX-Ball: реконструиране на изчислението на звуковата панорама

Проследете извикване на звук до помощната функция, която превръща позицията в панорама, изследвайте инструкциите и превърнете непълния псевдокод в C. Реконструкцията минава 3 205 тестови случая спрямо оригиналния x86 код и възпроизвежда всичките 63 байта на компилираната функция.

Прочетете казуса · Хранилище с реконструкцията

Notion: проследяване на моста за клипборда в Electron

Открийте API-то за клипборда в renderer процеса, проследете го през preload скрипта и IPC до главния процес и изследвайте формата за форматирано съдържание в клипборда.

Прочетете казуса

TH04: възстановяване на изчислението на пръстена от куршуми в DOS

Изследвайте 16-битовите инструкции на оригиналната игра за PC-98, възстановете изчисленията на фиксираните и насочените ъгли и сравнете реконструирания C++ код с изхода на историческия компилатор.

Прочетете казуса · Хранилище с реконструкцията

Създавайте RL среди с REA

Запишете сесия в уеб приложение, превърнете неговото API в инструменти и експортирайте среда, която AI агент може да използва. Стартирайте я с AgentEnv, след което добавете задачи и проверки за награда за RL обучение или оценка.

Прочетете ръководството · Гледайте видеото

Ако сте използвали REA за нещо интересно, ще се радваме да го видим. Споделете случая си в issue или pull request, като включите целта, въпроса си, как ви помогна REA и какво открихте.

Създаване на RL среди

Дайте на AI агент локална среда, в която да упражнява задачи като намиране на issue или създаване на папка, без да стартира оригиналното приложение. Използвайте я за обучение с подсилване (reinforcement learning, RL) или за да проверите колко добре агентът изпълнява задачи.

REA превръща записаните API заявки и отговори в инструменти, които агентът може да извиква. Средата използва записаните данни и поддържа промени само когато записът потвърждава ефекта им.

След като REA е настроен в агента ви, заменете примерния URL адрес и задачите с папки по-долу със свои:

Използвай REA, за да изградиш 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 настолно приложение: агентът го управлява чрез снимки на екрана, мишка и клавиатура. От кратка заявка агентът инсталира приложението, създава задача, експортира средата и я проверява на нов компютър. За изграждането са необходими Linux на amd64 или arm64, Docker и версията на agentenv, посочена в ръководството.

Настройка на среди за настолни приложения

Често задавани въпроси

Кои агенти могат да използват REA?

Всеки агент, който поддържа локални MCP сървъри. Настройката конфигурира поддържаните агенти; другите клиенти могат да използват ръчна MCP регистрация.

Нужен ли ми е двигател за нативен анализ?

Задълбоченият нативен анализ използва Hopper, Ghidra, IDA или Kuna в зависимост от целта и операцията. Статичната проверка на JavaScript и .NET работи без двигател за нативен анализ. Настройката може да инсталира Hopper след ваше одобрение; Ghidra, IDA и Kuna се използват от вече съществуващите ви инсталации. Вижте настройката на доставчиците за възможностите и поддържаните от тях цели.

Трябва ли първо да стартирам Hopper?

REA стартира Hopper, когато дадена операция се нуждае от него. В macOS при първо стартиране може да се появи диалогов прозорец, който ви пита дали да изберете демо режим, или да активирате лиценза си. Завършете този диалог в същата потребителска сесия преди първата си CLI/MCP операция или задача, която ще се изпълнява без надзор. При нужда отворете Hopper ръчно. Вижте стартиране и отстраняване на проблеми с Hopper.

Какво прави инсталирането на умението (skill) от skills.sh?

Умението дава на агента ви инструкции как да провежда изследвания. Използвайте npx rea-agents setup, за да регистрирате MCP сървъра на REA и да инсталирате съответните инструкции, след което рестартирайте агента. Вижте инсталиране само на умението.

Какъв код връща REA?

Нативният анализ връща псевдокод и асемблер. Анализът на JavaScript/Electron възстановява модулите и връзките между тях. Агентът ви използва тези констатации, за да напише и тества реализация; примерите показват цялостни разработени случаи.

Качва ли REA приложението ми някъде?

REA анализира целите локално. Агентът ви получава резултатите от инструментите, а доставчикът на модела, който агентът използва, има собствена политика за данните.

Какво да направя, ако попадна на грешка?

Първо обновете; възможно е скорошно издание вече да я е поправило.

За CLI, инсталиран с npm install --global или bun add --global:

rea update

За настройка на агента чрез npx:

npx rea-agents@latest setup

Ако използвате агент, извършете опресняването на настройката и го рестартирайте. Опитайте отново същата задача. Ако проблемът продължава, отворете issue, като посочите версията на REA, типа на целта, стъпките за възпроизвеждане и изхода с грешката.

Документация

Започнете с практическите ръководства на уебсайта. За точните опции, предварителните изисквания и договорите за резултатите:

Съобщавайте за уязвимости чрез SECURITY.md.

История на звездите

🎉 400 000 звезди в GitHub — благодарим ви!

Благодарим на всички, които използват REA, съобщават за грешки, предлагат нови функции, тестват версии и допринасят с поправки.

История на звездите на REA в GitHub

Отказ от отговорност

Вижте DISCLAIMER.md за насоки за отговорна употреба.

Позицията на проекта относно незаконната или неразрешената употреба обхваща всички версии, канали за разпространение и платформи на REA; всяко копие запазва приложимите за него лицензи.

REA е предназначен за законни изследвания, обучение, оперативна съвместимост, съхраняване на софтуер и анализ на софтуер, който притежавате или имате разрешение да изследвате.

Принос към проекта

Ще се радваме на помощта ви с REA! Отворете issue, за да съобщите за грешка или да предложите функция, или изпратете pull request, за да подобрите кода или документацията.

Вижте CONTRIBUTING.md за настройка на средата за разработка и проверките, тестване за видовете проверки и картата на архитектурата за избрани слоеве и пътища на зависимостите.

Лиценз

MIT

Кодът, написан за проекта REA, е лицензиран под MIT. Материалите от трети страни запазват собствените си лицензи и бележки за авторски права; вижте бележките за трети страни за списъка със зависимости, запазените текстове на лицензите и условията на външните инструменти.

Трябва да сте придобили законно търговските инструменти и да имате право да ги използвате, включително IDA Pro / декомпилаторите на Hex-Rays, Hopper и JEB, съгласно приложимите им лицензи. REA не предоставя лиценз, ключ или право на активиране за нито един инструмент. Пробните и демо версиите остават обект на условията на производителя, включително ограниченията за брой потребители, функции, автоматизация и споделяне на резултатите. Кракнати копия, откраднати ключове, неразрешено споделяне на ключове и заобикаляне на лицензионни ограничения не са разрешени. Тези насоки не изменят лиценза MIT или лицензите на трети страни.