Star on GitHubStar1.1k stars

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.

Sources reviewed

Reviewed against the paper and its primary sources. Cite the original authors using the linked paper or BibTeX.

Report an outdated entry Suggest a translation fix

Discussed in the survey

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. README.md GitHub · PeiweiHu/DeGPT · Revision 0f632cc
  5. degpt/chat.py GitHub · PeiweiHu/DeGPT · Revision 0f632cc
  6. degpt/role.py GitHub · PeiweiHu/DeGPT · Revision 0f632cc
  7. degpt/mssc.py GitHub · PeiweiHu/DeGPT · Revision 0f632cc
  8. README.md GitHub · PeiweiHu/cinspector · Revision e827cfd
  9. LICENSE GitHub · PeiweiHu/cinspector · Revision e827cfd
  10. setup.py GitHub · PeiweiHu/cinspector · Revision e827cfd
↑↓ move↵ open⌘↵ new tab