--- name: rea-full-course description: REA (Reverse Engineer Anything, morluto/rea) — полный практический курс. Установка, движки (Ghidra/IDA/Hopper/JADX), guided-воркфлоу, пак промтов, ограничения. Использовать для реверса Electron/JS, .NET, APK, бинарников, EVM-байткода через AI-агента. --- # REA — Reverse Engineer Anything (полный курс) REA = MCP-сервер + CLI (npm `rea-agents`), который даёт AI-агенту (Claude Code, Codex, Cursor, Gemini CLI, Hermes) навык реверс-инжиниринга с доказательствами: функция, файл, вызов + что осталось неизвестным. MIT, работает локально, ничего не загружает наружу. Первый релиз 12.07.2026, 100K+ звёзд за 3 месяца. Полный текст курса-источника: `research-what-we-did/rea-full-course-source.md`. ## Установка ```bash node -v # нужен Node 22.19+ / 24.11+ / 26+ (23 и 25 НЕ поддерживаются) npx rea-agents@latest setup # интерактивно: выбор агента → план изменений → approval → бэкап конфигов npx -y rea-agents@latest doctor --client claude_code --json # только проверка npm install --global rea-agents && rea --help # глобальная команда rea update # фиксы выходят почти ежедневно ``` Промт для авто-установки агентом: ``` Install REA and connect it to this coding agent using npx rea-agents@latest setup. Show me the setup plan for approval, then verify the installation. ``` После установки — ПОЛНЫЙ рестарт агента (для desktop-приложений недостаточно закрыть окно). ## Что читает и какие движки нужны | Цель | Движок | |---|---| | Electron/JS desktop (Notion, Slack, Discord, Obsidian) | ничего, из коробки | | Сайты (структура, скрипты, сеть) | любой Chrome-family браузер | | HAR-файлы | ничего | | .exe / Mach-O / DOS-игры (псевдокод, asm, строки) | Ghidra 12.1.x + JDK 21 (GHIDRA_INSTALL_DIR, JAVA_HOME) или Hopper или IDA | | .NET (включая Unity-игры — игровая логика часто .NET) | ничего | | Android APK | JDK 17+ и jadx-headless-mcp 0.7.1 (REA_JADX_MCP_JAR) | | EVM-байткод смарт-контрактов | только Linux x64 | | Прошивки, WASM, Go-бинарники | встроенные парсеры | Electron-приложения лежат: Win `C:\Users\\AppData\Local\Programs\\resources\app.asar`, Mac `.app/Contents/Resources/app.asar`, Linux `/opt//resources/app.asar`. Анализ без запуска приложения: ```bash npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json ``` ## Guided-воркфлоу (зашиты в MCP, почти никто не знает) - `investigate_feature` — фича от обнаружения до конкретных функций - `compare_application_versions` — что реально изменилось в апдейте - `verify_reconstruction` — сверка своей пересборки с сохранёнными доказательствами - `trace_crash` — креш → пути кода - `audit_residual_unknowns` — что ещё не доказано - `prepare_bounded_process_capture` — план безопасного runtime-эксперимента Цикл профи: **investigate → spec → build → verify** ``` Use REA to investigate how [feature] works in [app]. Write SPEC.md: behavior, inputs, outputs, edge cases, no copied code. Then build it from SPEC.md in ./my-version, write tests from the observed behavior, and run them until they pass. ``` ## Пак промтов (копипаст в агент с установленной REA) Первый тест (2 минуты, официальное training-приложение): ``` Download https://rea.tools/examples/notes-example.zip into a new example folder and unpack it. Use REA to find what happens when I click Export notes. Show where notes.csv is written, which fields it contains, and the relevant files and lines. ``` Аудит APK: ``` Use REA on this APK. List every permission, every analytics or tracking SDK, and every domain the app talks to. Show the class and method for each finding. ``` Проверка токена (байткод → state-функции): ``` Use REA on this contract bytecode. List every function that can change state. Flag anything that looks like mint, blacklist, pause, fee change or owner-only transfer. Mark what is confirmed and what is inferred. ``` (`rea inspect-evm-interface ./runtime.hex hex --json`; имена функций — догадки из байткода, красный флаг = «проверь глубже») Дифф версий: ``` Use REA's compare_application_versions workflow on [old version] and [new version] of [app]. Tell me what actually changed, with evidence. ``` Реал-тайм фичи: ``` Figure out how Discord shows who's typing in real time, show me the proof, and build something similar for my project. ``` Реконструкция игры: ``` Reconstruct a game from its executable and test it against the original. ``` ## Ограничения (честно) - Сервер не трогает — читается только то, что на твоей машине. Банк не взломает. - Декомпилированный код — реконструкция, не оригинальный исходник → шаг verify обязателен. - Стрипанные C++-бинарники намного жёстче, чем Unity .NET-игры. - Агент может отказаться на прошивках/консолях (правила безопасности модели). - IDA/Hopper/JEB — свои лицензии, крякнутые копии запрещены. ## Юридическая рамка (clean room) Учись на оригинале → пиши СПЕК (поведение, не код) → собирай своё с нуля. Так работали Compaq (BIOS IBM, ~$1M), Sega v. Accolade (1992, fair use), Sony v. Connectix (2000, 3-0). За копирование чужого кода/кряк платных фич/публикацию декомпилята — прилетает иск (Sony v. geohot 2011). ## Эталонные кейсы - Aegis authenticator: 3077 классов → найден генератор 6-значных кодов → пересборка прошла 133/133 теста - DX-Ball (1996): sound-pan восстановлен на C, 3205 тест-кейсов оригинала, 63/63 байта компиляции - Touhou: 697 функций, 696 точных совпадений, играбельно за ~12 дней - Super Mario Sunshine PC-порт: ~365 агенто-часов, 17.3B токенов - ArtCraft: 7 приложений Adobe как clean-room Rust-альтернативы (альфа) ## Уроки из практики (пересборка Touhou) - Чёткая цель + чёткие критерии приёмки для агента. - Заметки и проверки — в git, чтобы следующая сессия продолжила. - Любое объяснение агента = гипотеза, проверять. - Тестируй свои тесты: сломанное сравнение однажды пропустило неправильную функцию. ## Локальная практика (наш Windows-стенд, 14.10.2026) - rea 6.4.0: `tools/node-26.7.0-win32-x64/rea.cmd`; MCP `rea` в Hermes config = 170 tools. - IDA attached-режим: env `REA_IDA_MCP_CONFIG` → ida-mcp.json (ida-pro-mcp 1.4.0 legacy, IDA GUI с плагином на :13337). Native-анализ бинарей — ТОЛЬКО через attached IDA. - Windows-лимиты: binary-layout/pwntools = Linux-only; Go/Rust/WASM/EVM/SQLite-парсеры встроенные. - Прогнано: `analyze-javascript-application` на TeleSender (90MB Electron) → Evidence-бандл 41878 узлов, JSON. - Монетизация навыка: bug bounty (пайплайны 8 MCP + 300 инструментов + Ghidra/radare2/Frida окупаются), перенос легаси-софта, связывание тулов, восстановление утраченных исходников для компаний.