Skip to content

Architecture property can_assemble is true by default #7979

@Alkalem

Description

@Alkalem

Version and Platform:

  • Binary Ninja Version: 5.3.9160-dev Personal (9bc81815)
  • Edition: Non-Commercial
  • OS: Ubuntu Linux
  • OS Version: 25.10
  • CPU Architecture: x64

Bug Description:
An architecture that does not implement assembling is still listed in the "Assemble ..." dialogue as available. Trying to assemble anything (expectedly) causes an error.

Steps To Reproduce:
This occurred with a python architecture plugin, but should apply to other APIs as well.

  1. Implement a minimal architecture plugin or use one that does not support assembling. The plugin should not override can_assemble.
  2. Click "Patch->Assemble ..." in instruction context menu.
  3. Choose architecture in assembling dialogue and try to assemble something.

Expected Behavior:
Assembling is an optional feature for an architecture. The default value for core.BNCanArchitectureAssemble should be false. This would fix subsequent errors.

Additional Information:
Somewhat related to your newest blog post and #7978 . The default value seems to originate from the core, so I did not include in the PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Component: Python APIIssue needs changes to the python APIEffort: TrivialIssues require < 1 day of workImpact: LowIssue is a papercut or has a good, supported workaround

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions