This PR let's us use different backends to check if instructions are indirect branches or not. The plugin is compiled with a built-in backend specified by passing a BACKEND parameter to the makefile and a custom backend can be passed as a QEMU plugin argument to override the built-in one.
The two ways to build the plugin are
just make since BACKEND defaults to the simple backend
make BACKEND=binja BINJA_INSTALL_DIR=/path/to/binja/installation/ to build with the binaryninja backend
To use a custom backend, pass an optional second plugin argument to either build. See the README for details on the build process and usage.
The point of this PR is to avoid the need to pass a list of indirect callsites to the plugin so this closes #3.
This PR let's us use different backends to check if instructions are indirect branches or not. The plugin is compiled with a built-in backend specified by passing a
BACKEND
parameter to the makefile and a custom backend can be passed as a QEMU plugin argument to override the built-in one.The two ways to build the plugin are
make
sinceBACKEND
defaults to the simple backendmake BACKEND=binja BINJA_INSTALL_DIR=/path/to/binja/installation/
to build with the binaryninja backendTo use a custom backend, pass an optional second plugin argument to either build. See the README for details on the build process and usage.
The point of this PR is to avoid the need to pass a list of indirect callsites to the plugin so this closes #3.