Skip to content

Getting started

We still consider ReOxide highly experimental and only support Linux at the moment. We distribute it as a pip package, containing the binaries and Python server. If you want to install the package for the current user, you can use for example pipx:

sh
$ pipx install reoxide

This makes the reoxide and reoxided commands available. On first use you have to create a configuration file, which lists your Ghidra installations. The reoxide init-config command guides you through this:

sh
$ reoxide init-config
> Creating new basic config.
> Enter a Ghidra root install directory: /home/user/ghidra
> Config saved to /home/user/.config/reoxide/reoxide.toml

INFO

ReOxide stores all files and plugins in specific user directories. On Linux it will place files according to the X Desktop Group (XDG) base directory specification specification.

After you created the configuration file, you need to start the reoxided command before starting Ghidra. It will act as daemon serving requests from Ghidra decompiler instances. Upon first start, reoxided will print the following:

sh
$ reoxided
> INFO ReOxide - Restarting with updated LD_LIBRARY_PATH...
> WARNING ReOxide - decompile file is not a symlink. If the Ghidra directory has not been linked with ReOxide yet, execute "reoxide link-ghidra".
> INFO ReOxide - Loading /home/user/.local/share/reoxide/plugins/libcore.so
> INFO ReOxide - Loading /home/user/.local/share/reoxide/plugins/libsimple.so

The output warns us about the missing link between ReOxide and Ghidra. ReOxide does not link the Ghidra installations automatically and you need to use the command specified in the warning message shown in the log output, reoxide link-ghidra. This command will then try to link all Ghidra directories specified in reoxide.toml:

sh
$ reoxide link-ghidra
> Trying to link /home/user/ghidra
> Successfully linked /home/user/ghidra

The next time Ghidra starts, it will use the symlinked decompile binary and connect automatically to the reoxided daemon. ReOxide can also manage more than one Ghidra installation by adjusting reoxide.toml:

toml
[[ghidra-install]]
enabled = true
root-dir = "/home/user/ghidra"

[[ghidra-install]]
enabled = true
root-dir = "/home/user/ghidra2"

If you want to unlink certain Ghidra installations from ReOxide, you can set the enabled variable to false and run the reoxide link-ghidra command again. If you omit the enabled line, ReOxide will assume enabled = true.