aici
ghidra_tools
aici | ghidra_tools | |
---|---|---|
7 | 6 | |
1,756 | 281 | |
7.5% | 1.1% | |
9.9 | 5.4 | |
6 days ago | about 1 year ago | |
Rust | Python | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
aici
-
HonoJS: Small, simple, and ultrafast web framework for the Edges
Have you looked at AICI by Microsoft yet?
https://github.com/microsoft/aici/
-
LLM4Decompile: Decompiling Binary Code with LLM
I have been planning to work on something like this. I think that eventually, someone will crack the "binary in -> good source code out of LLM" pipeline but we are probably a few years away from that still. I say a few years because I don't think there's a huge pile of money sitting at the end of this problem, but maybe I'm wrong.
A really good "stop-gap" approach would be to build a decompilation pipeline using Ghidra in headless mode and then combine the strict syntax correctness of a decompiler with the "intuition/system 1 skills" of an LLM. My inspiration for this setup comes from two recent advancements, both shared here on HN:
1. AlphaGeometry: The Decompiler and the LLM should complement each other, covering each other's weaknesses. https://deepmind.google/discover/blog/alphageometry-an-olymp...
2. AICI: We need a better way of "hacking" on top of these models, and being able to use something like AICI as the "glue" to coordinate the generation of C source. I don't really want the weights of my LLM to be used to generate syntactically correct C source, I want the LLM to think in terms of variable names, "snippet patterns" and architectural choices while other tools (Ghidra, LLVM) worry about the rest. https://github.com/microsoft/aici
Obviously this is all hand-wavey armchair commentary from a former grad student who just thinks this stuff is cool. Huge props to these researchers for diving into this. I know the authors already mentioned incorporating Ghidra into their future work, so I know they're on the right track.
-
Show HN: Prompts as (WASM) Programs
We believe Guidance can run on top of AICI (we're working on efficient Earley parser for that [0], together with local Guidance folks). AICI is generally lower level (though our sample controllers are at similar level to Guidance).
[0] https://github.com/microsoft/aici/blob/main/controllers/aici...
- AI Controller Interface (AICI)
ghidra_tools
-
LLM4Decompile: Decompiling Binary Code with LLM
relevant: https://news.ycombinator.com/item?id=34250872 (G-3PO: A protocol droid for Ghidra, or GPT-3 for reverse-engineering <https://github.com/tenable/ghidra_tools/blob/main/g3po/g3po....>; Jan, 2023; 44 comments)
-
UEFI Software Bill of Materials Proposal
https://github.com/tenable/ghidra_tools/tree/main/g3po
I suspect there are better ones being worked on though.
-
G-3PO: A Protocol Droid for Ghidra, or GPT-3 for Reverse-Engineering
Hey guys, I'm the one who wrote the post and the Ghidra plugin. Really delighted to see it get so much traction here! I just merged a couple of PRs which should improve the tool somewhat -- one from eShuttleworth, which uses GPT-3's feedback to automatically rename the function and global variables, and another from me, which does the same for what Ghidra internally refers to as HighVariables (variables visible in the decompiled code listing, as opposed to just the assembly listing). Turns out these two things only look like similar operations from the perspective of the GUI.
Here's the public github repo: <https://github.com/tenable/ghidra_tools> Please feel free to fork it and send me PRs with any features or fixes you think might be useful.
-
Ask HN: Has anyone tried throwing GPT3 at unobfuscating / disassembly?
That G-3PO script is open source, MIT license: https://github.com/tenable/ghidra_tools/tree/main/g3po
What are some alternatives?
transformers-CFG - 🤗 A specialized library for integrating context-free grammars (CFG) in EBNF with the Hugging Face Transformers
Gepetto - IDA plugin which queries OpenAI's GPT language models to speed up reverse-engineering
pingora - A library for building fast, reliable and evolvable network services.
gpt-wpre - Whole-Program Reverse Engineering with GPT-3
Awesome-LLM-Productization - Awesome-LLM-Productization: a curated list of tools/tricks/news/regulations about AI and Large Language Model (LLM) productization
Ghidra-ChatGPT
sglang - SGLang is a structured generation language designed for large language models (LLMs). It makes your interaction with models faster and more controllable.
GhidraChatGPT - Brings the power of ChatGPT to Ghidra!
deepcompyle - Pretraining transformers to decompile Python bytecodes
GptHidra - GptHidra is a Ghidra plugin that uses the OpenAI Chat GPT to explain functions. With GptHidra, you can easily understand the purpose and behavior of functions in your codebase. Now with GPT4 Support!
LLM4Decompile - Reverse Engineering: Decompiling Binary Code with Large Language Models
slsa-github-generator - Language-agnostic SLSA provenance generation for Github Actions