Elevator es el primer traductor binario estático capaz de convertir ejecutables completos x86-64 a la arquitectura AArch64 sin requerir información de depuración, código fuente ni suposiciones previas sobre la disposición del código. A diferencia de los sistemas tradicionales que emplean heurísticas o mecanismos de fallback en tiempo de ejecución para manejar errores de decodificación entre código y datos, Elevator adopta un enfoque radicalmente diferente: analiza todas las interpretaciones posibles de cada byte del programa original, considerándolo como dato, opcode o argumento de opcode, y genera una traducción separada para cada interpretación viable. Esto significa que el sistema construye múltiples trayectorias de flujo de control paralelas, eliminando únicamente aquellas que conducen a una terminación abnormal. La traducción se logra mediante la composición automática de «tiles» (bloques de código) derivados de una descripción de alto nivel de la arquitectura del conjunto de instrucciones fuente. El resultado es un binario completamente autocontenido que no incluye componentes de runtime en su código de confianza. Esta característica resulta revolucionaria porque permite probar, validar, certificar y firmar criptográficamente el código antes de su despliegue, reduciendo significativamente el riesgo comparado con emuladores o compiladores JIT convencionales. Los autores evaluaron Elevator con un corpus diverso de binarios reales, incluyendo la suite SPECint 2006 completa, demostrando que la traducción binaria estática de programa completo puede ser tanto confiable como práctica, alcanzando un rendimiento comparable o superior al de la emulación JIT en modo usuario de QEMU.
Elevator: el primer traductor que convierte ejecutables de x86-64 a AArch64 sin código fuente
