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
:
$ 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:
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:
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:
$ reoxide link-ghidra
Which will then try to link all Ghidra directories specified in the ReOxide config:
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:
[reoxide]
bin-dir = "/home/user/.local/share/ReOxide/bin"
[[ghidra-install]]
root-dir = "/home/user/ghidra"
[[ghidra-install]]
root-dir = "/home/user/ghidra2"