
Reko — это бинарный дизассемблер.
Reko (швед. «порядочный, обязательный») — это декомпилятор для двоичных машинных кодов.
Проект распространяется свободно на условиях GNU General Public License.
Проект состоит из внешних интерфейсов, ядра декомпилятора и вспомогательных модулей (бэкендов), которые помогают достичь поставленных целей. На момент написания существуют интерфейсы командной строки, графический интерфейс для Windows и ASP.NET-интерфейс. Ядро декомпилятора получает входные данные от внешних интерфейсов в виде отдельных исполняемых файлов или файлов проекта декомпилятора. Файлы проекта Reko содержат дополнительную информацию о двоичном файле, полезную для процесса декомпиляции или форматирования вывода. Затем ядро декомпилятора приступает к анализу входного двоичного файла.
![]() Карта байтов загруженного ARM-исполняемого файла |
![]() Декомпилированное представление загруженного ARM-исполняемого файла |
Reko стремится поддерживать декомпиляцию различных архитектур процессоров и форматов исполняемых файлов с минимальным вмешательством пользователя. Полный список см. на странице поддерживаемых двоичных файлов.
Обратите внимание, что многие лицензии на программное обеспечение запрещают декомпиляцию или иной реверс-инжиниринг их машинных кодов. Используйте этот декомпилятор только в том случае, если у вас есть законные права на декомпиляцию двоичного файла (например, если двоичный файл является вашим собственным).
Официальные релизы публикуются каждые несколько месяцев на Github и SourceForge. Пользователи, которые не могут или не хотят собирать Reko самостоятельно, могут загрузить результат работы интеграционного сборщика Cirrus CI или интеграционного сборщика Github Actions. Естественно, вы можете собрать проект из исходников: см. раздел «Разработка» ниже.
Предварительно необходимо установить на вашу машину следующее программное обеспечение:
Загрузите соответствующий установщик и запустите его на целевой машине.
После установки вы можете либо загрузить бинарные файлы напрямую с сервера интеграционной сборки, либо собрать Reko из исходников (см. раздел «Разработка» ниже).
Чтобы ознакомиться с различными возможностями Reko, вы можете прочитать руководство пользователя. Если вас интересует внутреннее устройство проекта, обратитесь к вики.
Вы можете сообщить о любых проблемах или задать любой вопрос, связанный с Reko, в трекере задач. Вы также можете попробовать чат-комнату Reko Gitter.im. Reko создаётся силами волонтёров в свободное время, поэтому соответствующим образом отрегулируйте ожидания по времени ответа.
Для сборки Reko начните с клонирования https://github.com/uxmal/reko. Вы можете использовать IDE или командную строку для сборки файла решения Reko-decompiler.slnx. Для компиляции Reko требуется .NET 8.0 SDK. Если вы используете IDE, воспользуйтесь последней версией Visual Studio 2022. Если вы хотите собрать через командную строку, используйте команду
dotnet msbuild -p:Platform={platform} -p:Configuration={config} -v:m -t:build_solution -m ./src/BuildTargets/BuildTargets.csproj
Замените {config} на Debug или Release, а {platform} на x64 или x86.
Примечание: сообщите нам, если у вас всё ещё не получается скомпилировать, и мы поможем решить проблему.
Если вы заинтересованы в участии в разработке, обратитесь к дорожной карте для поиска направлений для исследования. В Wiki содержится дополнительная информация о внутренней работе проекта Reko. Пожалуйста, ознакомьтесь с руководством по стилю.
Вы получите предупреждения или ошибки при загрузке решения в Visual Studio, если на вашей машине для разработки не установлен набор инструментов WiX. Вы можете безопасно игнорировать предупреждения: набор WiX используется только для создания установочных пакетов MSI. Вам не потребуется собирать установщик, если вы уже можете скомпилировать проект: процесс сборки копирует все необходимые файлы в один каталог. Если вы хотите собрать установщик MSI с помощью цепочки инструментов WiX, вы можете загрузить его здесь: http://wixtoolset.org/releases/
В зависимости от того, что вы делаете, Visual Studio может попытаться пересобрать NativeProxy, который зависит от CMake. Вы можете либо установить CMake и добавить его в PATH, либо отключить проект в Visual Studio.
Наличие установленного CMake как части Visual Studio достаточно для запуска msbuild из Developer Command Prompt, но не при сборке изнутри VS, если вы не добавили его в глобальный PATH. Внешняя установка CMake позволяет добавить его в PATH во время установки.
ПРИМЕЧАНИЕ: в некоторых версиях Visual Studio есть проблема, которая может проявиться при загрузке проекта. Вы заметите её, если Visual Studio зависает на «Выполнение фоновых задач» и не даёт собрать проект. Обходной путь — щёлкнуть правой кнопкой мыши проект «NativeProxy» в обозревателе решений и выбрать «Выгрузить проект». После этого проект сможет загрузиться и собраться корректно. Эта проблема не возникает при сборке из командной строки.
Папка решения Drivers содержит исполняемые файлы, которые служат пользовательскими интерфейсами. Подкаталог WindowsDecompiler содержит клиент с графическим интерфейсом Windows Forms. Подкаталог AvaloniaShell содержит клиент с графическим интерфейсом для кроссплатформенного Avalonia (ещё в разработке). CmdLine — драйвер командной строки.
См. журнал релизов для последних выпусков.