| dc.contributor.advisor | Dell'Amico, Matteo <1979> | |
| dc.contributor.advisor | Lagorio, Giovanni <1973> | |
| dc.contributor.advisor | Ribaudo, Marina <1964> | |
| dc.contributor.author | Timossi, Luigi <2000> | |
| dc.date.accessioned | 2026-04-02T14:24:22Z | |
| dc.date.available | 2026-04-02T14:24:22Z | |
| dc.date.issued | 2026-03-27 | |
| dc.identifier.uri | https://unire.unige.it/handle/123456789/15535 | |
| dc.description.abstract | Utilizziamo modelli linguistici di grandi dimensioni (LLM) per valutare e classificare le varianti del codice decompilato
al fine di affrontare la sfida intrinsecamente soggettiva di valutare la qualità dell'output del decompilatore e la
“somiglianza con l'umano”. Confrontiamo due approcci principali: l'utilizzo di metriche statistiche (perplexity
e total loss) e l'impiego di LLM come giudici qualitativi (LLM-as-a-Judge). Valutiamo
due modelli open weight, qwen-3 e deepseek-r1, su un set di dati di progetti C reali
decompilati con Ghidra (confrontando diversi commit e Pull Request) e
altri decompilatori.
I nostri risultati rivelano che la perplexity è un indicatore inadeguato della human-likeness, poiché il codice umano presenta
naturalmente un'entropia più elevata rispetto al boilerplate rigido e altamente ripetitivo generato
dai decompilatori. Dimostriamo che la total loss è una metrica quantitativa superiore, perché
accumula errori di previsione su tutti i token, penalizzando la verbosità altamente predittiva
dei decompilatori. Mostriamo che l'astrazione del codice in Abstract Syntax Trees (AST)
mitiga i pregiudizi lessicali specifici dei decompilatori. Parallelamente, l'approccio qualitativo LLM-as-a-Judge
mostra risultati molto promettenti, con deepseek-r1 che raggiunge un allineamento del ∼74%
con il consenso umano. Tuttavia, identifichiamo anche vulnerabilità critiche nei LLM, come l'
iperfissazione lessicale e le allucinazioni.
Questo lavoro stabilisce una linea di base per la valutazione automatizzata dei decompilatori ed evidenzia sia
il potenziale che i limiti dell'utilizzo degli LLM nei flussi di lavoro di reverse engineering. | it_IT |
| dc.description.abstract | We use large language models (LLMs) to evaluate and rank decompiled code variants
to address the inherently subjective challenge of assessing decompiler output quality and
“human-likeness”. We compare two main approaches: using statistical metrics (perplex-
ity and Total Loss) and employing LLMs as qualitative judges (LLM-as-a-Judge). We
evaluate two open-weight models, qwen-3 and deepseek-r1, on a dataset of real-world C
projects decompiled with Ghidra (comparing different commits and Pull Requests) and
other decompilers.
Our findings reveal that perplexity is a poor proxy for human-likeness, as human code nat-
urally exhibits higher entropy compared to the rigid, highly repetitive boilerplate generated
by decompilers. We demonstrate that Total Loss is a superior quantitative metric, because
it accumulates prediction errors across all tokens, penalizing the highly predictive ver-
bosity of decompilers. We show that abstracting code into Abstract Syntax Trees (ASTs)
mitigates decompiler-specific lexical biases. In parallel, the qualitative LLM-as-a-Judge
approach shows significant promise, with deepseek-r1 achieving an alignment of ∼74%
with human consensus. However, we also identify critical vulnerabilities in LLMs, such as
lexical hyper-fixation and hallucinations.
This work establishes a baseline for automated decompiler evaluation and highlights both
the potential and the limitations of using LLMs in reverse engineering workflows. | en_UK |
| dc.language.iso | en | |
| dc.rights | info:eu-repo/semantics/openAccess | |
| dc.title | Utilizzo di LLM per classificare le varianti del codice decompilato | it_IT |
| dc.title.alternative | Using LLMs to Rank Decompiled Code Variants | en_UK |
| dc.type | info:eu-repo/semantics/masterThesis | |
| dc.subject.miur | INF/01 - INFORMATICA | |
| dc.publisher.name | Università degli studi di Genova | |
| dc.date.academicyear | 2024/2025 | |
| dc.description.corsolaurea | 10852 - COMPUTER SCIENCE | |
| dc.description.area | 7 - SCIENZE MAT.FIS.NAT. | |
| dc.description.department | 100023 - DIPARTIMENTO DI INFORMATICA, BIOINGEGNERIA, ROBOTICA E INGEGNERIA DEI SISTEMI | |