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

[New Plugin]: BinAssist - Yet another LLM plugin #280

Closed
1 task done
jtang613 opened this issue Sep 11, 2024 · 10 comments
Closed
1 task done

[New Plugin]: BinAssist - Yet another LLM plugin #280

jtang613 opened this issue Sep 11, 2024 · 10 comments
Labels
new plugin Adding a new plugin

Comments

@jtang613
Copy link

Plugin Description

A plugin that provides LLM helpers to explain code and assist in RE.

Description:

This is a LLM plugin aimed at enabling the use of local LLM's (ollama, text-generation-webui, lm-studio, etc) for assisting with binary exploration and reverse engineering. It supports any OpenAI v1-compatible API. Recommended models are LLaMA-based models such as llama3.1:8b, but others should work as well.

Current features include:

  • Explain the current function - Works at all IL levels.
  • Explain the current instruction - Works at all IL levels.
  • General query - Query the LLM directly from the UI.
  • Propose actions - Provide a list of proposed actions to apply.
  • Function calling - Allow agent to call functions to navigate the binary, rename functions and variables.
  • RLHF dataset generation - To enable model fine tuning.
  • RAG augmentation - Supports adding contextual documents to refine query effectiveness.
  • Settings to modify API host, key, model name and max tokens.

Future Roadmap:

  • Agentic assistant - Use Autogen or similar framework for self-guided binary RE.
  • Model fine tuning - Leverage the RLHF dataset to fine tune the model.

Plugin Repository URL

https://github.com/jtang613/BinAssist

Real Release

  • I have made a real release
@jtang613 jtang613 added the new plugin Adding a new plugin label Sep 11, 2024
@psifertex
Copy link
Member

Thanks for the submission! Just added the plugin now. As a heads up in the future, you can remove the longdescription field and the plugin manager will just pull the data from the readme instead of having to maintain both.

Also, highly recommend you switch the API key fields to use the hidden bool on the key.

@psifertex
Copy link
Member

Actually, the import failed. Please double check that the release was done appropriately (I recommend using the gh cli tool, or https://github.com/Vector35/release_helper)

@psifertex psifertex reopened this Sep 11, 2024
@jtang613
Copy link
Author

Thanks for the quick turnaround! Great advice - I'll make sure to incorporate that into the next release.

@psifertex
Copy link
Member

Well, you might be able to do that sooner rather than later. 😉

@jtang613
Copy link
Author

I

Actually, the import failed. Please double check that the release was done appropriately (I recommend using the gh cli tool, or https://github.com/Vector35/release_helper)

I used the instructions here: https://binary.ninja/2019/07/04/plugin-manager-2.0.html#5-create-a-release
I'll try a point release using the helper.

@jtang613
Copy link
Author

The helper is giving me odd HTTP 404 errors. Does your import script give any hints as to what I've done wrong?

@psifertex
Copy link
Member

ERROR: tang613/BinAssist, Couldn't get release information. Likely the user created a tag but no associated release.

Generated by:

https://github.com/Vector35/community-plugins/blob/master/generate_index.py#L56

@jtang613
Copy link
Author

I apologize - this is my first BN plugin. I do have a release tagged with 0.1.0. Is this not the correct format?
https://github.com/jtang613/BinAssist/releases

@psifertex
Copy link
Member

Let me investigate some.

@psifertex
Copy link
Member

D'oh, my apologies. Copy/paste failure. 😞 Should be live shortly! You didn't do anything wrong, sorry about that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new plugin Adding a new plugin
Projects
None yet
Development

No branches or pull requests

2 participants