
Motor de ejecución de ingeniería inversa para Roblox/Luau con enganche de VM, reasignación de opcodes, escalada de capacidades y entorno de scripts UNC para ejecutar scripts arbitrarios.
Reconstruido, Ingeenería Inversa y Documentado por tekkenbugatti
Plataforma objetivo: Linux x86_64 / Luau / Motor de ejecución de Roblox
Linusware 1.2 es una extensión de runtime nativa para Linux x86_64 y un motor de ejecución para Roblox / Luau. Este repositorio contiene el código fuente completo reconstruido, derivado mediante ingeniería inversa binaria de los componentes del runtime ELF, incluido el análisis inverso completo de los hooks de la máquina virtual, las tablas de reasignación de opcodes, los mecanismos de escalada de privilegios y las API de entorno estándar de Convención de Nombres Universales (UNC).
HookedLuaResume (0x3a21d0) — Intercepción de hilos de la VMInstalado como un hook de salto absoluto en línea de 14 bytes de 64 bits con un trampolín en el punto de entrada de despacho de hilos de la máquina virtual de Roblox (lua_resume).
lua_State->global_State ubicado en el desplazamiento L + 0x20.0x303fffffffffffff a la máscara de capacidades y escribiendo 0x7 en los indicadores de capacidades.autoexec/ en el primer contacto con la VM.HookedCapThrower (0x399900) — Supresión de comprobaciones de seguridadcap_thrower).tls_cap_depth, correspondiente a %fs:ef8c) para suprimir dinámicamente las excepciones por violación de capacidades mientras se ejecutan scripts de usuario.OpcodeEncoder (0x399640) — Reasignador de bytecode Luau en memoriaLa VM de Roblox codifica los opcodes estándar del bytecode Luau para disuadir el análisis estático. OpcodeEncoder re-codifica las instrucciones en memoria:
0x0829400003f02323): Decodifica instrucciones de longitud variable (dwords AUX) para los opcodes 7 .. 0x42.0xfe7b): Decodifica instrucciones extendidas de longitud variable para los opcodes 0x4a .. 0x59.g_wire_for_opcode.GrantProtoCapabilities (0x39a360) — Escalada recursiva de prototiposLuauProto).&g_capability_grant) en proto + 0x38 en todas las funciones raíz y secundarias anidadas (proto->p).Implementa las API de ejecución estándar:
hookfunction, hookmetamethod, newcclosure, clonefunction, isexecutorclosure, getrawmetatable, setrawmetatable.getupvalues, setupvalue, getconstants, setconstant, getprotos, setproto.readfile, , , , , , , , .linusware_src/
├── include/
│ └── linusware/
│ ├── linusware.h # Interfaces principales del motor y exportaciones públicas
│ ├── messages.h # Tablas de cadenas, errores y constantes de registro
│ ├── script_environment.h # Registros de la tabla de funciones UNC
│ ├── workspace.h # Definiciones del sandbox del sistema de archivos
│ ├── crypto.h # Envoltorios de OpenSSL AES y SHA
│ ├── encoding.h # Ayudantes de compresión Base64 y LZ4
│ ├── websocket.h # Interfaces del cliente WebSocket
│ └── decompiler.h # Definiciones del descompilador de bytecode Luau
├── src/
│ ├── linusware/
│ │ ├── hooks.cc # HookedLuaResume, CapThrower, OpcodeEncoder, GrantProto
│ │ ├── linusware.cc # Servidor IPC (exec.sock) y despacho de la cola de trabajos
│ │ ├── script_environment.cc# Implementación de más de 58 API de entorno UNC
│ │ ├── workspace.cc # Implementación de IO en sandbox
│ │ ├── crypto.cc # Primitivas criptográficas
│ │ ├── encoding.cc # Implementación de Base64 y LZ4
│ │ ├── decompiler.cc # Implementación del descompilador de prototipos
│ │ └── websocket.cc # Capa de sockets de red
│ └── cli/
│ ├── linusware_cli.cc # Enviador de cargas útiles CLI independiente
│ └── wayland_clipboard.cc # Puente de portapapeles Wayland/X11
└── CMakeLists.txt # Configuración de compilación
cd linusware_src
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
Reconstruido y sometido a ingeniería inversa por tekkenbugatti.
writefileappendfiledelfilemakefolderdelfolderlistfilesisfolderisfilecrypt.encrypt, crypt.decrypt (AES-CBC, AES-GCM), crypt.hash (SHA-256, SHA-384, SHA-512), crypt.base64encode, crypt.base64decode, crypt.lz4compress, crypt.lz4decompress.request, HttpGet, WebSocket.connect, decompile, cloneref, setclipboard, getfpscap, setfpscap.