Vector35 / Vector35/binaryninja-api

Collaboration support for WARP

Open
#6,363 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Component: WARP Effort: Low Impact: Medium
Dominant language
C++
Stars
1.3k
Forks
298
Avg merge
5d 5h
Merged PRs (30d)
19

Description

Collaboration (the functionality surrounding remote projects) is now supported in the Rust API, we could add a few interesting integrations with WARP. (NOTE: These are just ideas, no say on when/if these will be worked on)

  1. Add an option to load signature files (.sbin) from a remote.

This is pretty self explanatory, when WARP gathers all the local files for inclusion in the matching data set, we could pull down signature files from a remote. This would necessitate a few extra options and possibly be done as apart of "WARP providers", namely we would need to identify the remote to connect to and have a filter for the files that the user wants to include, this might require us to also add the architecture to the WARP spec, as to not pull in functions from other architectures.

This might also better be done as a UI interaction, where the user can select files from a remote after auto analysis is done, in that case the interaction file picker would just need to be used in some place in the WARP UI (see this issue).

  1. Add remote syncing to sigem (the headless WARP script)

A common issue with sigem is managing both the input and output files, if you have a thousand binaries in a dozen folders you would find yourself moving around a lot of data manually. Instead we could add support for sigem to stage the input files into a remote project, then pull them down in a separate stage to generate output signature files. These signature files could then be uploaded to another project (or the same one), for distribution. This would also make scaling sigem horizontally much more manageable, if you could have each sigem instance work on separate remote folders but contribute the signatures to the same output remote.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the Rust API's collaboration support and the WARP providers and sigem entry points named in the issue. Review the related UI file-picker issue (#6337), then choose one of the proposed remote workflows and define its scope. Done means the selected integration has clear remote, filtering or staging behavior and is implemented consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
reverse-engineering, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.