lunixbochs / revsync

realtime cross-tool collaborative reverse engineering
MIT License
100 stars 25 forks source link

Potentially make a wiki #12

Open Exiled1 opened 2 years ago

Exiled1 commented 2 years ago

Hello! Essentially I tried to use RevSync with binary ninja, I got the revsync server set up. However, when I tried to use Load, it failed, and then I tried to save, which revsync forced me to overwrite the existing .bndb file, which was weird since they are the same file. I checked to see if the file hashes were the same after saving and they weren't.

It'd be really nice if you guys could potentially make a video on how to syncronize multiple files. I had originally hoped that revsync would make a UI that showed the files that were on the server, and you could choose which file to load/collaborate on. However that's not really the case and it's kind of unintuitive towards how you'd use this tool/plugin. Sorry If I sound stupid, but it didn't seem to work as intended. Especially with revsync changing something and forcing me to overwrite my bndb file when saving.

I'm running on the most recent dev version and I pulled from the repository instead of the plugin manager if that helps. But yes, having a video/gif demonstrating how to use this tool would be great!

lunixbochs commented 2 years ago

If you've connected to the server, that's it. At a minimum, symbol renames and comments will be synchronized in realtime to anyone using the same server with the same binary. There's no UI because it works completely transparently to the user.

The binary itself, database, etc are not stored on the server. Only the synchronized changes are stored and relayed.

You can view the Python log in binja to see messages from revsync about the connection and any received changes.

A quick demonstration would be to open the same binary twice (e.g. two instances of binary ninja), connect them both to the server, rename a symbol in one, and watch for it to propagate to the other.