Menu

Tree [51a09c] master /
 History

HTTPS access


File Date Author Commit
 .ci 2024-02-18 Stefano Moioli Stefano Moioli [ebf3fa] Refactoring
 .github 2024-05-31 Stefano Moioli Stefano Moioli [e8faff] fix macOS CI (github actions)
 .vscode 2022-12-09 throwaway96 throwaway96 [eed7f6] Fix VS Code tasks
 cmake 2024-03-21 John Källén John Källén [f4d813] Fix: repaired the x86 build (with the help of @...
 doc 2024-02-14 John Källén John Källén [103d03] Maintenance: corrected command line instructions
 external 2021-03-22 John Källén John Källén [0a5e04] Fix: TypedConstantRewriter
 src 2024-07-22 John Källén John Källén [51a09c] Fix: build break
 subjects 2024-07-22 John Källén John Källén [6756c3] Maintenance: move *.osc files into their own di...
 web 2016-01-22 uxmal uxmal [df90cb] SSA2 support for sequence commenced.
 .cirrus.yml 2024-02-15 Stefano Moioli Stefano Moioli [9ce282] CI: dotnet multi-framework (6.0 and 8.0)
 .gitattributes 2021-07-31 John Källén John Källén [bd53d3] Tweaking .gitattributes to exclude subjects sub...
 .gitignore 2022-12-09 throwaway96 throwaway96 [f80ef8] Restore VS Code files
 AUTHORS 2023-12-04 gregoral gregoral [fea0d2] Fix: RISC-V CSRR instruction definition
 CMakeLists.txt 2024-02-15 Stefano Moioli Stefano Moioli [9ce282] CI: dotnet multi-framework (6.0 and 8.0)
 CONTRIBUTING.md 2016-12-19 Roger Roger [fa4ba0] Linted the remaining files.
 COPYING 2017-09-17 Roger Roger [821bd6] Update GPLv2 text copy to the latest version
 COPYING.rtf 2017-08-08 John Källén John Källén [c2f0a6] Correct license text in MSI installer (fixes #464)
 INSTALL 2018-07-13 John Källén John Källén [af272e] INSTALL points to doc/build.md
 NEWS.md 2017-01-12 John Källén John Källén [27163b] Preparing for version-0.6.2.0 release
 README.md 2022-09-21 John Källén John Källén [81336f] Doc: update build documentation
 TODO.md 2016-12-19 Roger Roger [fa4ba0] Linted the remaining files.

Read Me

reko - a general purpose decompiler.

Cirrus CI Build Status
GitHub workflow status
Join us on Discord
Join the chat at https://gitter.im/uxmal/reko

Reko (Swedish: "decent, obliging") is a decompiler for machine code binaries.
This project is freely available under the GNU General Public License.

The project consists of front ends, core decompiler engine, and back
ends to help it achieve its goals. A command-line, a Windows GUI,
and a ASP.NET front end exist at the time of writing. The decompiler
engine receives inputs from the front ends in the form of either
individual executable files or decompiler project files. Reko
project files contain additional information about a binary file,
helpful to the decompilation process or for formatting the output.
The decompiler engine then proceeds to analyze the input binary.


Byte map view of a loaded ARM binary executable

Decompiled view of a loaded ARM binary executable

Reko has the ambition of supporting decompilation of various
processor architectures and executable file formats with minimal user
intervention. For a complete list, see the
supported binaries
page.

Please note that many software licenses prohibit decompilation or
other reverse engineering of their machine code binaries. Use this
decompiler only if you have legal rights to decompile the binary
(for instance if the binary is your own.)

Downloading Reko

Official releases are published every few months on Github
and SourceForge.
Users who can't or won't build Reko themselves can download the output
of the Cirrus CI integration builder or the Github Actions integration builder.
Naturally you can build the project from the sources: see "Hacking"
below.

Installing Reko

The following prerequisite software must be installed on your machine first:
* .NET 6.0 (https://www.microsoft.com/net/download/dotnet-framework-runtime)

Download an appropriate installer and run it on the target machine.

After installation, you can proceed by either downloading binaries directly
from the integration build server, or by building Reko from sources (see Hacking
below).

Documentation

To get acquainted with Reko's various features, you can read the
user's guide. If you're interested in the internal workings
of the project, see the wiki.

Getting support

You can report any issues you encounter or ask any Reko-related question
on the issue tracker.
You can also try the Reko Gitter.im
chatroom. Reko is built by volunteers' efforts on their
spare time, so adjust your response-time expectations accordingly.

Hacking

To build reko, start by cloning https://github.com/uxmal/reko. You
can use an IDE or the command line to build the solution file
Reko-decompiler.sln. Reko requires the .NET 6.0 SDK
to compile. If you are an IDE user, use a recent version of Visual Studio 2022.
If you wish to build using the command line, use the command

dotnet msbuild -p:Platform={platform} -p:Configuration={config} -v:m -t:build_solution -m ./src/BuildTargets/BuildTargets.csproj

Replace {config} with either Debug or Release, and {platform} with x64 or x86.

Note: please let us know if you still are not able to compile,
so we can help you fix the issue.

If you're interested in contributing code, see the
road map for areas to explore.
The Wiki has more information
about the Reko project's internal workings. Please consult the
style guide.

You will receive warnings or errors when loading the solution in Visual Studio
if you haven't installed the WiX toolset on your
development machine. You can safely ignore the warnings; the WiX
toolset is only used when making MSI installer packages. You will not need
to build an installer if you're already able to compile the project: the build
process copies all the necessary files into a single directory.
If you do want to build an MSI installer with the WiX toolchain, you can
download it here:
http://wixtoolset.org/releases/

Depending on what you do Visual Studio might try to rebuild NativeProxy which
depends on CMake. You can either install CMake
and make sure it's added to your PATH or disable the project in Visual Studio.

Having CMake installed as part of Visual Studio is sufficient to run msbuild
from the Developer Command Prompt but not when building from inside VS,
unless you've added that to your global PATH. Installing CMake externally allows
you to add it to PATH during the installation.

NOTE: there is an issue in certain versions of Visual Studio that can manifest itself
when loading the project. You'll notice it if Visual Studio is stuck "Running Background Tasks"
and won't let you build the project. A workaround is to right click the "NativeProxy" project in the
solution explorer and choose "Unload Project". The project will then be able to load and build correctly.
This issue doesn't occur when building from the command line.

How do I start Reko?

The solution folder Drivers contains the executables that act
as user interfaces. The subdirectory WindowsDecompiler contains
the GUI client for the Windows Forms user interface. The subdirectory
AvaloniaShell contains the GUI client for the cross-platform Avalonia
user interface (still under construction). CmdLine is a command line driver.

Recent versions

See the release log for the latest releases.