Vector35 / community-plugins

Repository for community provided Binary Ninja plugins
MIT License
430 stars 34 forks source link

[New Plugin]: PowerPC VLE Extension #263

Closed Martyx00 closed 22 hours ago

Martyx00 commented 4 months ago

Plugin Description

Extends the default PPC architecture to add VLE instructions.

Plugin Repository URL

Repo URL: https://github.com/Martyx00/PowerPC-VLE-Extension

Real Release

Martyx00 commented 4 months ago

Since this is my first C++ plugin. How are these published/installed by the community? Will it grab the artifact from the runner or should I include manual instructions?

psifertex commented 4 months ago

Unfortunately we need some changes to the plugin manager before we can better support native plugins. I'm going to keep this open until then as we do plan to make some of those soon.

psifertex commented 1 day ago

Good news! We've added support for native plugins (still in view-only) mode. You can see an example plugin.json here:

https://github.com/unknowntrojan/binja_coolsigmaker/blob/master/plugin.json

In particular, you'll want to change your API to ["cpp"] instead of python3.

Note that in the plugin manager, the minimum version will be forced to be the current dev release as that's the only one that is supported from the UI with the new view-only type, but you can leave the true minimum version in the plugin.json if that's correct.

Once you've got that, let me know. I'll update you once we get better automation examples to track releases and automatically update (that's requiring some other changes coming with a new extension manager server infrastructure)

Martyx00 commented 1 day ago

Hi, is there a quick and easy way to find the correct value for minimum required version? I always struggled with that.

psifertex commented 1 day ago

Well, 6135 is the version that supports view only plugins in plugin manager itself, so it's safe to just use that for now.

For native plugins it's actually handled in the plugin itself and how it registers so it's not really an issue there. Going forward hopefully the automation that tags and builds for a specific release will help.

For python, one way is to just binary search the builds until you find the one that last worked correctly. Unfortunately I don't have anything much fancier than that.

Martyx00 commented 1 day ago

Done :)

psifertex commented 22 hours ago

Thanks! I've added it to the repo, when we make the second pass for actual automatic build tracking/updates we'll update the documentation and reach out to plugin authors directly so I'm closing this for now. Thanks for the plugin.