
Движок времени выполнения с обратной разработкой для Roblox/Luau с перехватом VM, переназначением опкодов, эскалацией привилегий и UNC-средой скриптов для выполнения произвольных скриптов.
Реконструировано, подвергнуто обратной разработке и задокументировано tekkenbugatti
Целевая платформа: Linux x86_64 / Luau / Roblox Runtime Engine
Linusware 1.2 — это нативное расширение среды выполнения и исполнительный движок для Roblox / Luau на Linux x86_64. Данный репозиторий содержит полный реконструированный исходный код, полученный путём обратной разработки бинарных компонентов ELF, включая полный обратный анализ хуков виртуальной машины, таблиц ремаппинга опкодов, механик повышения привилегий и стандартных API среды Universal Naming Convention (UNC).
HookedLuaResume (0x3a21d0) — Перехват потоков VMУстанавливается как встроенный 14-байтовый 64-битный хук абсолютного перехода с трамплином на точку входа диспетчера потоков виртуальной машины Roblox (lua_resume).
lua_State->global_State, расположенный по смещению L + 0x20.0x303fffffffffffff маске возможностей и записывая 0x7 во флаги возможностей.autoexec/, при первом контакте с VM.HookedCapThrower (0x399900) — Подавление проверок безопасностиcap_thrower).tls_cap_depth, соответствующее %fs:ef8c) для динамического подавления исключений нарушения возможностей при выполнении пользовательских скриптов.OpcodeEncoder (0x399640) — Ремаппер байткода Luau на местеVM Roblox перемешивает стандартные опкоды байткода Luau для затруднения статического анализа. OpcodeEncoder перекодирует инструкции в памяти:
0x0829400003f02323): Декодирует инструкции переменной длины (двойные слова AUX) для опкодов 7 .. 0x42.0xfe7b): Декодирует расширенные инструкции переменной длины для опкодов 0x4a .. 0x59.g_wire_for_opcode.GrantProtoCapabilities (0x39a360) — Рекурсивное повышение прототиповLuauProto).&g_capability_grant) в proto + 0x38 для всех корневых и вложенных дочерних функций (proto->p).Реализует стандартные API выполнения:
hookfunction, hookmetamethod, newcclosure, clonefunction, isexecutorclosure, getrawmetatable, setrawmetatable.getupvalues, setupvalue, getconstants, setconstant, getprotos, setproto.readfile, , , , , , , , .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+ API среды UNC
│ │ ├── workspace.cc # Реализация изолированного ввода-вывода
│ │ ├── 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.
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.