binaryninja-api
binaryninja-api copied to clipboard
Make databases depend on workflows/plugins that were previously used in analysis
Version and Platform (required):
- Binary Ninja Version: 3.1
- OS: *
- OS Version: *
- CPU Architecture: *
Steps To Reproduce: Please provide all steps required to reproduce the behavior:
- Enable objc plugin, restart
- Set the workflow to the objc one, disable the objc plugin, restart again
- Open any binary without modifying the default workflow
Linear Analysis will be entirely broken with only a line in the error log vaguely indicating what went wrong.
Settings UI will still indicate that the workflow is available until you un-select it and restart again.
Screenshots:

This is actually a larger issue where, if we were to disable the workflow, you might open the file (which you had previously used the workflow on) and re-analyze without the workflow, which could clobber earlier analysis with less-correct, new analysis.
Ideally:
- We would turn off the workflow after the plugin has been disabled (so that default analysis on other binaries will run)
- The database would depend on the workflow to prevent default analysis from being run (because we don't want to re-analyze this binary without the plugin)
- A more prominent warning could be displayed so the user understands analysis will be broken because the plugin is missing and the workflow is not being run (possibly in a popup, or possibly by forcing the global area open and switching to the log window)
- The error message should hint at/explain how to turn off the dependency within the database if the user really doesn't want to use the workflow anymore