Messages can be sent with blaze.send
and all messages are handled in message_handler
.
Add or modify the message actions that the plugin can take by changing the ServerToBinja
and BinjaToServer
types in the ../server
project.
pip install websockets requests
Symlink the src/blaze
directory in binja's plugins directory.
$ ln -s <THIS_REPO>/binja_plugin/src/blaze ~/.binaryninja/plugins/blaze
# activate your virtualenv which you use for Binary Ninja, or otherwise use the
# `pip` that corresponds to the python installation which Binary Ninja is configured
# to use
$ pip install websockets requests
The plugin is built and served as part of the docker-compose.yml configuration in the parent directory.
$ cd ..
$ docker-compose pull
$ docker-compose up
Building of the plugin with the package_plugins.sh
script requires additional dependencies:
pip install toml-cli build pkginfo
.
To build and serve plugins.json
:
- run:
./package_plugin.sh http://localhost:8000
(or wherever the plugin will be served from) cd ./dist && python3 -m http.server
- In BinaryNinja settings, set
http://localhost:8000/
as the Unofficial 3rd Party Plugin Repo URL - Blaze should appear in the Plugin Manager (ctrl-shift-m)
If it doesn't show up, try restarting BinaryNinja. The python server should get a hit for /plugins.json
.
One known problem is BinaryNinja caching local copies of 3rd party repositories when renaming the 3rd party repo being used in the settings, leading to duplicate entries in the plugin manager. If renaming the 3rd party repo (or to be safe, changing server location), make sure to delete the local directory in .binaryninja/repositories/<repo_name>
and remove the entry from
.binaryninja/repositories/plugin_status.json
.