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

Reset `analysis.workflows.functionWorkflow` to `core.function.metaAnalysis` if set to `core.function.objectiveC`

Open bdash opened this issue 2 months ago • 0 comments

Version and Platform (required):

  • Binary Ninja Version: 5.3.8713-dev Ultimate, a40c2e7b
  • OS: macos
  • OS Version: 26.1.0
  • CPU Architecture: arm64

Bug Description: If a user explicitly set analysis.workflows.functionWorkflow to core.function.objectiveC in Binary Ninja 5.1 or earlier, they'll get some surprising / broken behavior when opening binaries in 5.2 or newer. core.function.objectiveC no longer exists, and instead the Objective-C activities are registered on the meta workflow.

Steps To Reproduce: Untested, but presumably:

  1. Set analysis.workflows.functionWorkflow to core.function.objectiveC (or some other workflow that does not exist).
  2. Open a binary.

Expected Behavior: Something sensible.

For core.function.objectiveC we should reset the setting to the default value of core.function.metaAnalysis. The Objective-C workflow was removed in 5.2.

For other values that do not correspond to a workflow that is registered we may want to leave the setting value as-is, log a warning or error, but then use core.function.metaAnalysis anyway. This would handle the case where a named workflow is registered by a plug-in that is no longer available, perhaps due to needing to rebuild due to an ABI bump or due to launching with user plug-ins disabled.

Actual Behavior: Many thousands of errors, and no functions in linear view.

Additional Information: Originally reported by a user on Slack.

bdash avatar Dec 02 '25 02:12 bdash