Skip to content

Getting Started

At the time of writing, ReOxide is still highly experimental and only Linux is supported. It is distributed as a pip package, containing the necessary binaries and Python server. If you want to install the package for the current user, you can use pipx:

sh
$ pipx install reoxide

This will make the commands reoxide and reoxided available. The reoxided command is a daemon/service that has to run in the background when Ghidra is being started. On the first launch it will create a new configuration file and ask for the path to a Ghidra installation:

txt
Config file not found at "/home/user/.config/ReOxide/reoxide.toml"
Creating new basic config.
Enter a Ghidra root install directory:

After entering a Ghidra install directory reoxided will print the following:

txt
Config saved to /home/user/.config/ReOxide/reoxide.toml
WARNING: decompile file is not a symlink. If the Ghidra directory has not been linked with ReOxide yet, execute "reoxide link-ghidra".
/home/user/.local/share/ReOxide/plugins/libcore.so
/home/user/.local/share/ReOxide/plugins/libsimple_rule.so

ReOxide stores all files and plugins in its own folders (on Linux, these are placed according to the XDG specification) and replaces the decompile binary of Ghidra with a symlink to the ReOxide decompile binary. This is not done automatically and you need to use the command specified in the warning:

sh
$ reoxide link-ghidra

Which will then try to link all Ghidra directories specified in the ReOxide config:

txt
Trying to link /home/user/ghidra
Successfully linked /home/user/ghidra

The next time Ghidra is started, it will start the symlinked decompile binary and connect automatically to the reoxided daemon. Multiple Ghidra installations can be managed by adjusting the ReOxide config file, e.g. ~/.config/ReOxide/reoxide.toml per default on Linux:

toml
[reoxide]
bin-dir = "/home/user/.local/share/ReOxide/bin"

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

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