G-3PO: A Protocol Droid for Ghidra, or GPT-3 for Reverse-Engineering

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • ghidra_tools

    A collection of Ghidra scripts, including the GPT-3 powered code analyser and annotator, G-3PO.

  • A few days ago this went mostly ignored (https://news.ycombinator.com/item?id=34161642) and I was asked to re-submit it (https://news.ycombinator.com/item?id=34250150) so that it gets a second chance.

    That’s a script for the reverse-engineering tool Ghidra that uses GPT-3 to de-compile machine code and to write plain English explanations of what a piece of code does.

    The article is quite detailed and describes both its capabilities and its limitations. That G-3PO script is open source, MIT license: https://github.com/tenable/ghidra_tools/tree/main/g3po

    There was also another HN story about what at first sight looks like an alternative implementation of the same idea: “GptHidra – Ghidra plugin that asks OpenAI Chat GPT to explain functions”

    https://news.ycombinator.com/item?id=34165291

    This one is more recent and lacks that good write-up mentioned above. The script is smaller and it seems to have fewer features.

    I suggest checking both of them.

  • Gepetto

    IDA plugin which queries OpenAI's GPT language models to speed up reverse-engineering

  • I'm partial to Gepetto for IDA, which includes an especially hilarious trick in which it instructs ChatGPT to phrase its responses in JSON, and then uses this JSON directly to name variables in the decompilation. If the JSON is incorrect, it politely asks ChatGPT to please fix its JSON output, which usually works.

    https://github.com/JusticeRage/Gepetto/blob/main/gepetto.py#...

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • gpt-wpre

    Whole-Program Reverse Engineering with GPT-3

  • Very neat! I also worked on something that uses GPT-3 for reverse engineering last week. The basic idea is that right now GPT-3 is limited in how much context it can see at once. So instead, to summarize a function in context, I use the call graph to find all of its dependencies, and summarize them one by one, providing the summaries of the callees when summarizing the caller:

    https://github.com/moyix/gpt-wpre

  • Ghidra-ChatGPT

  • That's awesome! I also wanted to combine Ghidra and GPT3, but I was unsure about its capabilities to explain code. I made a plugin where you highlight part of the listing view and it explains what is going on with the help of ChatGPT. Link for the curious: https://github.com/SourceDiver42/Ghidra-ChatGPT

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Some toy project I created for Ghidra. Nothing too impressive, but might be useful. Enjoy!

    1 project | /r/ReverseEngineering | 10 Dec 2022
  • Show HN: A Ghidra extension that turns programs back into object files

    3 projects | news.ycombinator.com | 3 Jan 2024
  • Okus obratnega inženiringa - naloga 2

    2 projects | /r/HackProtectSlo | 8 Jun 2023
  • I've figured out what 13 of the 16 enemy flags mean in Ultima V. Help me figure out the last three.

    2 projects | /r/Ultima | 4 Jun 2023
  • Modding SH2

    1 project | /r/stronghold | 1 Jun 2023