YouMind
Увійти

Як перетворити Opus 5.5 на машину для зворотного інжинірингу за 8 кроків (повний курс)

@hanakoxbt
АНГЛІЙСЬКА13 жовт. 2026 р.
194K
139
14
15
332

Коротко

Цей посібник детально описує 8-етапний робочий процес із використанням інструменту REA та Opus 5.5 для зворотного інжинірингу програмного забезпечення. Він охоплює маршрутизацію цілей, встановлення, розвідку, декомпіляцію, обробку обфускації, аналіз роєм, чисте кімнатне відновлення та верифікацію.

8 жовтня 2026 року репозиторій, про який три місяці тому ніхто не чув, вийшов на перше місце у GitHub trending.

Він називається REA (Reverse Engineer Anything — «зворотна інженерія будь-чого») і дає твоєму агенту справжній дизасемблер.

**Збережи це — якщо хочеш розгорнуту версію, повний курс із 20 уроків на цю тему вже доступний за адресою**

reacourse.xyz

Він проведе тебе від порожнього термінала до перебудованого коду, який проходить власні тести на паритет, причому кожна команда й кожен промпт будуть виписані. ПОЧИНАЙ ЗВІДСИ.

Того тижня реакція скрізь була однаковою.

Метью Берман описав це трьома словами, і їх побачили 3,6 мільйона людей.

https://x.com/MatthewBerman/status/2108245653843509415

REA — це open-source MCP-сервер плюс CLI, який підключається до Claude Code, Codex, Cursor та Gemini CLI.

Ліцензія MIT, автор — morluto, перший реліз вийшов 12 липня 2026 року, а через три місяці проєкт подолав позначку у 100 000 зірок на GitHub.

Усе працює локально, і кожен висновок маркується як спостереження, умовивід або невідоме, із зазначенням адреси чи місця виклику.

Ось весь шлях від закритого бінарника до перебудованого коду, яким володієш ти, у восьми кроках.

Hanako - inline image

Перед кроками: що люди вже випустили з його допомогою

Головне тут не сам інструмент, а те, що з'явилося за чотири тижні.

ArtCraft перебудували сім додатків Adobe як безкоштовні open-source альтернативи, а потім взялися за Office з WordCraft, GridCraft та DeckCraft.

Вже дванадцять додатків, усі написані з нуля на Rust, нативні для трьох платформ, і всі, крім одного, також працюють у вкладці браузера через WebAssembly.

Щодо ігор, докази ще конкретніші:

  • Super Mario Sunshine отримала нативний порт на ПК: близько 365 годин роботи агента та 17,3 млрд токенів із одночасним використанням Claude і Codex
  • Гру Touhou перебудували за допомогою агентів, про що написано в офіційному блозі REA: 697 функцій, 696 точних збігів, грабельна версія приблизно за 12 днів
  • Автентифікатор Aegis (3077 класів) розібрали й перебудували, і всі 133 тестові сценарії пройшли успішно
  • Функцію панорамування звуку з DX-Ball переписали на C, вона пройшла 3205 оригінальних x86-тестів і відтворила всі 63 скомпільовані байти

Зверни увагу, чим цей список не є.

Ніхто не зламував перевірку ліцензії, ніхто не публікував чужий вихідний код.

Кожен із цих випадків — це відновлена поведінка, задокументована й переписана новим кодом.

01. Визнач тип цілі, перш ніж щось відкривати

Цей інструмент поширився не тому, що добре читає щось одне. Він читає майже все і показує докази для кожного свого твердження.

https://x.com/RoundtableSpace/status/2109165852578992582

Цей список — також твоє перше рішення. Найпростіший спосіб втратити пів дня — тягнутися до дизасемблера, коли ціль є Electron-додатком, JavaScript якого лежить прямо перед тобою.

Направ REA на Electron, і за секунди отримаєш модулі, імпорти та межі IPC без жодного рушія, тоді як нативний Mach-O або ELF відкриє базу Hopper — глибший, але повільніший шлях.

Розуміння того, з чим ти працюєш, економить години, тому зроби це завданням свого першого промпту.

markdown
1Я хочу зрозуміти, як працює [ФУНКЦІЯ] у [ДОДАТКУ], який знаходиться за шляхом [АБСОЛЮТНИЙ ШЛЯХ].
2 Спочатку скажи мені, що це за ціль (нативна, Electron/JS, .NET, Go, APK, WASM),
3 і обери відповідний інструмент REA, щоб її відкрити. Поки що не починай глибокий аналіз.
4 Потім опиши її одним абзацом: на чому вона побудована, якого розміру, де б ти
5 шукав насамперед [ФУНКЦІЮ]. Тримай спостереження, умовиводи та невідомі окремо.
Hanako - inline image

Те, про що майже ніхто не згадує: багато ігор на Unity постачають свою логіку як .NET, і REA читає .NET без додаткового рушія.

Саме тому куплена гра зі Steam перетворюється з бінарника на редагований C# за пів години.

І кожен Electron-додаток на твоєму комп'ютері можна прочитати просто зараз, навіть не запускаючи його:

bash
1# де живе JavaScript
2macOS: /Applications/<App>.app/Contents/Resources/app.asar
3Windows: C:\Users\<you>\AppData\Local\Programs\<App>\resources\app.asar
4 npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

02. Встанови за п'ять хвилин, потім додай один рушій

Працює це не завдяки розумному промпту. А завдяки справжньому рушію дизасемблювання, підключеному до агента, — саме так це описав один із розробників.

https://x.com/techNmak/status/2108431092462338178

Налаштування реєструє MCP-сервер у твоєму агенті та встановлює відповідний навик для робочого процесу.

Воно показує кожну зміну перед записом і створює резервні копії всього, до чого торкається.

node -v # Node 22.19+, 24.11+ або 26+. Версії 23 і 25 не підтримуються

bash
1npx rea-agents@latest setup # реєструє MCP-сервер, запитує перед записом
2npm install --global rea-agents # коротка команда rea, назавжди
3rea --help
4# перезапусти агента, потім перевір. doctor лише перевіряє, він ніколи нічого не змінює
5npx -y rea-agents@latest doctor --client claude_code --json

Перезапуск важливіший, ніж здається: сесію термінала треба починати заново, а десктопні додатки потребують повного виходу, бо простого закриття вікна недостатньо.

Потім додай рушій лише для того, що ти дійсно хочеш читати:

Один файл варто написати ще до першої реальної цілі: правила гри у claude-md.

Аналізуй лише те, чим володієш; маркуй кожне твердження як спостереження, умовивід або невідоме; вказуй адресу, на яку воно спирається; і ніколи не вважай відновлену поведінку завершеною без пройденого тесту.

bash
1# нативні програми та ігри: Ghidra 12.1.x і JDK 21 або новіше
2 export GHIDRA_INSTALL_DIR=/absolute/path/to/ghidra_12.1.4_PUBLIC
3 export JAVA_HOME=/absolute/path/to/jdk-21
4 npx -y rea-agents@latest doctor --provider ghidra --json
5
6 # Android-додатки: JDK 17+ і jadx-headless-mcp 0.7.1
7 export REA_JADX_MCP_JAR=/absolute/path/jadx-headless-mcp-0.7.1-all.jar
8 rea inspect-android-package /path/App.apk
9
10 # байт-код смарт-контрактів, поки що лише Linux x64
11 rea inspect-evm-interface ./runtime.hex hex --json

03. Розвідка: карта йде перед кодом

Поки що не відкривай жодної функції.

Одна команда покаже, на якій машині працює бінарник, скільки функцій усередині та весь читабельний текст, прихований у ньому.

Цей текст — найшвидша підказка за весь день: ендпоінти, рядки помилок і назви функцій описують додаток ще до того, як ти прочитаєш будь-яку логіку.

json
1rea.open_binary { path: "/Applications/Target.app/Contents/MacOS/Target" }
2rea.binary_overview {}
3 arch: arm64
4 functions: 1,284 identified
5 entry: _main @ 0x1000051c0
6
7rea.search { query: "http" }
8 0x10004a2c0 "https://api.target.app/v3/sync"
9 0x10004a300 "Authorization: Bearer "
10
11rea.xrefs { address: "0x100012ab0" }
12 147 references -> core config loader, called everywhere
Hanako - inline image

REA підраховує, скільки разів викликається кожна функція, і ця кількість є числом перехресних посилань

Функція, яку викликають 147 разів, — це архітектура додатка; та, що викликається двічі, — допоміжна, і може почекати.

Сортуй за цим числом і рухайся вниз, ніколи не за порядком у файлі, бо порядок у файлі — це те, через що люди втрачають вихідні всередині бінарника, у якому було лише чотири цікаві функції.

04. Декомпілюй одну функцію, а потім змусь Opus назвати в ній усе

Декомпілятор перетворює сирі машинні інструкції назад на щось, схоже на C.

Виходить грубо: імена на кшталт var_28, приведення типів усюди, заплутані розгалуження. І грубо — це нормально, бо моделі достатньо того, щоб це можна було прочитати.

bash
1# одна функція за адресою, у форматі JSON, який можна зберегти й використовувати повторно
2rea decompile /path/to/Target 0x100012ab0 --provider hopper --json > fn_config.json
3
4# або знайди її за назвою та простеж посилання
5rea function /path/to/Target parseConfig --provider hopper --json
6rea xrefs /path/to/Target 0x100012ab0 --provider hopper --json

Потім передай цей результат Opus 5.5 і змусь його зробити те, чого не може дизасемблер:

markdown
1Ось декомпільований псевдокод функції зі 147 перехресними посиланнями.
2
31. Перейменуй кожну змінну відповідно до того, як вона використовується, і поясни її призначення одним реченням.
42. Перелічи структури даних, які вона читає та записує, і назви патерн, якому вони відповідають.
53. Перепиши це як чистий ідіоматичний код тією мовою, на яку вказують угоди про виклик.
64. Познач будь-яку відсутню обробку помилок, валідацію вхідних даних або перевірку безпеки.
7
8Думай на рівні зусиль xhigh перед відповіддю. Позначай усе, в чому не впевнений.
Hanako - inline image

Opus 5.5 має п'ять рівнів зусиль: low, medium, high, xhigh та max.

Medium оглядає й навігує, high анотує звичайні функції, max потрібен для обфускованого коду та складної роботи з вказівниками.

Рівень зусиль — це головний регулятор якості в цьому пайплайні, але більшість залишає значення за замовчуванням, а потім звинувачує модель.

Декомпіляція показує, що робить код, модель пояснює чому і дає імена для його перебудови.

05. Обфускація: зламай те, що варто ламати, решту обмеж бюджетом

Деякі додатки створені, щоб протистояти саме тому, що ти робиш: логіка перемішана, рядки зашифровані, фейкові розгалуження додані суто для того, щоб витрачати твою увагу.

Це єдине місце, де навіть найкраща модель буксує, і для цього є виміряні цифри.

Elastic Security Labs направила Claude Opus на скремблер Tigress у 20 завданнях, і з цього випливають два уроки.

Невдала спроба коштує приблизно вдвічі дорожче за успішну, бо модель продовжує намагатися, перш ніж здатися, а багатошарова обфускація дала нульовий результат, тому «довбати» її — найдорожчий спосіб нічого не дізнатися.

Hanako - inline image

Практичне правило — бюджет на функцію, а не на сесію.

Спершу прибери сміття, бо безкоштовний інструмент Caveman видаляє близько 75% декомпільованого мотлоху, і тоді модель витрачає увагу на реальну логіку.

markdown
1Ця функція виглядає обфускованою. Працюй на рівні зусиль max.
2
31. Визнач наявні техніки (сплощення потоку керування, непрозорі предикати,
4 мертвий код, шифрування рядків, розбиття функцій) і вкажи на кожну з них тут.
52. Усунь їх: видали мертві гілки, обчисли непрозорі предикати, розплутай
6 диспетчеризацію, розшифруй вбудовані рядки, якщо ключ можна відновити. Покажи, що залишилось.
73. Оціни впевненість від 1 до 10. Якщо нижче 6, назви сумнівні частини та контекст, який
8 допоможе їх вирішити. Не здогадуйся мовчки.

06. Рій: один контролер, багато працівників

Один чат не зможе якісно прочитати 500 функцій.

Він забуває те, що бачив сорок функцій тому, називає ту саму структуру трьома різними способами й починає тихо суперечити собі.

Рішення — не більше контексту, а розподіл ролей: контролер, який роздає роботу, і працівники, кожен з яких бере одну функцію й зупиняється.

Hanako - inline image
markdown
1Ти — контролер зворотної інженерії. Карта функцій знаходиться у functions.json
2(адреса, назва, розмір, xref_count).
3
41. Згрупуй функції за близькістю у графі викликів; впорядкуй групи за кількістю перехресних посилань.
52. Передай кожну групу працівнику. Ніколи не аналізуй функції самостійно.
63. Вставляй уже визначені структури в кожне завдання, щоб назви залишалися узгодженими.
74. Якщо впевненість нижче 6, зроби другий прохід із контекстом від сусідніх вирішених функцій.
85. Відстежуй загальні витрати токенів і повідомляй про них після кожної групи.
9
10Ти — працівник. Ти отримуєш одну декомпільовану функцію та структури, визначені на даний момент.
11Повертай точно: адресу, призначення, впевненість (1-10), structs_used, structs_new,
12clean_source, flags. Використовуй наявні назви структур, ніколи не вигадуй другу назву для
13структури, яку тобі вже дав контролер. Лише одна функція. Зупинись, коли закінчиш.

REA також постачається з керованими робочими процесами, вбудованими в MCP-сервер, які більшість людей ніколи не відкриває:

  • - investigate_feature — простежити функцію від виявлення до конкретних методів
  • - compare_application_versions — порівняти два релізи й побачити, що дійсно змінилося
  • - verify_reconstruction — перевірити свою перебудову на основі збережених доказів
  • - audit_residual_unknowns — перелічити те, що досі не доведено

07. Чиста кімната: стіна між двома контекстами — це і є продукт

Перебудова методом «чистої кімнати» означає, що ти копіюєш те, що робить додаток, і ніколи — код усередині нього.

Зробиш правильно — і те, що ти випустиш, буде повністю твоїм; помилишся — і ти нестимеш чужі авторські права у власному репозиторії.

Це метод, якому 40 років, а не винахід 2026-го.

На початку 80-х Compaq перебудувала BIOS від IBM саме так, витративши близько 1 мільйона доларів, і це єдина причина, чому існують ПК інших брендів.

У 1992 році суд у справі Sega проти Accolade постановив, що розбирання коду може бути добросовісним використанням, якщо це єдиний спосіб зрозуміти, як він працює, а у 2000 році Sony програла справу Sony проти Connectix з рахунком 3-0, бо готовий емулятор не містив жодного рядка коду Sony.

Інший бік межі такий само зрозумілий: у 2011 році Джордж Хотц уклав мирову угоду з Sony і погодився припинити діяльність після того, як root-ключ PS3 став публічним.

Hanako - inline image

Чотири правила тримають тебе на правильному боці, і команда ArtCraft автоматично перевіряє всі чотири під час кожної збірки:

  • - Спостерігай, ніколи не копіюй. Запускай ціль як чорний ящик, роби скріншоти лише її вікна, ніколи не вставляй її код у свій проєкт
  • - Специфікації, а не вихідний код. Формати файлів беруться з публічних стандартів (OOXML — це ECMA-376 / ISO 29500, плюс опубліковані специфікації RTF та ODF), а ніколи з читання парсера конкурента
  • - Лише оригінальні ресурси. Кожна іконка, шрифт, шаблон і звук намальовані кодом, перебувають у суспільному надбанні або мають відкриту ліцензію, із записом у файлі атрибуції
  • - Розділи дві задачі. Один агент відновлює поведінку й пише специфікацію, інший контекст реалізує код виключно за цією специфікацією

Останнє правило — те, яке люди пропускають, і саме воно є справжньою межею.

Твій агент-дослідник за визначенням «заражений», бо він читав декомпілят, а твій агент-будівельник не повинен цього робити.

markdown
1На основі завершеного аналізу напиши специфікацію «чистої кімнати» для реалізації.
2
3Описуй ЛИШЕ ПОВЕДІНКУ: кожен публічний інтерфейс, модель даних, кожну видиму користувачу
4функцію як тестовану вимогу, формати файлів для читання та запису, обробку помилок.
5
6НЕ включай адреси, зсуви, декомпільовані назви змінних, асемблерний код або будь-що,
7скопійоване з оригіналу. Розробник, який ніколи не бачив бінарник, має мати змогу
8реалізувати сумісну версію лише на основі цього документа.
9
10Розділи: Архітектура, Модель даних, Публічний API, Формати файлів, Тестові сценарії.

Робота за описом — це не лише юридичний захист.

Це дозволяє тобі ухвалювати правильні рішення для своєї мови, замість того щоб успадковувати ті, які хтось прийняв два десятиліття тому, — саме тому WordCraft місцями швидший за Word.

08. Перевір паритет, а потім випусти через MCP

У тебе ніколи не було оригінального вихідного коду, тому ти не можеш порівнювати його порядково.

Ти порівнюєш поведінку: однакові вхідні дані для обох збірок, однакові результати на виході.

markdown
1Створи тестовий стенд для порівняння поведінки оригінального бінарника та моєї перебудови.
2
3Згенеруй 50 вхідних даних: 30 нормальних, 10 граничних (порожні, максимальний розмір, unicode), 10 помилкових
4(некоректні, пошкоджені). Прогони кожне через обидві версії, порівняй побайтово, де можливо,
5і семантично в інших випадках. Повідом про відсоток збігів, розбіжності та серйозність кожної
6(косметична / поведінкова / критична). Збережи у report.md.

«Я думаю, що воно збігається» — не доказ, а відсоток збігів — так. І цей звіт — найпереконливіше, що ти можеш поставити на початку поста про реліз.

Потім випусти перебудову так, як це зробили REA та додатки Craft — у вигляді MCP-сервера, щоб агент наступної людини міг керувати твоїм інструментом так само, як ти керував REA.

Дай кожній функції зрозумілу назву та встановлення в один рядок, і кожна дія стане іменованою командою, яку клік, гаряча клавіша та агент викликають однаково.

bash
1claude mcp add wordcraft -- wordcraft-cli mcp
2
3> Open report.docx, make every heading 14pt bold, export to PDF
4 ok select.all-headings -> 12 selected
5 ok format.font-size 14 . format.bold
6 ok export report.pdf (selectable text, bookmarks kept)

Обмеження та п'ять помилок, які вбивають вихідні

REA не може торкнутися сервера, бо він читає те, що є на твоїй машині, а код, який працює на серверах компанії, тобі ніколи не постачався.

Декомпільований код — це реконструкція, а не оригінальний вихідний код, і саме тому існує крок 08.

C++ бінарники без символів залишаються набагато складнішими за ігри на Unity .NET, а комерційні рушії досі потребують справжніх ліцензій.

  • - Відкривати дизасемблер для Electron-додатка, коли JavaScript лежить прямо перед тобою
  • - Дампити весь бінарник до прочитання зведення, що ховає логіку і збільшує рахунок
  • - Читати функції в порядку файлу, а не за кількістю перехресних посилань
  • - Дозволяти моделі копіювати код у твою перебудову, що руйнує «чисту кімнату» однією вставкою
  • - Випускати продукт без звіту про паритет

Чесна правда щодо юридичного боку, оскільки половина X тиждень кричала про піратство: читати додаток на власному комп'ютері — це навчання, перебудова функції на основі її поведінки — це те, як індустрія працює з 80-х, а копіювання коду чи злам платних функцій — це те, за що подають до суду.

Вивчай оригінал, випускай своє.

За кожним із цих восьми кроків стоїть окремий урок на

reacourse.xyz , з точними промптами, типовими помилками та моментами, де цей підхід перестає працювати.

Раніше закритий вихідний код означав, що ти ніколи не дізнаєшся.

Тепер це означає: покажи мені докази.

Більшість людей продовжуватимуть щомісяця платити за функцію, яку вони могли б зрозуміти за один вечір і перебудувати за вихідні.

Ті небагато, хто навчиться читати програмне забезпечення, створюватимуть усе, що захочуть.

Підписуйся на мене та мій Telegram-канал:

https://t.me/+75nMf005jRpjMDU1

Збереження в один клік

Використовуйте YouMind для AI-глибокого читання віральних статей

Зберігайте джерела, ставте цілеспрямовані запитання, підсумовуйте аргументи та перетворюйте віральні статті на корисні нотатки в одному AI-робочому просторі.

Дослідити YouMind
Для авторів

Перетворіть свій Markdown на охайну статтю для 𝕏

Коли ви публікуєте власні лонгріди, зображення, таблиці та блоки коду роблять форматування в 𝕏 складним. YouMind перетворює повну чернетку в Markdown на чисту статтю для 𝕏, готову до публікації.

Спробувати Markdown для 𝕏

Більше патернів для аналізу

Останні віральні статті

Переглянути більше віральних статей