
tekkenbugatti により再構築・リバースエンジニアリング・ドキュメント化
対象プラットフォーム: Linux x86_64 / Luau / Roblox ランタイムエンジン
Linusware 1.2 は、Roblox / Luau 向けのネイティブ Linux x86_64 ランタイム拡張および実行エンジンです。このリポジトリには、ELF ランタイムコンポーネントのバイナリリバースエンジニアリングを通じて導出された完全な再構築ソースコードが含まれており、仮想マシンフック、オペコード再マッピングテーブル、権限昇格メカニズム、標準 Universal Naming Convention (UNC) 環境 API の完全なリバース解析を含みます。
HookedLuaResume (0x3a21d0) — VM スレッドインターセプションRoblox 仮想マシンのスレッドディスパッチエントリ (lua_resume) に、トランポリン付きのインライン 14 バイト 64 ビット絶対ジャンプフックとしてインストールされます。
L + 0x20 オフセットにある lua_State->global_State を読み取ることで、プライマリゲーム VM を識別します。0x303fffffffffffff を割り当て、ケイパビリティフラグに 0x7 を書き込むことで、実行コンテキストを自動的に Identity 7 (LocalUser 無制限) に昇格させます。autoexec/ に配置されたスクリプトのバックグラウンドローダーを自動的にスキャンして起動します。HookedCapThrower (0x399900) — セキュリティチェック抑制cap_thrower) をインターセプトします。tls_cap_depth、%fs:ef8c に対応) を利用して、ユーザースクリプト実行中にケイパビリティ違反例外を動的に抑制します。OpcodeEncoder (0x399640) — インプレース Luau バイトコードリマッパーRoblox の VM は静的解析を妨害するために標準 Luau バイトコードオペコードをスクランブルします。OpcodeEncoder はメモリ内の命令を再エンコードします:
0x0829400003f02323): オペコード 7 .. 0x42 の可変長命令 (AUX dwords) をデコードします。0xfe7b): オペコード 0x4a .. 0x59 の拡張可変長命令をデコードします。g_wire_for_opcode ルックアップテーブルを使用して、オペコードバイトをインプレースで置き換えます。GrantProtoCapabilities (0x39a360) — 再帰的プロトタイプ昇格LuauProto) を再帰的に走査します。proto->p) の proto + 0x38 に、グローバルケイパビリティディスクリプタ (&g_capability_grant) のアドレスを書き込みます。標準実行 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。