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

Adds the Binary Ninja front-end plugin (MVP) + simplifies patch space 0 #240

Merged
merged 47 commits into from
Dec 2, 2022

Conversation

bmourad01
Copy link
Contributor

@bmourad01 bmourad01 commented Dec 1, 2022

This PR adds a front-end plugin for VIBES for the Binary Ninja reverse engineering suite. This serves as a significant step up in improving the user experience of VIBES. Key highlights:

  1. The process of filling out patch configurations for a binary are done through a GUI interface that is integrated with Binary Ninja (including saving this information to a .bndb file).
  2. We are able to leverage Binary Ninja's tower of IRs (LLIL, MLIL, and HLIL) to extract mappings from higher-level variables seen in the decompiler output to low-level locations that are normally associated with the disassembly view. Most of the heavy lifting is already done for us when Binary Ninja analyzes the binary in question, and a small amount of work from us is done to fill in these gaps. This is the killer feature of the plugin, and something we have been looking to (at least partially) automate for a long time.

I've also simplified the way users can specify a patch that strictly inserts new code into the binary, denoted by a patch-size of 0. The corresponding changes to vibes-patch reflect this.

I should make it clear that this plugin is an MVP for getting a patch off the ground and sending the information off to the VIBES toolchain. In the future, we should be looking for user experience feedback to improve the usability of the plugin.

@bmourad01 bmourad01 merged commit a8d9eb5 into main Dec 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant