* 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>
52 KiB
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 сървър за обратно инженерство на бинарни файлове, приложения и поведение по време на изпълнение.
Харесва ви функция в някое приложение? Разберете как работи, чак до ниво бинарен код.
Уебсайт · Ръководства · Примери
Бърз старт · Как работи REA · Какво можете да анализирате · Примери · Създаване на RL среди · Често задавани въпроси · Документация
npx rea-agents setup
Important
Изтегляйте REA от morluto/rea, rea.tools или npm пакета rea-agents. Следвайте връзките за инсталиране и издания от тези официални източници. Подобно име на хранилище или копиран README не доказва, че дадено изтегляне е официално.
|
Присъединете се към общността за обратно инженерство 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 изисква 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: реконструиране на изчислението на звуковата панорама
Проследете извикване на звук до помощната функция, която превръща позицията в панорама, изследвайте инструкциите и превърнете непълния псевдокод в 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, типа на целта, стъпките за възпроизвеждане и изхода с грешката.
Документация
Започнете с практическите ръководства на уебсайта. За точните опции, предварителните изисквания и договорите за резултатите:
- Инсталиране и настройка: регистриране на агенти, конфигуриране на доставчици, обновяване и деинсталиране.
- Готовност и отстраняване на проблеми: диагностика на конкретен агент или двигател за анализ.
- CLI и Evidence: команди, избор на доставчик, моментни снимки, импорт/експорт и изходни статуси.
- MCP договори и подсказки за агенти: резултати от инструментите, сесии и насочвани изследвания.
- Каталог с инструменти: генериран списък с инструменти, доставчици и CLI команди.
- Пътна карта: планирана работа и проследяване на възможностите.
Съобщавайте за уязвимости чрез SECURITY.md.
История на звездите
🎉 400 000 звезди в GitHub — благодарим ви!
Благодарим на всички, които използват REA, съобщават за грешки, предлагат нови функции, тестват версии и допринасят с поправки.
Отказ от отговорност
Вижте DISCLAIMER.md за насоки за отговорна употреба.
Позицията на проекта относно незаконната или неразрешената употреба обхваща всички версии, канали за разпространение и платформи на REA; всяко копие запазва приложимите за него лицензи.
REA е предназначен за законни изследвания, обучение, оперативна съвместимост, съхраняване на софтуер и анализ на софтуер, който притежавате или имате разрешение да изследвате.
Принос към проекта
Ще се радваме на помощта ви с REA! Отворете issue, за да съобщите за грешка или да предложите функция, или изпратете pull request, за да подобрите кода или документацията.
Вижте CONTRIBUTING.md за настройка на средата за разработка и проверките, тестване за видовете проверки и картата на архитектурата за избрани слоеве и пътища на зависимостите.
Лиценз
Кодът, написан за проекта REA, е лицензиран под MIT. Материалите от трети страни запазват собствените си лицензи и бележки за авторски права; вижте бележките за трети страни за списъка със зависимости, запазените текстове на лицензите и условията на външните инструменти.
Трябва да сте придобили законно търговските инструменти и да имате право да ги използвате, включително IDA Pro / декомпилаторите на Hex-Rays, Hopper и JEB, съгласно приложимите им лицензи. REA не предоставя лиценз, ключ или право на активиране за нито един инструмент. Пробните и демо версиите остават обект на условията на производителя, включително ограниченията за брой потребители, функции, автоматизация и споделяне на резултатите. Кракнати копия, откраднати ключове, неразрешено споделяне на ключове и заобикаляне на лицензионни ограничения не са разрешени. Тези насоки не изменят лиценза MIT или лицензите на трети страни.