Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Project Support #226

Closed
3 tasks
psifertex opened this issue Apr 14, 2016 · 7 comments
Closed
3 tasks

Project Support #226

psifertex opened this issue Apr 14, 2016 · 7 comments
Assignees
Labels
Component: UI Issue needs changes to the user interface Effort: High Issue should take > 1 month Impact: High Issue adds or blocks important functionality Type: Enhancement Issue is a small enhancement to existing functionality
Milestone

Comments

@psifertex
Copy link
Member

psifertex commented Apr 14, 2016

This issue is tracking our planned "project support" feature that will include the following:

  • Multiple databases in a larger framework
  • Ability to cross-link between those databases
  • Ability to store additional resources (one example being type archives that contain types shared amongst the databases)
@plafosse plafosse added the Type: Enhancement Issue is a small enhancement to existing functionality label May 29, 2016
@psifertex psifertex modified the milestone: post-v1 Jun 3, 2016
@plafosse
Copy link
Member

plafosse commented Jul 24, 2018

  • Multi-binary
  • Workspace-only Plugins
    * Script snip-its (snippets plugin is in the plugin manager)

Container support is probably a pre-req #133

@withzombies
Copy link
Contributor

A hierarchical text editor for notes

@ElykDeer ElykDeer self-assigned this Aug 7, 2019
@plafosse plafosse changed the title databases should support workspaces/sessions Support for Workspaces/Sessions Aug 28, 2019
@bpotchik bpotchik changed the title Support for Workspaces/Sessions Project and Session Support Oct 1, 2020
@bpotchik bpotchik self-assigned this Oct 1, 2020
@bpotchik
Copy link
Member

bpotchik commented Oct 1, 2020

Initial support for project level settings added in build 2.1.2398-dev. Project settings reside at <your project folder>/.binaryninja/settings.json. Project settings override the User settings.

Create New Project Settings

  1. Open a file or BNDB in BinaryNinja
  2. Navigate to SettingsView and select "Project"
  3. Modify settings for the project
  4. Save the existing, or create a new BNDB.
    The project directory and settings file is created in the containing folder of your BNDB.

Application of Project Settings
Project settings are gratuitously applied to files or BNDBs opened in the same folder as an existing project and settings file.

@psifertex psifertex added Effort: High Issue should take > 1 month Impact: High Issue adds or blocks important functionality labels Dec 16, 2020
@plafosse plafosse removed this from the future milestone Jan 26, 2021
@ElykDeer ElykDeer removed their assignment Jul 27, 2021
@psifertex psifertex added this to the 3.2 (Embedded) milestone Jan 18, 2022
@marpie
Copy link
Contributor

marpie commented Jul 14, 2022

As several tickets are somehow related to my feature request, I will use this ticket to collect what my dream feature set would look like and will link the corresponding tickets I found below.

Multi-Binary / Container Support / Projects

All these things seem to be somehow related or could benefit from a joint implementation (tracked in #133). I often encounter projects that require analyzing multiple files together to understand the data flow and workflow. So, a binary that imports several functions from multiple (closed-source) libraries requires reverse engineering them to reconstruct types and understand what the functions should accomplish. Currently, I use a REST server that syncs types between different BNDBs using a plugin, but an integrated solution as described below would certainly be better.

Feature Request

Implement a set of features to provide the user with the ability to:

  • import multiple binaries into one "project" BNDB (like Ghidra Projects)
  • double-clicking imported functions should "jump" to the corresponding BNDB (Open referenced library #3272)
  • have BinaryNinja API functions to query which BNDBs import a function, etc.
    • essentially doing cross binary analysis (or at least getting a reference back that the function is imported in these other BNDBs)
  • enable easy sharing of types between these linked binaries (Import types from BNDB #3271)
    • Ghidra has that feature, but it is poorly implemented as you need to sync the types manually, which is very cumbersome
  • provide the ability to view all binaries in a single memory layout (this may require that the user provides the memory layout manually if it cannot be inferred by the PE/ELF file; e.g., if it is a raw (memory) dump) (Container formats support #133)

I'm unsure if a "single" BNDB is the best option or if using the "Project Settings" would be better. Using the "Project Settings" (all BNDBs in the same folder) would provide for the flexibility to dynamically add files quickly, but also to only "share" (copy) a single BNDB or back them up separately.

If this comment doesn't fit here, just move/remove it, I just wanted to collect my requirements as I know you are working on a solution internally and wanted to provide early "feedback".

@bpotchik
Copy link
Member

Several features that are required for this ticket are now complete. See both #3375, and #624 for details.

@psifertex
Copy link
Member Author

Another small note -- don't know if the current implementation changes window title to include project name or other indication that the current tab is a project but it should.

@psifertex psifertex removed this from the Braize milestone Mar 26, 2023
@psifertex psifertex added this to the Coruscant milestone Mar 26, 2023
@CouleeApps CouleeApps removed their assignment May 11, 2023
@fuzyll fuzyll added the Component: UI Issue needs changes to the user interface label May 17, 2023
@psifertex psifertex changed the title Project and Session Support Project Support May 24, 2023
@plafosse plafosse modified the milestones: Coruscant, Dorsai Aug 1, 2023
@negasora
Copy link
Member

The bulk of the requests here are added in 3.6.4784-dev. Remaining improvements will be put in their own tickets.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: UI Issue needs changes to the user interface Effort: High Issue should take > 1 month Impact: High Issue adds or blocks important functionality Type: Enhancement Issue is a small enhancement to existing functionality
Projects
None yet
Development

No branches or pull requests

9 participants