Skip to content

Synchronize Ghidra projects with IDA Pro and Binary Ninja through Redis

License

Notifications You must be signed in to change notification settings

williamshowalter/revsync_ghidra

Repository files navigation

Ghidra Revsync Plugin

Revsync

Revsync is a realtime syncing plugin for IDA Pro, Binary Ninja, and now Ghidra!

The Revsync Ghidra plugin is compatible with the original Revsync IDA Pro and Binary Ninja plugin.

The Ghidra plugin currently only syncs:

  • Comments
  • Symbol names

Future versions may expand to include the stack variable names, structs, and code coverage modules that the original revsync supports. Right now any sync messages for these are logged to the console but not committed.

Installation & Setup

See Installation.md for installation directions.

Download

Download latest

Requirements / Notices

  • Requires Ghidra 9.1.2.
  • Has only been tested on Linux so far.
  • Config file must be in ~/.revsync/config.json (see Installation.md)
  • Syncing is based on SHA256 hash of the executable, which wasn't present in the program information on older versions of Ghidra before October 2019. If a program was imported with an older version but the project was later upgraded, it won't have the SHA256 hash and will need to be imported again.
  • While Ghidra function name symbols cannot be deleted (only renamed), symbols on data/other code can. Revsync Ghidra doesn't push updates to the other clients for symbol deletions in all cases yet(changing symbol names is fine, and for a function this should generally work).
  • See the notes below on comments.

Usage

Comments

Comments are tracked on a per-nick basis. There are still some edge cases where editing a comment that was written by another user will interpret their comment as part of yours. Because of this the best practice is removing everything in the comment field except your own comment before saving your changes. Future releases plan on addressing this with more robust comment update parsing.

Revsync syncs between EOL Comment, Pre Comment, Post Comment, and Plate Comment. Pre Comments are now the default instead of EOL Comments, as they display in both Listing and Decompiler views without any change in configuration. The behavior of comments is for any comment put into a supported comment field to be moved into Pre Comment and deleted from the other comment fields. This allows smooth synchronizing with Binary Ninja and IDA Pro. Repeatable comments are ignored and not supported.

Changelog

See CHANGELOG.md