Desensamblador de código de bytes de Lua
Desensamble el código de bytes compilado de Lua 5.1 (archivos .luac) para inspeccionar instrucciones de máquinas virtuales, prototipos de funciones, constantes y variables locales. Cargue un archivo .luac o pegue su volcado hexadecimal para obtener un desmontaje estructurado completo con un árbol de funciones navegable y una decodificación detallada del código de operación. Todo el procesamiento es local y privado.
No bytecode loaded
Upload a compiled .luac file or paste its hex dump to begin disassembly
¿Por qué utilizar nuestro desensamblador Lua Bytecode?
- Análisis de código de bytes de Lua 5.1: analiza y desensambla el código de bytes compilado de Lua 5.1 (archivos .luac) con soporte completo para los 38 códigos de operación, modos de instrucción ABC/ABx/AsBx y decodificación adecuada de constantes, valores superiores, locales e información de números de línea.
- Árbol de funciones anidadas: explore la jerarquía completa del prototipo de funciones con una vista de árbol interactiva. Navegue entre cierres anidados, vea listados de instrucciones por función y profundice en funciones secundarias con un solo clic.
- Decodificación detallada de instrucciones: cada instrucción está completamente decodificada con hexadecimal sin formato, nombre de código de operación, operandos de registro y un comentario legible por humanos que explica su efecto. El resaltado especial de las instrucciones de devolución y llamada final hace que el flujo de control sea fácil de seguir.
- Procesamiento 100 % local en el navegador: todo el análisis y desmontaje del código de bytes se realiza completamente en su navegador. Sus archivos .luac y volcados hexadecimales nunca salen de su dispositivo. No hay cargas a ningún servidor, no es necesario registrarse y no hay límites de uso. Gratis para siempre.
Casos de uso comunes para el desensamblador de códigos de bytes de Lua
- Aplicaciones Lua de ingeniería inversa: desmonte scripts Lua compilados de juegos, sistemas integrados y aplicaciones para comprender su lógica. El desensamblador de código de bytes revela las instrucciones exactas y el flujo de control, lo que le ayuda a analizar el código Lua propietario u ofuscado.
- Aprendizaje de los aspectos internos de la máquina virtual Lua: utilice el desensamblador como herramienta educativa para comprender cómo ejecuta el código Lua VM. Vea cómo las construcciones de Lua de alto nivel, como bucles, llamadas a funciones, cierres y operaciones de tablas, se traducen en instrucciones de código de bytes.
- Auditoría de seguridad y análisis de malware: analice los scripts Lua compilados en busca de comportamiento malicioso. Desensamble archivos .luac potencialmente dañinos para inspeccionar sus instrucciones, detectar cadenas constantes sospechosas y comprender todo el alcance de la lógica integrada sin ejecutarla.
- Verificación del ofuscador de Lua: pruebe la eficacia de las herramientas de ofuscación de Lua desmontando la salida. Verifique que el cambio de nombre de variables, la codificación de cadenas y la ofuscación del flujo de control se apliquen correctamente al nivel de código de bytes, no solo al nivel de origen.
- Investigación sobre compiladores y desarrollo de lenguajes: compare la salida de código de bytes de diferentes compiladores y versiones de Lua. Comprenda las decisiones de optimización, la selección de instrucciones y cómo las diferentes construcciones de Lua se compilan de manera diferente entre las versiones 5.1 a 5.3.
- Recuperación y documentación de código heredado: recupere la comprensión de los módulos Lua archivados o no documentados desensamblando sus formularios compilados. La lista detallada de instrucciones, las tablas de constantes y la información de variables locales ayudan a reconstruir la semántica del código original.
¿Qué es el desmontaje de Lua Bytecode?
El desensamblaje del código de bytes de Lua es el proceso de convertir el código de bytes de Lua compilado (archivos .luac) nuevamente en una secuencia legible por humanos de instrucciones de máquina virtual. Cuando compila un script Lua con luac o lo ejecuta a través de un intérprete de Lua, el código fuente se traduce a un formato de código de bytes intermedio que ejecuta Lua VM. El desensamblado invierte este formato compilado para revelar las instrucciones, constantes, valores superiores y prototipos de funciones exactos que componen el programa compilado, sin requerir acceso al código fuente original.
Cómo funciona nuestro desensamblador Lua Bytecode
- Entrada: cargue un archivo .luac compilado o pegue su representación hexadecimal en el panel de entrada. La herramienta acepta el formato de código de bytes Lua 5.1, que es la versión más compatible para el análisis de códigos de bytes y la ingeniería inversa de scripts Lua compilados.
- Análisis: el desensamblador lee el encabezado binario para verificar la firma, la versión, el endianismo y los tamaños de los tipos de datos. Luego analiza recursivamente todos los prototipos de funciones, decodificando cada instrucción de 32 bits en su código de operación y operandos (A, B, C, Bx o sBx según el modo de instrucción).
- Salida: La salida estructurada muestra la información del encabezado, un árbol de funciones navegable, prototipos detallados por función (parámetros, tamaño de pila, estado vararg), una lista completa de instrucciones con comentarios, una tabla de constantes y alcances de variables locales.
Qué se muestra durante el desmontaje
- Información del encabezado: firma del código de bytes, versión de Lua, endianidad y tamaños de tipos de datos (int, size_t, instrucción, número) que describen el formato del código de bytes.
- Árbol de funciones: una vista jerárquica de todos los prototipos de funciones en el archivo de código de bytes, con rangos de líneas y recuentos de instrucciones para una navegación rápida entre cierres anidados.
- Listado de instrucciones: cada instrucción muestra su desplazamiento de dirección, valor hexadecimal sin procesar, nombre del código de operación (MOVE, LOADK, ADD, CALL, etc.), desmontaje decodificado con referencias de registros/constantes y un comentario en inglés sencillo que explica la operación.
- Tablas de constantes y locales: todos los valores constantes (números, cadenas, booleanos, nulos) utilizados por la función, además de los alcances de las variables locales con sus posiciones de contador de inicio y fin del programa.
Privacidad, seguridad y disponibilidad
Su privacidad está totalmente protegida. Todo el procesamiento de desensamblaje del código de bytes de Lua ocurre completamente dentro de su navegador usando JavaScript: nunca se cargan, almacenan, registran o comparten datos de códigos de bytes a ningún servidor. La herramienta no requiere la creación de una cuenta, ni el registro, y no impone límites de tamaño de archivo. Es completamente gratuito, sin niveles premium, límites de uso ni cargos ocultos. Puede usarlo tantas veces como sea necesario para investigaciones de seguridad, ingeniería inversa, educación o cualquier otro propósito.
Preguntas frecuentes
Un desensamblador de código de bytes de Lua es una herramienta que convierte el código de bytes de Lua compilado (archivos .luac) en una secuencia legible por humanos de instrucciones de máquina virtual. Muestra los códigos de operación exactos, operandos de registro, constantes y prototipos de funciones que ejecuta Lua VM, lo que le permite comprender la versión compilada de un script Lua sin acceso al código fuente original.
El desensamblador es totalmente compatible con el formato de código de bytes Lua 5.1, que es la versión más descompilada y analizada. Lua 5.1 tiene 38 códigos de operación que cubren todas las operaciones comunes como movimientos, aritmética, acceso a tablas, llamadas a funciones, bucles y cierres. El analizador valida la firma y la versión del código de bytes e informará un error para las versiones no compatibles.
Puede cargar un archivo .luac directamente usando el botón de carga, o puede pegar un volcado hexadecimal del código de bytes en el área de texto. La herramienta analizará automáticamente los datos binarios y mostrará el desmontaje estructurado. Para volcados hexadecimales, la entrada debe ser una cadena hexadecimal simple con espacios opcionales o saltos de línea entre bytes.
Sí. El panel del árbol de funciones muestra todos los prototipos de funciones en el archivo de código de bytes, incluidos los cierres anidados. Haga clic en cualquier función del árbol para cambiar la lista de instrucciones y la tabla de constantes a esa función. Esto es especialmente útil para analizar código Lua ofuscado que utiliza múltiples cierres anidados.
La salida incluye el encabezado del código de bytes (firma, versión, endianidad, tamaños de datos), un árbol de funciones con todos los prototipos, detalles por función (parámetros, tamaño de pila, estado vararg), una lista completa de instrucciones con hexadecimal sin formato, nombres de códigos de operación, operandos decodificados y comentarios, una tabla de constantes con todos los valores numéricos/cadenas/booleanos/nulo y una tabla de variables locales con información de alcance.
Lua 5.1 utiliza tres modos de codificación de instrucciones. El modo ABC codifica tres operandos: A (registro de destino de 8 bits), B (registro de origen de 9 bits o índice constante) y C (segundo origen u opciones de 9 bits). El modo ABx codifica A y un operando Bx combinado (18 bits) utilizado para índices más grandes en la tabla de constantes. El modo AsBx es una variante con signo de ABx que se utiliza para desplazamientos de salto en instrucciones JMP, FORLOOP y FORPREP.
Absolutamente. Todo el análisis y desensamblaje del código de bytes se realiza completamente dentro de su navegador mediante JavaScript. Sus archivos .luac y volcados hexadecimales nunca salen de su dispositivo y nunca se envían a ningún servidor. No se requiere ninguna cuenta, no se almacenan datos y no se realiza ningún seguimiento. Esto hace que la herramienta sea segura para analizar scripts Lua compilados confidenciales o propietarios.
El código de bytes de Lua ofuscado puede mostrar patrones inusuales como cadenas constantes excesivamente largas (cargas útiles codificadas sospechosas), una gran cantidad de cierres anidados, instrucciones MOVE redundantes, uso intensivo de GETUPVAL/SETUPVAL para acceso indirecto a variables o flujo de control opaco con muchas instrucciones JMP. El desensamblador ayuda a detectar estos patrones mostrando la secuencia de instrucciones completa.
Sí, 100% gratis. No hay registro, ni nivel premium, ni límites de uso ni límites de tamaño de archivo. La herramienta se ejecuta completamente en su navegador y siempre será de uso gratuito en Aback Tools.