2024 · Conference paper

DeGPT: Optimizing Decompiler Output with LLM

Refines existing C-like decompiler output through three coordinated roles that select, propose and check changes. It simplifies structures, adds comments and renames variables; Micro Snippet Semantic Calculation compares simulated symbol values and calls before accepting structural changes. The authors evaluate readability and naming on 620 functions from four codebases, with separate stripped and non-stripped variants.

Scope and limitations

The reported 24.4% reduction is a Halstead-effort proxy on non-stripped output, not a measured reduction in human effort. The 62.9% comment result is the average non-trivial share among manually judged correct comments. MSSC is an intraprocedural heuristic: calls are abstracted and loops become branches; parsing, aliasing and path growth remain limitations. Its 80-case manual audit reports 84% accuracy and 85% recall, including three harmful changes missed. This supports assisted pseudocode comprehension, not guaranteed binary equivalence, recompilable whole programs or original-source recovery.

Why it fits this collection

A concrete LLM-assisted reverse-engineering method combining readability edits with an explicitly evaluated semantic-change filter.

Publication and review details

Venue
NDSS 2024
Status
Conference paper
Publication / posting date
2024 (exact date not verified)
Date source
The official NDSS paper and the publisher’s Crossref deposit establish publication year 2024. The conference dates and DOI registration date do not establish a publication day.
DOI
10.14722/ndss.2024.24401

The publisher and PDF agree on the title, three-author order and DOI; no arXiv identifier or proceedings page range was verified. The September 2024 artifact snapshot is later than the paper, has no release tag, and declares no project license. Its README requires manually installed cinspector, openai==1.28.1, tiktoken==0.2.0 and python-levenshtein, without a DeGPT Python minimum. Current code reads model, API key and endpoint from config.ini, differing from the README’s chat.py setup example; it uses Unix-style SIGALRM timeouts. The separately pinned cinspector dependency declares WTFPL and tree-sitter==0.20.4; this does not license DeGPT or its third-party samples. The paper primarily used gpt-3.5-turbo at temperature 0.2 and Ghidra 10.2.3. Source and dependency inspection do not establish present service compatibility; experiments were not rerun.

Sources reviewed

Source review only; experiments were not rerun for this collection. Cite the original authors using the linked paper or BibTeX.

Primary sources

  1. https://www.ndss-symposium.org/ndss-paper/degpt-optimizing-decompiler-output-with-llm/
  2. https://www.ndss-symposium.org/wp-content/uploads/2024-401-paper.pdf
  3. https://api.crossref.org/works/10.14722/ndss.2024.24401
  4. https://github.com/PeiweiHu/DeGPT/blob/0f632cc52fabd70c7e7b3b9ad1ed7aef517a3714/README.md
  5. https://github.com/PeiweiHu/DeGPT/blob/0f632cc52fabd70c7e7b3b9ad1ed7aef517a3714/degpt/chat.py
  6. https://github.com/PeiweiHu/DeGPT/blob/0f632cc52fabd70c7e7b3b9ad1ed7aef517a3714/degpt/role.py
  7. https://github.com/PeiweiHu/DeGPT/blob/0f632cc52fabd70c7e7b3b9ad1ed7aef517a3714/degpt/mssc.py
  8. https://github.com/PeiweiHu/cinspector/blob/e827cfd9fccb1c5d7c4e0169c0da0bd2006de63b/README.md
  9. https://github.com/PeiweiHu/cinspector/blob/e827cfd9fccb1c5d7c4e0169c0da0bd2006de63b/LICENSE
  10. https://github.com/PeiweiHu/cinspector/blob/e827cfd9fccb1c5d7c4e0169c0da0bd2006de63b/setup.py