由 tekkenbugatti 重构、逆向工程并编写文档
目标平台:Linux x86_64 / Luau / Roblox 运行时引擎
Linusware 1.2 是面向 Roblox / Luau 的原生 Linux x86_64 运行时扩展与执行引擎。本仓库包含通过对 ELF 运行时组件进行二进制逆向工程而推导出的完整重构源代码,涵盖虚拟机钩子、操作码重映射表、权限提升机制以及标准通用命名约定(UNC)环境 API 的完整逆向分析。
HookedLuaResume(0x3a21d0)— VM 线程拦截以 14 字节内联 64 位绝对跳转钩子形式安装,并附带蹦床(trampoline),作用于 Roblox 虚拟机线程调度入口(lua_resume)。
L + 0x20 偏移处的 lua_State->global_State 来识别主游戏 VM。0x303fffffffffffff 赋给能力掩码并将 0x7 写入能力标志,自动将执行上下文提升至身份 7(LocalUser 无限制)。autoexec/ 目录中脚本的后台加载器。HookedCapThrower(0x399900)— 安全检查抑制cap_thrower)。tls_cap_depth,对应 %fs:ef8c)在执行用户脚本时动态抑制能力违规异常。OpcodeEncoder(0x399640)— 就地 Luau 字节码重映射器Roblox 的 VM 会打乱标准 Luau 字节码操作码以阻止静态分析。OpcodeEncoder 在内存中重新编码指令:
0x0829400003f02323):解码操作码 7 .. 0x42 的可变长度指令(AUX 双字)。0xfe7b):解码操作码 0x4a .. 0x59 的扩展可变长度指令。g_wire_for_opcode 查找表就地替换操作码字节。GrantProtoCapabilities(0x39a360)— 递归原型提升LuauProto)。&g_capability_grant)写入所有根函数及嵌套子函数(proto->p)的 proto + 0x38 处。实现标准执行 API:
hookfunction、hookmetamethod、newcclosure、clonefunction、isexecutorclosure、getrawmetatable、setrawmetatable。getupvalues、setupvalue、getconstants、setconstant、getprotos、setproto。readfile、writefile、、、、、、、。linusware_src/
├── include/
│ └── linusware/
│ ├── linusware.h # 核心引擎接口与公共导出
│ ├── messages.h # 字符串表、错误与日志常量
│ ├── script_environment.h # UNC 函数表注册
│ ├── workspace.h # 文件系统沙箱定义
│ ├── crypto.h # OpenSSL AES 与 SHA 封装
│ ├── encoding.h # Base64 与 LZ4 压缩辅助
│ ├── websocket.h # WebSocket 客户端接口
│ └── decompiler.h # Luau 字节码反编译器定义
├── src/
│ ├── linusware/
│ │ ├── hooks.cc # HookedLuaResume、CapThrower、OpcodeEncoder、GrantProto
│ │ ├── linusware.cc # IPC 服务器(exec.sock)与任务队列调度
│ │ ├── script_environment.cc# 58+ 个 UNC 环境 API 的实现
│ │ ├── workspace.cc # 沙箱化 IO 实现
│ │ ├── crypto.cc # 加密原语
│ │ ├── encoding.cc # Base64 与 LZ4 实现
│ │ ├── decompiler.cc # 原型反编译器实现
│ │ └── websocket.cc # 网络套接字层
│ └── cli/
│ ├── linusware_cli.cc # 独立 CLI 负载发送器
│ └── wayland_clipboard.cc # Wayland/X11 剪贴板桥接
└── CMakeLists.txt # 构建配置
cd linusware_src
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
由 tekkenbugatti 重构并逆向工程。
appendfiledelfilemakefolderdelfolderlistfilesisfolderisfilecrypt.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。