Skip to content

Expose either project_binary_id or the Database without needing to load the BinaryView for the BNDB file #7550

@loadlibraryninja

Description

@loadlibraryninja

What is the feature you'd like to have?
Expose either the project_binary_id value or the Database (so I can get to that value) without needing to load the binaryview first to get the Database.

Currently the chain is as follows: bv -> database -> read_global('project_binary_id')

Is your feature request related to a problem?
Getting the project_binary_id in the project view for multiple bndb files is slow when having to load the binary view for each one just to get this value (the more bndb files in the project, the longer it takes). Direct SQL is much faster, but it's not recommended to query the bndb directly.

Also, loading the binaryview even with update_analysis=False can cause modifications to the bndb file (like schema version changes in an upcoming release) that I'd like to avoid. I'm looking to avoid this as I don't want to cause any confusion by the user of the plugin that may lead them to think their bndb file(s) were changed somehow - even though the analysis should not change when loading with update_analysis=False.

Are any alternative solutions acceptable?
Query the sqlite database directly (just not recommended).

Additional Information:
Ideally, need this exposed via the Rust API.

Metadata

Metadata

Assignees

No one assigned

    Labels

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions