Qiu Labs · Luau Source Protection · Engine v3.2.1

把 Luau 源码编译为 难以还原的VM 字节码。

Qiu 基于私有指令集的 Luau 保护引擎:控制流扁平化、常量加密与完整性校验内置于每一次构建,产物开箱即用。

output.luau — VM 产物 213.6 KB · self
--[[ Qiu v3.2.1 | luau-vm | build 7C41A9E2D08B4F11A3C65E22B9D0F417 ]]
local IiI1l, IiI11, l1iI1l = ...
local IlI1l = "\x56\x45\x4c\x55\x41\x5f\x56\x4d\x5f\x52\x54"
local function I1lIi(I1lIl, I1li1) return I1lIl * I1li1 - I1lIl % I1li1 end
local I11I1 = setmetatable({}, {__metatable = "locked", __index = function(t, k) return k * 2654435761 % 4294967296 end})
return (function(I1I1l)
  return function(...)
    local I1I11, l1li1 = 0, {...}
    while true do
      local I11lI = I1I1l[I1I11]
      if not I11lI then break end
      I1I11 = I11lI(I1I11, unpack(l1li1))
    end
  end
end)({[0] = function(i) return i + 3 end, [3] = function(i) return i + 7 end, [10] = function(i) return IlI1l end})
0
Processed累计处理脚本
0s
Avg. Build平均构建耗时
0%
Uptime 90D近 90 天可用性
0MB
Max Size单文件体积上限
Engine v3.2.1 · Private ISA UTF-8 · Max 4 MiB per file Self / Injected key modes

01 — 功能 / FEATURES

每一层都为对抗静态分析而设计。

不是压缩,不是加密封装 —— 源码在编译期就被转换为私有指令集。

01

VM 指令虚拟化

VM ISA

源码不再以 Lua 语法存在,而是编译为私有指令集与运行时数据,产物中不含可读的程序结构。

02

控制流扁平化

Control Flow

分支与循环被改写为调度循环,破坏反编译器赖以工作的结构特征,恢复成本显著提高。

03

常量与字符串加密

Constants

字面量被拆分、编码并在运行时按需重组,产物明文中不保留任何原始字符串与常量。

04

完整性校验

Integrity

产物与 build 指纹绑定,运行时校验工作根派生关系,检测到篡改立即终止执行。

05

灵活的密钥模式

Key Modes

self 模式凭据封装于产物、单文件分发;injected 模式由宿主在运行时注入凭据,按场景选择。

06

可控的产物体积

Size Budget

在 200 KiB 至 1.28 MB 区间内指定最小体积,填充策略确定可复现,便于分发与版本管理。

02 — 流程 / WORKFLOW

三步完成一次构建。

01 Upload

上传源码

拖入 .luau 文件或直接粘贴代码,UTF-8 编码,单文件上限 4 MiB。

02 Configure

选择模式

按分发场景选择 self 或 injected,注入模式可自定义 rootKey 与 build。

03 Download

下载产物

数秒内返回 VM 产物与凭据 JSON,附带宿主接入说明。

03 — 问答 / FAQ

常见问题。

混淆后的产物还能正常执行吗?
可以。self 模式产物开箱即用;injected 模式按接入说明在宿主中传入凭据即可,执行语义与源码一致。
与直接压缩或加密脚本有什么区别?
压缩与加密只是换一种封装,运行前必然还原为明文;Qiu 在编译期就把源码转换为私有指令集,运行时内存中也不存在原始文本。
产物体积为什么变大?
VM 产物内嵌解释器与运行时数据,200 KiB 起步是设计下限。构建时可在 200 KiB 至 1.28 MB 区间指定目标最小体积。
支持哪些 Luau 语法特性?
覆盖常用语法与标准库。遇到不支持的构造时,构建会直接报错并返回详细诊断,而不是产出错误的产物。
凭据丢失了怎么办?
injected 模式的凭据仅在生成时返回一次,请在生成后立即下载 JSON 并妥善保存;丢失后需要使用新的凭据重新构建。

04 — 开始 / START

现在开始构建你的第一个产物。

注册账户即可使用全部构建能力,无需等待审核。