binaryninja-api icon indicating copy to clipboard operation
binaryninja-api copied to clipboard

Make databases depend on workflows/plugins that were previously used in analysis

Open 0cyn opened this issue 3 years ago • 1 comments

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:

  1. Enable objc plugin, restart
  2. Set the workflow to the objc one, disable the objc plugin, restart again
  3. 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: image

0cyn avatar Aug 04 '22 14:08 0cyn

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:

  1. We would turn off the workflow after the plugin has been disabled (so that default analysis on other binaries will run)
  2. 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)
  3. 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)
  4. 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

fuzyll avatar Aug 04 '22 15:08 fuzyll