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
- https://www.ndss-symposium.org/ndss-paper/degpt-optimizing-decompiler-output-with-llm/
- https://www.ndss-symposium.org/wp-content/uploads/2024-401-paper.pdf
- https://api.crossref.org/works/10.14722/ndss.2024.24401
- https://github.com/PeiweiHu/DeGPT/blob/0f632cc52fabd70c7e7b3b9ad1ed7aef517a3714/README.md
- https://github.com/PeiweiHu/DeGPT/blob/0f632cc52fabd70c7e7b3b9ad1ed7aef517a3714/degpt/chat.py
- https://github.com/PeiweiHu/DeGPT/blob/0f632cc52fabd70c7e7b3b9ad1ed7aef517a3714/degpt/role.py
- https://github.com/PeiweiHu/DeGPT/blob/0f632cc52fabd70c7e7b3b9ad1ed7aef517a3714/degpt/mssc.py
- https://github.com/PeiweiHu/cinspector/blob/e827cfd9fccb1c5d7c4e0169c0da0bd2006de63b/README.md
- https://github.com/PeiweiHu/cinspector/blob/e827cfd9fccb1c5d7c4e0169c0da0bd2006de63b/LICENSE
- https://github.com/PeiweiHu/cinspector/blob/e827cfd9fccb1c5d7c4e0169c0da0bd2006de63b/setup.py