Reko (по-шведски: «порядочный, услужливый») — декомпилятор двоичных файлов машинного кода. Этот проект находится в свободном доступе по лицензии GNU General Public License.
Проект состоит из внешнего интерфейса, основного механизма декомпиляции и серверной части, которые помогают ему достичь своих целей. На момент написания статьи существуют командная строка, графический интерфейс Windows и интерфейс ASP.NET. Механизм декомпилятора получает входные данные от внешнего интерфейса в виде отдельных исполняемых файлов или файлов проекта декомпилятора. Файлы проекта Reko содержат дополнительную информацию о двоичном файле, полезную для процесса декомпиляции или форматирования вывода. Затем механизм декомпилятора приступает к анализу входного двоичного файла.
Представление карты байтов загруженного двоичного исполняемого файла ARM | Декомпилированный вид загруженного двоичного исполняемого файла ARM |
Reko стремится поддерживать декомпиляцию различных процессорных архитектур и форматов исполняемых файлов с минимальным вмешательством пользователя. Полный список см. на странице поддерживаемых двоичных файлов.
Обратите внимание, что многие лицензии на программное обеспечение запрещают декомпиляцию или другой обратный инжиниринг двоичных файлов машинного кода. Используйте этот декомпилятор только в том случае, если у вас есть законные права на декомпиляцию двоичного файла (например, если двоичный файл принадлежит вам).
Официальные релизы публикуются каждые несколько месяцев на Github и SourceForge. Пользователи, которые не могут или не хотят собирать Reko самостоятельно, могут загрузить выходные данные построителя интеграции Cirrus CI или построителя интеграции Github Actions. Естественно, вы можете собрать проект из исходников: см. «Взлом» ниже.
Сначала на вашем компьютере должно быть установлено следующее необходимое программное обеспечение:
.NET 6.0 (https://www.microsoft.com/net/download/dotnet-framework-runtime)
Загрузите соответствующий установщик и запустите его на целевом компьютере.
После установки вы можете либо загрузить двоичные файлы непосредственно с сервера интеграционной сборки, либо собрать Reko из исходников (см. Hacking
ниже).
Чтобы познакомиться с различными возможностями Reko, вы можете прочитать руководство пользователя. Если вас интересует внутренняя работа проекта, посетите вики.
Вы можете сообщить о любых проблемах, с которыми вы столкнулись, или задать любой вопрос, связанный с Reko, в системе отслеживания проблем. Вы также можете попробовать чат Reko Gitter.im. Reko создан усилиями волонтеров в их свободное время, поэтому соответствующим образом скорректируйте свои ожидания по времени ответа.
Чтобы собрать reko, начните с клонирования https://github.com/uxmal/reko. Вы можете использовать IDE или командную строку для создания файла решения Reko-decompiler.sln
. Для компиляции Reko требуется .NET 6.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
содержит клиент GUI для пользовательского интерфейса Windows Forms. Подкаталог AvaloniaShell
содержит клиент GUI для кроссплатформенного пользовательского интерфейса Avalonia (все еще находится в стадии разработки). CmdLine
— драйвер командной строки.
Последние выпуски смотрите в журнале выпусков.