Реверс-инжиниринг становится агентным.
На GitHub набирает популярность проект REA — Reverse Engineer Anything. Он подключает coding agents вроде Claude Code и Codex к инструментам реверс-инжиниринга и позволяет обычным языком попросить: найди реализацию функции, объясни её работу и покажи доказательства.
Сразу оговорюсь: REA — не новый «универсальный» декомпилятор. Это скорее координатор. Для нативных приложений он управляет Ghidra, Hopper или IDA, а JavaScript, Electron и .NET может исследовать собственными средствами. В результате агент получает псевдокод, строки, связи между функциями и другие свидетельства, на которых строит вывод.
Чтобы чуть больше погрузиться в тему, можно прочитать Aayush Tyagi — Reverse Engineer Anything (REA): Can AI Really Crack Closed Code?.
В тесте Analytics Vidhya с помощью REA исследовали алгоритм, по которому (мой любимый) Obsidian ранжирует результаты поиска в Quick Switcher. Сначала авторы вручную сформулировали проверяемую гипотезу, а затем позволили агенту изучить приложение.
REA сузил 3,9 МБ JavaScript до нужной функции и восстановил формулу ранжирования. Что прямо-таки хорошо. Активная часть расследования заняла 7 минут 8 секунд и обошлась в $1,83. Но особенно интересен не результат, а обнаруженная проблема: расчёты агента оказались верными, однако словесное описание формулы содержало неоднозначность off-by-one. Если бы реализацию делали только по тексту, не сверяясь с таблицей проверки, в неё попала бы ошибка.
Именно здесь находится реальная ценность REA. Он не избавляет человека от проверки, но превращает ответ модели из уверенного рассказа в проверяемое техническое утверждение. Можно увидеть, откуда взялся вывод, воспроизвести расчёты и заметить расхождение. Это меня впечатлило.
Проект вызвал большое обсуждение на Hacker News. Одни участники отмечают высокое качество полученных декомпиляций, другие спрашивают, что именно REA добавляет к обычной работе coding agent с Ghidra. Обсуждают и более широкий эффект: что произойдёт, когда восстановление старых игр, закрытых форматов и отдельных функций станет доступно не только узким специалистам. Тут я потираю ручки и дожидаюсь, когда мне вернут мои любимые шахматы.
Похоже, реверс-инжиниринг не становится полностью автоматическим. Но он становится агентным: человек формулирует вопрос и критерии проверки, специализированные инструменты добывают факты, а модель связывает их в понятное объяснение и новую реализацию. И это гораздо интереснее очередного обещания «восстановить любое приложение одной кнопкой», ну и самое важное — реальнее.