
محرك تشغيل مُهندَس عكسيًا لـ Roblox/Luau مع ربط الآلة الافتراضية (VM hooking)، وإعادة تعيين رموز العمليات (opcode remapping)، وتصعيد الصلاحيات (capability escalation)، وبيئة سكربتات UNC لتنفيذ سكربتات عشوائية.
أُعيد بناؤه وهندسته عكسيًا وتوثيقه بواسطة tekkenbugatti
المنصة المستهدفة: Linux x86_64 / Luau / محرك Roblox Runtime
Linusware 1.2 هو امتداد ومحرك تنفيذ أصلي لنظام Linux x86_64 لـ Roblox / Luau. يحتوي هذا المستودع على الكود المصدري الكامل المعاد بناؤه والمشتق من الهندسة العكسية الثنائية لمكونات ELF الخاصة بوقت التشغيل، بما في ذلك التحليل العكسي الكامل لخطافات الآلة الافتراضية، وجداول إعادة تعيين الأوبكود، وآليات تصعيد الامتيازات، وواجهات برمجة تطبيقات بيئة Universal Naming Convention (UNC) القياسية.
HookedLuaResume (0x3a21d0) — اعتراض خيوط الآلة الافتراضيةمُثبَّت كخطاف قفزة مطلقة 14 بايت 64-بت مع trampoline على نقطة إدخال توزيع الخيوط في الآلة الافتراضية لـ Roblox (lua_resume).
lua_State->global_State الموجود عند الإزاحة L + 0x20.0x303fffffffffffff لقناع القدرات وكتابة 0x7 لعلامات القدرات.autoexec/ عند أول اتصال بالآلة الافتراضية.HookedCapThrower (0x399900) — قمع فحوصات الأمانcap_thrower).tls_cap_depth، المقابل لـ %fs:ef8c) لقمع استثناءات انتهاك القدرات ديناميكيًا أثناء تنفيذ سكربتات المستخدم.OpcodeEncoder (0x399640) — إعادة تعيين بايت كود Luau في المكانتقوم آلة Roblox الافتراضية بتشويش أوبكودات Luau القياسية لردع التحليل الثابت. يعيد OpcodeEncoder ترميز التعليمات في الذاكرة:
0x0829400003f02323): يفك ترميز التعليمات متغيرة الطول (كلمات AUX) للأوبكودات 7 .. 0x42.0xfe7b): يفك ترميز التعليمات متغيرة الطول الموسعة للأوبكودات 0x4a .. 0x59.g_wire_for_opcode.GrantProtoCapabilities (0x39a360) — تصعيد النماذج الأولية بشكل متكررLuauProto) بشكل متكرر.&g_capability_grant) إلى proto + 0x38 على جميع الدوال الجذرية والفرعية المتداخلة (proto->p).تنفذ واجهات برمجة التطبيقات القياسية:
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 واجهة برمجة تطبيقات لبيئة 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.