Análisis del impacto de la evolución de la infraestructura de compilación LLVM en la ofuscación de código fuente

Identificadores
Statistics
Metadata
Show full item recordAlternative title
Analysis of the impact of the evolution of the LLVM compilation infrastructure on source code obfuscation
Author/s
Vázquez Rodríguez, ElenaDate
2025-12-19Department
Ingeniería InformáticaAbstract
La rápida expansión de las arquitecturas de hardware ha incrementado significativamente la complejidad de la optimización del software, lo que ha impulsado el desarrollo acelerado de infraestructuras de compilación más robustas y flexibles. Sin embargo, esta evolución constante dificulta el seguimiento detallado de los cambios introducidos en cada nueva versión, lo que puede afectar negativamente tanto la gestión de optimizaciones como la eficiencia global del proceso de compilación.
Con el objetivo de analizar de forma sistemática la evolución de la infraestructura de compilación LLVM, este trabajo presenta un estudio comparativo exhaustivo de sus versiones, desde la 3.9 hasta la 19.1, incluyendo la última revisión disponible de cada una. Para ello, se emplea el conjunto de pruebas Polybench como base, compilando un binario específico para cada versión de LLVM mediante la aplicación de sus distintos passes y explorando sus posibles combinaciones. Este enfoque permite clasificar los passes en sus correspondientes pass managers, así como identificar anidaciones y un primer conjunto de passes combinables en cada versión del compilador.
Posteriormente, y con el fin de evaluar el impacto práctico de las combinaciones de passes identificadas, se llevan a cabo pruebas de ofuscación sobre los binarios generados, usando como métrica el número de instrucciones en ensamblador. Estas pruebas son fácilmente adaptables y permiten determinar qué configuraciones y versiones de LLVM ofrecen una mayor resistencia a la ingeniería inversa o una mayor alteración del flujo de control, añadiendo así una dimensión adicional de análisis centrada en la robustez y aplicabilidad de los passes en contextos de protección de software.
Para garantizar la reproducibilidad y aislamiento de los entornos experimentales, se construyó un conjunto de contenedores Docker personalizados, cada uno con la instalación exacta y básica de una versión específica de LLVM. Los resultados muestran que la evolución de LLVM ha priorizado una mayor eficiencia en el proceso de compilación, reduciendo la cantidad de passes necesarios mediante el nuevo pass manager, que además proporciona un mayor control y modularidad en su ejecución.
En conjunto, este estudio ofrece una visión clara, detallada y reproducible de la evolución estructural y funcional de LLVM, destacando los cambios en sus capacidades de ofuscación y su utilidad en procesos avanzados.






