Mostra i principali dati dell'item
Utilizzo di LLM per classificare le varianti del codice decompilato
| 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 |
Files in questo item
Questo item appare nelle seguenti collezioni
-
Laurea Magistrale [7402]


