UnstableGrape/Moonveil-1.4.5-Deobfuscator

GitHub: UnstableGrape/Moonveil-1.4.5-Deobfuscator

针对 MoonVeil v1.4.5 混淆器的 Luau 脚本去虚拟化与反编译工具,通过解码加密 payload、恢复嵌套 prototype 并重建控制流来输出可运行的源代码。

Stars: 0 | Forks: 0

# MoonVeil v1.4.5 反混淆器 — 自动化套件 ## 快速开始 - 双击 `Start GUI.bat` 打开文件选择器界面。 - 或者将混淆的 `.lua`/`.luau` 文件拖放到 `Decompile File.bat` 上。 - 运行 `Verify Installation.bat` 检查打包的组件。 无需安装步骤或下载 Python 包。必须安装 Python 3.10+;测试过的 Luau runtime 已在本地打包。 本项目对测试过的 MoonVeil Obfuscator v1.4.5 封壳进行去虚拟化,并输出可运行的 Luau 代码。它会解码加密的 payload,恢复所有嵌套的 prototype,强制 MoonVeil 的延迟指令解码器趋于稳定,映射恢复出的 VM 操作,重建闭包和控制流,并通过编译器验证结果。 输出通过生成的寄存器名称保留了 VM 行为。原始的局部变量名、格式和注释在混淆时已被丢弃,无法完全恢复。 ## 最快上手 在此文件夹中: ``` python -m moonveil decompile script.lua -o clean.luau --artifacts output ``` 预期结果: ``` decompiled 26 prototypes and 1301 instruction records into ...\clean.luau sandbox verification matched 536 observable events ``` `clean.luau` 是可运行的恢复程序。可选的 `--artifacts` 目录包含解码后的 VM 图、常量、指令、协议和验证报告。 要使用文件选择器 GUI: ``` python -m moonveil.gui ``` 选择混淆的 `.lua`/`.luau` 文件,选择输出文件,然后点击 **Decompile**。 ## 环境要求 - Python 3.10 或更高版本 - 官方的 Luau CLI 二进制文件(`luau`,最好包含 `luau-compile`) runtime 按以下顺序发现: 1. `--luau C:\path\to\luau.exe` 2. `LUAU_PATH` 3. `.tools\luau-0.722\luau.exe` 4. `PATH` 上的 `luau`/`luau.exe` 本工作区已在 `.tools` 下包含测试过的 Luau runtime。 ## 反编译命令的执行流程 1. 确认输入与已测试的 v1.4.5 封壳布局匹配。 2. 仅在官方 Luau CLI 中运行 MoonVeil 的解码/bootstrap 阶段。 3. 在受保护的程序接收到真实 API 之前,转储序列化的 prototype 图。 4. 发现所有嵌套的 prototype 并规范化所有延迟指令。 5. 解码打包的操作数,并提取 payload 中存在的所有 opcode ID。 6. 重建寄存器、调用、表、分支、泛型 for 循环、闭包、捕获和 upvalue。 7. 将直线指令分组为语义基本块。 8. 输出可运行的 Luau,并在可用时使用 `luau-compile` 进行验证。 9. 在相同的纯代理 sandbox 中执行两个版本,并比较确定性的可观察事件。 对于提供的示例,所有 39 个稳定的 opcode ID 均受支持,并且恢复的源代码按顺序匹配全部 536 个可观察的 sandbox 事件。 ## 输出与产物 使用 `--artifacts output` 时,该命令将输出: - `clean.luau`(位于传递给 `-o` 的路径):可运行的恢复 Luau 代码 - `prototype_graph.json`:无损类型的 MoonVeil 表图 - `prototypes.json`:规范化的静态 prototype 树 - `decoded_prototypes.json`:稳定的指令、解码的字符串、字段和探测效果 - `constants.json`:恢复的常量 - `moonveil.asm`:原始的私有 VM 列表 - `moonveil.raw.asm`:完整的图形渲染 - `decode_protocol.txt`:详尽的解码器协议 - `decompile_manifest.json`:输入哈希、runtime、opcode 集和验证结果 ## 其他命令 ``` python -m moonveil analyze script.lua python -m moonveil extract script.lua -o output\outer_payload.bin python -m moonveil dump script.lua -o output python -m moonveil instrument script.lua -o output\instrumented.luau ``` `dump` 会在语义提升之前停止,这在研究不同的封壳构建时非常有用。 ## 准确性与局限性 当反编译器遇到不支持的封壳布局或未映射的 opcode 时,将执行失败关闭。它不会为未知指令凭空捏造源代码。 生成的程序在必要时刻意保持寄存器显式。这使得闭包引用和分支行为变得可审计,并避免了在源代码美化期间进行不安全的猜测。直线指令已被压缩为基本块,但结果无法重现原始的变量名。 sandbox 验证是强有力的回归证据,但并不能证明对所有可能的 Roblox 状态都有效。它执行了全局变量、属性、调用、参数、表配置、回调、任务生成和赋值操作,且不暴露 Roblox、文件系统或网络 API。仅当您明确希望跳过该比较时,才使用 `--no-verify`。 本实现针对经过测试的 MoonVeil v1.4.5 封壳布局。其他版本可能使用不同的字段 ID、操作数编码或调度器结构。 ## 安全性 官方 Luau CLI 不提供 Roblox 服务。受保护的程序使用代理对象进行评估,并禁用了 `loadstring`;它不会从此工具接收网络或文件系统功能。尽管如此,请仅检查您获得授权分析的代码,并对未知的封壳使用一次性的环境,因为在受保护的 MoonVeil payload 之外可能存在任意语句。 ## 测试 ``` python -m unittest discover -s tests -v python -m moonveil decompile script.lua -o output\clean.luau --artifacts output\run ```
标签:Lua, Luau, Python, 云安全监控, 代码反编译, 代码重构, 反混淆工具, 无后门, 逆向工具, 静态分析