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
:
$ 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:
$ 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:
$ 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
:
$ 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
:
[[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
.