登录账号
恢复网站会话并取得 CSRF Token。
从网站账号到运行授权,按用途找到你需要的接口。
恢复网站会话并取得 CSRF Token。
原始文本上传,语法通过后自动全量保护。
设置卡密有效期和设备数量,复制执行入口。
用账号专属 API密钥,自动化生成与管理卡密。
系统更名为 luaruaukey,现有接口路径、卡密格式和 Lua 全局变量保持兼容。
登录后服务器设置 HttpOnly + SameSite=Strict Cookie。GET 读取接口只需要会话 Cookie;POST / PUT 等写操作还需要 X-CSRF-Token。
/verify 成功后动态返回 Session、Heartbeat、Guard、Capability 等短期凭据。它们都不是长期 API Key;自动化集成请使用「用户面板」中每个账号唯一的 API密钥(见 开放 API)。
ADMIN_SECRET 只用于管理员登录。登录成功后同样使用 HttpOnly 管理会话和 CSRF;不要把 Secret 写入网页源码。
{ "ok": true, ... };失败通常为 { "ok": false, "error": "ERROR_CODE" }。/api/auth/registerPUBLIC创建免费账号并立即建立登录会话。
namestring · 2–50emailstringpasswordstring · 8–200{
"ok": true,
"csrf": "...",
"user": { "plan": "free" },
"usage": { ... }
}/api/auth/loginPUBLIC使用邮箱和密码登录,成功后服务器写入 HttpOnly Cookie。
{ "email": "you@example.com", "password": "your-password" }
/api/auth/sessionCOOKIE恢复当前登录状态,同时取得当前 CSRF Token、账号信息和套餐用量。
/api/auth/logoutCOOKIE + CSRF注销当前账号会话。
X-CSRF-Token: <csrf>/api/account/dashboardCOOKIE返回套餐使用量与脚本、有效卡密、绑定设备统计。
/api/account/scriptsCOOKIE列出当前账号拥有的脚本元数据与执行入口,不返回源码正文。
/api/account/validate-luauCOOKIE + CSRF上传前预检 Luau 语法。请求体为原始源码文本;语法错误返回 422 LUAU_SYNTAX_ERROR 和行列 diagnostics。真正上传/更新接口还会再次强制校验。
/api/account/upload-scriptCOOKIE + CSRF上传新的 Luau 源码;必须通过 X-Project-Id 指定所属项目(每个项目最多 50 个脚本)。请求体是原始文本,不是 JSON。V20.1.10 会再次执行 Luau 语法校验,然后把整份脚本编译为 Primitive Capsule Full-VM。VM wrapper 再进入带链式双轨状态校验和自适应字典压缩的双层 Sharded VM²,最终使用 AES-GCM 私有存储;服务器不保存原始源码正文。
X-CSRF-TokenrequiredX-Project-Idrequired · 目标项目 IDX-Script-Nameoptional · UTF-8 percent-encoded · max 120 chars after decodeX-Script-Name-Encodingset to percent-utf8 for Unicode namesContent-Typetext/plainFree 账号最多 50 个脚本;每个项目同样最多 50 个脚本,超出返回 PROJECT_SCRIPT_LIMIT。
/api/account/script/:scriptIdCOOKIE + CSRF替换已有脚本源码并增加 revision;如果启用 kickOutdatedUsers,旧 Runtime 会被撤销。
/api/account/script-settingsCOOKIE + CSRF保存脚本运行策略。修改设置会撤销当前运行会话,使下一次启动获取新的签名设置。
{
"scriptId": "sc_...",
"name": "PY Hub",
"settings": {
"freeForAll": false,
"useHeartbeat": true,
"kickOutdatedUsers": true,
"requireSingleSession": true,
"allowDeviceToken": true,
"rotateDeviceToken": true,
"runtimeGuard": true,
"serverCapabilities": true,
"riskIpBinding": true,
"silentMode": false
}
}
/api/account/set-script-enabledCOOKIE + CSRF{ "scriptId": "sc_...", "enabled": false }。停用后立即撤销相关 Runtime。
/api/account/licensesCOOKIE列出当前账号的全部授权记录;V9+ 新卡密可由 License Vault 解密后仅向本人显示。
/api/account/create-keyCOOKIE + CSRF创建单个 V20.1 PYX2 卡密:内部 payload 经 XXTEA 加密后使用 Base64URL 编码,并由 HMAC-SHA256 认证;旧 PY7 卡密仍兼容。
{
"label": "user-001",
"scriptId": "sc_...",
"days": 30,
"maxDevices": 1
}
/api/account/create-keys-batchCOOKIE + CSRF一次批量创建 100–300 个卡密,同时受 Free 总计 1000 个授权记录限制。
{
"labelPrefix": "batch",
"scriptId": "sc_...",
"count": 100,
"days": 30,
"maxDevices": 1
}
/api/account/set-license-enabledCSRF{ "id": "license-uuid", "enabled": false }
/api/account/reset-devicesCSRF{ "id": "license-uuid" },清空全部设备槽位并全链撤销现有 Runtime。
/api/account/revoke-deviceCSRF{ "id": "license-uuid", "slotId": "ds_..." },只撤销指定设备槽位,同时撤销其 Session、LEASE、Guard、Capability、Stream。
/api/account/events?limit=100COOKIE仅返回与当前账号脚本 / 卡密相关的安全事件,最大 200 条。
/api/account/projectsCOOKIE返回当前账号的全部项目及每个项目的脚本数量。
/api/account/create-projectCOOKIE + CSRF创建项目(请求 JSON:name = 项目名称,最长 60 字符);同名项目返回 PROJECT_NAME_EXISTS。
/api/account/delete-projectCOOKIE + CSRF删除项目(请求 JSON:id = 项目 ID;force 可选)。项目内还有脚本时返回 PROJECT_NOT_EMPTY;force=true 时连同删除项目下的脚本。
/api/account/delete-scriptCOOKIE + CSRF删除脚本(请求 JSON:scriptId),删除托管源码并从绑定卡密中解绑该脚本。
/api/account/delete-licenseCOOKIE + CSRF删除卡密(请求 JSON:id),并立即撤销相关设备授权。
用账号专属 API密钥调用接口,自动化生成与管理卡密。
登录控制台,在「用户面板」查看并复制属于你的 API密钥(形如 lk_...,每个账号唯一;可随时重新生成)。
请求头携带 Authorization: <API_KEY>(也兼容 Authorization: Bearer <API_KEY>与 X-Api-Key)。请始终通过 https://luaruaukey.top调用。
/api/open/meAPI KEY返回当前账号信息与套餐用量,可用于验证密钥是否有效。
/api/open/create-keyAPI KEY创建单个卡密。JSON Body:scriptId必填;label、days(1–3650,默认 30)、maxDevices(1–5,默认 1)可选。返回 key与 license。
/api/open/create-keys-batchAPI KEY一次批量创建 100–300 个卡密。Body:scriptId、count、labelPrefix、days、maxDevices。
/api/open/licensesAPI KEY列出当前账号的全部卡密(包含明文卡密、设备与到期信息)。
/api/open/licenseAPI KEY按 id或 key(查询参数)查询单个卡密。
/api/open/set-license-enabledAPI KEY启停指定卡密(id或 key + enabled)。停用会立即撤销运行会话。
/api/open/reset-devicesAPI KEY重置卡密绑定的设备(HWID),id或 key二选一。
/api/open/delete-licenseAPI KEY删除指定卡密(id或 key),并立即撤销相关设备授权。
curl -H "Authorization: lk_xxx" https://luaruaukey.top/api/open/me
curl -X POST -H "Authorization: lk_xxx" -H "Content-Type: application/json" -d '{"scriptId":"sc_xxx","label":"user-001","days":30}' https://luaruaukey.top/api/open/create-key
Validate → Parse Whole Program → AST Polymorphism → Full-Script L1/L2/L3 VM → Post-VM Polymorphism → Sharded VM² → Validate → AES-GCMV20.1 会把顶层执行逻辑和函数/闭包统一编译为自研字节码原型,并在 V20.0 多态 ISA 基础上加入路径关联进入密钥、opcode alias、随机记录布局与指令融合。L1 负责真正的 Luau 语义指令;L2 负责每原型随机 opcode、operand 解码、dispatch 映射与 node tag;L3 使用随机控制状态驱动 Fetch → Decode → Execute → Advance。不同构建会重新生成常量编码、node graph、opcode 映射和 AST 结构。
V20.1.10 protection + compatibility:默认 Full-VM 构建清单包含 35 项机制。操作码和操作数在八族基础公式上组合三层独立编码,常量仍使用八族解码。prototype 句柄随机化,同一常量在不同指令位置使用不同别名。handler 只拿到小型上下文,常量接口仅允许当前指令授权的别名,返回及异常后撤销。每条指令执行后重新校验,双字状态校验绑定调用帧、进入密钥和栈深度。handler 强引用按调用帧管理,同协程弱模板缓存每 4096 条指令轮换;暂停协程保留必要执行状态,正常长循环没有累计步数硬上限。
私有运行时依赖:生成的加载器、保护壳、VM 入口和 handler 逐层传递捕获的基础函数引用。标准 Luau 使用冻结副本;不支持冻结的兼容环境在执行边界校验副本及依赖引用。JSON、GUID、HTTP 与时间等加载器依赖在初始化时捕获。业务全局访问函数先于内部辅助变量声明,避免内部名称遮蔽;全局变量保持原有动态读写语义。预先安装的观察型 hook 或宿主原生代码修改仍可提取数据,不能承诺“所有 hook”被阻止。
按会话重建:新上传将编译中间表示与保护产物一起 AES-GCM 加密保存,摘要纳入元数据签名。每次授权 manifest 都从独立副本重新生成 opcode 编码、分派路由、prototype 句柄、常量别名、记录布局和校验参数;不会重新生成原始源码。manifest 的 sessionVmReconstruction 表示本次是否重建,vmStructureDigest 是本次结构的摘要。IR 不返回客户端。构建在 worker 中进行,默认两个 worker、最多 16 个排队项、15 秒总超时,完成后重新复核授权和 revision。既有旧版产物继续执行;重新上传原始脚本后才启用重建。
会话加密下发:manifest 包含 deliveryCodec=chacha20-hmac-sha256-v2、deliveryEncKey 和 deliveryMacKey。每个会话使用独立密钥;segment 返回 codec、bytes、nonce、data 和 tag。数据先通过 HMAC-SHA256 校验,再进行 ChaCha20 解密;这不是 ChaCha20-Poly1305。缓存重试返回原密文和令牌,要求原 capability token,同时复核当前授权。密钥交给授权客户端,因此不能隐藏受控宿主能看到的最终内容,生产仍需 HTTPS。
自适应字典密封信封:双层信封分别尝试压缩重复 VM 结构,只有节省空间时才启用,然后继续独立分片、编码和完整性校验。压缩减少体积,不属于新的密码算法。客户端可观察到解密和执行过程,释放引用也不等于安全擦除宿主内存。
低误判运行诊断:观察函数引用变化、debug.info 语义、活动调试 hook 和计时异常;可选信号不会单独拒绝执行。只有两类以上解码所需基础操作在同次检查中均重复失败,才终止本次加载。稳定特征摘要随 Runtime Guard 提交,变化仅记为诊断事件;不绑定 package.path,不因环境差异直接踢人。
V20.1 新增:指令记录与跳转边绑定进入密钥;每个操作可拥有多个 alias/schema;每个函数随机记录布局和节点物理顺序;常量继续分片并按需恢复,完整性校验同时覆盖编码参数。
当前 Full-VM 编译器覆盖局部变量、全局/上值访问、嵌套/匿名函数、vararg、单/多返回值、普通/方法调用、table、字段与索引、赋值/复合赋值、if/elseif/else、while、repeat-until、numeric for、常见 iterator generic for、break/continue、Luau if-expression、常见类型注解与 type cast。Roblox API 本身通过 Host Bridge 调用,但业务控制流仍留在 VM 中。
严格模式不会静默降级。如果解析到当前还没有完整语义支持的结构,上传返回 422 FULL_VM_UNSUPPORTED_SYNTAX,包含行/列信息;旧线上 revision 保持不变。插值字符串、复杂类型擦除与显式泛型已纳入兼容测试。
脚本元数据继续保留 VM 与编码统计。新构建的 hardening 签名覆盖 runtimeShadowState、dynamicInstructionCheckpoints、continuationSealBits、sealedOpcodeContracts、verifiedControlFlow、postDispatchVerification、frameLocalHandlerCache、handlerCacheWindow 及 progressBudget。最后一项在 V20.1.10 为 false,表示无累计步数终止。新增 wordRecipeLayers、randomizedPrototypeHandles、instructionConstantAliases、constantAliases、scopedConstantCapabilities 及 minimalHandlerContext 继续签名;新增 privatePrimitiveSnapshot、primitiveReferenceChecks 、primitiveReferenceCount 和 sessionVmReconstruction 纳入 V20.1.10 签名;加密 IR 的 buildRecipeFormat 及 buildRecipeSha256 同样参与签名。诊断模式为 observe-quorum;历史 V20.1.4 / V20.1.5 / V20.1.7 / V20.1.8 / V20.1.9 使用原签名格式。
上传和脚本设置不再提供混淆等级选择。加载器固定采用 VM 保护,按会话生成短期凭据和加密源码流。
历史客户端字段继续兼容,但不能关闭保护或切换到明文模式。
/run/:scriptIdPUBLIC BOOTSTRAP返回当前脚本的 Bootstrap Loader,并创建短时一次性 BOOT_TOKEN。不会返回受保护源码正文。
/verifyBOOT TOKEN建立一次运行会话。卡密模式提交 key;后续可改用轮换 deviceToken,两者不能同时提交。
{
"scriptId": "sc_...",
"installId": "local-install-id",
"clientInstanceId": "random-per-launch-id",
"bootToken": "...",
"nonce": "...",
"ts": 1789790000000,
"key": "PYX2-l1-x1-..."
}sessionToken短期 SessionmanifestPath一次性 Runtime ManifestheartbeatTokenLEASEruntimeGuardPath/Token可选 GuardruntimeExecutePath/TokenV13 CapabilitydeviceToken可选轮换设备令牌/heartbeatBEARER刷新运行租约并返回新的 heartbeatToken。Bootstrap 遇到临时网络失败时每 2 秒重试一次,最多 10 次;已成功轮换但响应丢失时支持短暂幂等恢复。
Authorization: Bearer <heartbeatToken>/runtime/guard/:guardIdROLLING BEARER取得短期 Runtime Grant。返回下一枚 Guard Token、epoch、grantExpiresAt 与 HMAC proof,并持续检查脚本 revision、卡密状态、设备黑名单与网络风险绑定。
V20.1.10 Loader 自动附带可选的 diagnostics 摘要。服务端校验格式与校验和,并把有效摘要纳入本次 grant 的 HMAC;返回 diagnosticsAccepted 与 diagnosticProfileStable。这是客户端自报诊断,不能证明客户端未被控制;缺失、异常或特征变化不会取代卡密授权判断。
/runtime/execute/:operationSessionIdROLLING BEARER执行服务器端注册的命名操作。请求绑定 Script、Revision、License、Install、Client Instance、Sequence、Nonce 与时间戳。
local Runtime = getgenv().PYSHIELD_RUNTIME
local result, receipt, meta = Runtime.Execute(
"example.secure_transform",
{ text = "hello" }
)
if not result then return end
print(result.value){
"ok": true,
"operation": "example.secure_transform",
"sequence": 1,
"result": { "value": "..." },
"receipt": "...",
"inputDigest": "...",
"resultExpiresAt": 1789790030000,
"runtimeExecuteToken": "next-token"
}example.secure_transformexample.dynamic_config实际项目应在 server_capabilities.js 中添加自己的显式操作,并做严格输入校验。/runtime/manifest/:ticketSESSION消费一次性 Manifest Ticket,建立当前运行唯一 Stream,返回 segment 数量、滚动 Stream Token、Capability Window 和 Checkpoint 地址。
/runtime/segment/:streamIdSTREAM + CAPABILITY严格按 index 顺序获取单个 Segment。Header 需要当前 Authorization: Bearer ... 与 X-PY-Capability。
/runtime/checkpoint/:streamIdCHECKPOINT当前 Capability Window 完成后换取下一窗口的新 Capability Token 与 Checkpoint Token。
其余管理接口包括 /admin/scripts、/admin/script/:id、/admin/rotate-storage、/admin/set-script-enabled、/admin/list、/admin/set-enabled、/admin/reset-devices、/admin/blacklist 与 /admin/unblacklist。
/admin/loginSECRET LOGIN{ "secret": "ADMIN_SECRET" } → 管理 Cookie + CSRF。
/admin/sessionADMIN COOKIE读取管理员会话与 CSRF。
/admin/dashboardADMIN平台总览。
/admin/eventsADMIN查看安全事件。
/admin/audit-statusADMIN验证 HMAC 审计链完整性。
/admin/blacklist-deviceADMIN + CSRF按安装 ID 哈希加入设备黑名单。
/admin/validate-luauADMIN + CSRF平台管理员上传前预检:先做 Luau 语法校验,再做 V20.1 Full-Script VM 兼容性分析;不支持的语法直接返回 FULL_VM_UNSUPPORTED_SYNTAX,不会降级成明文。
/admin/upload-scriptADMIN + CSRF平台级上传脚本。
/admin/create-keyADMIN + CSRF平台级创建卡密。
UNAUTHORIZED没有有效网站 / 管理会话。BAD_CSRF写操作缺少或提交了错误的 CSRF。LUAU_SYNTAX_ERRORLuau 源码存在语法问题;响应包含具体行、列和诊断信息,源码不会上传/替换。FULL_VM_UNSUPPORTED_SYNTAX源码语法本身有效,但包含 V20.1 Full-Script VM 当前尚未完整支持的 Luau 结构。响应包含行/列;不会回退为明文,也不会覆盖旧 revision。INVALID_KEY卡密不存在,或 PYX2/PY7 的 HMAC 认证、Base64URL/XXTEA payload 校验失败。KEY_DISABLED / KEY_EXPIRED授权被停用或已到期。DEVICE_LIMIT当前卡密绑定设备达到上限。DEVICE_BLACKLISTED安装 ID 哈希已被服务器拉黑。BOOT_EXPIREDBOOT_TOKEN 过期、已使用或与脚本不匹配。REPLAY_DETECTEDNonce 被重复使用。RUNTIME_REAUTH_REQUIRED运行上下文发生高风险变化,需要重新走启动授权。CAPABILITY_TOKEN_INVALIDCapability Token 错误或已被轮换。CAPABILITY_SEQUENCEServer Capability 调用序号不连续。CAPABILITY_RATE_LIMITED当前 Capability Session 超过每分钟调用限额。/runtime/execute/:sessionRUNTIME成功响应包含 result、binding、receipt。当上一枚 receipt 仍在 15 秒有效期内时,下一次请求必须提交 previousReceipt。过期后链自动开启新 epoch。
{
"previousReceipt": "...",
"operation": "example.secure_transform",
"sequence": 2
}/admin/risk-stateADMIN风险分级:5+ 降低 Capability 速率,10+ 撤销当前 Runtime,15+ 临时封禁 30 分钟;分数随时间衰减。
security_state.jsonSERVER验证、登录和通用限流桶持久化到服务端状态文件,Node 重启后不会全部归零。多实例生产环境仍建议改为 Redis。
/run/:scriptIdLOADERLoader 强制状态机 BOOT → VERIFIED → GUARD → CAPABILITY → RUNNING,内部步骤不可正常跳序。
PUBLIC_BASE 生产环境应使用 HTTPS,并推荐让 Node 只监听反向代理内网地址。SOURCE_MASTER_KEY、LICENSE_SIGNING_KEY、LICENSE_LOOKUP_KEY、LICENSE_VAULT_KEY、LICENSE_XXTEA_KEY、RUNTIME_SIGNING_KEY、CAPABILITY_MASTER_KEY 不要复用。Runtime.Execute() 只返回 true;让服务器返回功能实际必需、客户端无法自行重算的数据。