MrAzizCode/3ziz-deobfuscator

GitHub: MrAzizCode/3ziz-deobfuscator

一款纯静态的 Windows 桌面应用,用于读取、识别和还原混淆的 Lua/Luau Roblox 脚本及 VM 字节码,全程不执行任何提交的代码。

Stars: 0 | Forks: 0

# 3ziz Deobfuscator 一款用于读取混淆 Lua 和 Luau 的 Windows 桌面应用程序,其核心基于一条 原则:**提交的代码永远不会被执行。** 所有操作均为静态的——包括解析、 解码和重构。这里没有“运行脚本”按钮,也不存在任何 用于评估您所提供代码的路径。 ## 功能 **读取现代 Lua 和 Luau。** 内置的词法分析器和解析器支持 Lua 5.1 到 Luau 的所有特性:位运算符、向下取整除法、十六进制浮点和二进制字面量、 数字分隔符、字符串插值、复合赋值、`continue`、类型 注解以及 `goto`/标签。现成的 Lua 5.1 解析器会 拒绝的源代码依然能够得到分析。 **识别代码类型。** 评分检测器会对纯 Lua、 Luau、Lua 5.1 字节码、VM 审计 IR 以及已知的混淆器家族进行分类,并将 证据(包括负面证据)记录在报告中。家族 插件只有在置信度和差值超过阈值时才会被选中;否则将 运行通用的静态路由并声明存在的歧义。 **解包受保护的脚本。** Luraph 家族的 payload 流可以定位到任何 Lua 字符串形式中,支持以 32 位字节顺序解码,并进行解压缩或直接读取。 容器计数偏差是从字节中推断出来的,这要求 候选对象必须解码整个流并解析所有引用,因此即使构建 附带了不同的常量,也依然可读。 **将 VM 字节码去虚拟化还原为 Lua。** 解码后的指令记录通过 类型化的操作码效果模型被提升为真实、可重新解析的 Lua 代码: 恢复的全局名称、字符串和数字字面量、方法调用以及 折叠的链式查找。分支操作数通过其寻址模式进行解析—— 绝对寻址、相对前向寻址、相对后向寻址——这使得控制流变得可控: 随后会对代码块进行重新排序,使控制流可以顺序执行而不是跳转,当某个区域被证明只有单一入口和出口时,条件判断就会转换为 `if` 语句,而入口点无法到达的代码会被识别为诱饵填充并被省略,同时报告其数量。 **反汇编 Lua 5.1 字节码。** 具备有限深度的结构验证器和 反汇编器,会在分配内存前检查深度、原型、指令、常量和调试表 限制。 **报告功能,而非猜测。** 一个基于可达性中立的清单列出了静态发现的 API、URL 和可疑的功能,并对其含义 有明确的限制说明。 **导出可验证的捆绑包。** 每个任务都会创建一个新目录:输入的 字节精确副本、可读的输出、以证据优先的精确 审计、行为和验证报告、机器可读的 JSON、警告文件 以及带有每个制品 SHA-256 校验值的清单。 ## 它不声称能做到的 编译过程会破坏局部变量名、注释和源代码布局。这些 **无法**被恢复——输出标头中会生成并标注合成名称。 构建中从未被证明的操作码将其操作数和 字节范围保留为内联注释,而不是进行猜测。无法被证明可结构化的区域会保留 `goto` 和标签,而不是被强行 转换为它们不具备的结构。覆盖率以数字形式报告,未解决的 工作也会被如实报告,而不会被隐藏。 状态是真实的:`verified`、`recovered-with-warnings`、`partial`、 `unsupported`、`failed-validation`、`cancelled`。 ## 安全设计 - 提交的 Lua/Luau 永远不会被执行。没有 `load`、`loadstring`、`dofile`、 执行器、原生库加载或生成的 shell 命令。 - 输入在解码前会被哈希处理并无更改地复制;原文件永远不会被 覆盖,导出内容总是进入一个新创建的目录。 - 分析在单独的 worker 进程中运行,该进程具有最小的环境以及 时钟和内存上限,并在超时或取消时终止。 - 渲染器在 `nodeIntegration: false`、`contextIsolation: true`、 `sandbox: true` 的环境下运行,具有严格的 CSP、无远程内容、被阻止的导航 和经验证的小型 IPC 攻击面。 - 恢复的源代码以文本形式呈现,绝不作为 HTML 注入。 - 强制执行允许的扩展名和 10 MiB 的输入上限;路径在 策略检查之前会被标准化和解析。 worker 进程是故障和资源边界,而不是完整的 OS 沙箱。这 是可以接受的,正是因为提交的内容永远不会被评估;任何未来的 动态捕获都需要一个额外的沙箱和其自身的审查。 ## 环境要求 Windows 10/11、Node.js 22+、npm。 ``` npm ci ``` ``` npm test ``` ``` npm start ``` 构建便携版应用程序和安装程序: ``` npm run package:win ``` 除非配置了代码签名证书,否则本地生成的可执行文件未签名,因此 Windows 可能会显示 SmartScreen 警告。在运行未签名的构建版本之前,请验证其发布哈希值。 此外还有一个独立于 shell 的 CLI: ``` npx tsx src/cli/index.ts analyze --out ``` ## 样本 不包含任何混淆样本或从中衍生出的制品。它们 不携带再分发许可,我们无权发布。需要 私有样本的测试套件在缺少该样本时会自动跳过;将 `THREEZIZ_JNKIE_FIXTURE` 指向您自己的副本即可运行它们。 ## 仅限授权使用 仅分析您拥有或被明确授权检查的代码。 ## 文档 [架构](docs/ARCHITECTURE.md) · [威胁模型](docs/THREAT_MODEL.md) · [测试计划](docs/TEST_PLAN.md) · [依赖说明](docs/SECURITY_AUDIT.md) ## 许可证 未授权 (UNLICENSED)。不对被分析或衍生的代码主张任何所有权。
标签:Lua, MITM代理, 云安全监控, 云资产清单, 代码反混淆, 自动化攻击, 逆向工程, 静态分析