reverse-skills-max: initial public release (restored, redacted, hardened)
This commit is contained in:
130
our-skills/rea-full-course/SKILL.md
Normal file
130
our-skills/rea-full-course/SKILL.md
Normal file
@@ -0,0 +1,130 @@
|
||||
---
|
||||
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\<ty>\AppData\Local\Programs\<App>\resources\app.asar`, Mac `<App>.app/Contents/Resources/app.asar`, Linux `/opt/<App>/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 окупаются), перенос легаси-софта, связывание тулов, восстановление утраченных исходников для компаний.
|
||||
Reference in New Issue
Block a user