js.upload / js.submit / download 需要卡密令牌。先 auth.verify 换令牌,
再用 auth_token 字段或 X-Auth-Token 请求头携带(24 小时有效)。
curl -s "https://jsjiami.xueyuanpie.com/api.php?act=auth.verify" -d "card_key=<卡密>"
| act | 方法 | 参数 | 说明 |
|---|---|---|---|
| auth.verify | POST | card_key | 卡密验证,返回 token 与卡密信息 |
| auth.info | GET | auth_token | 查询当前令牌 / 卡密剩余额度 |
| js.versions | GET | — | 引擎版本、参数说明、限额(公开) |
| js.upload | POST | file, auth_token | 上传 .js/.mjs/.cjs 或 .zip,返回 space |
| js.submit | POST | space, seed, engine, … | 调用本机引擎加密(同步返回结果) |
| download | GET | type=js, space, auth_token | 下载产物(单文件回 JS,多文件回 ZIP) |
TOKEN=$(curl -s "https://jsjiami.xueyuanpie.com/api.php?act=auth.verify" \
-d "card_key=<卡密>" | sed 's/.*"token":"\([^"]*\)".*/\1/')
SPACE=$(curl -s "https://jsjiami.xueyuanpie.com/api.php?act=js.upload" \
-F "file=@app.js" -F "auth_token=$TOKEN" \
| sed 's/.*"space":"\([^"]*\)".*/\1/')
curl -s "https://jsjiami.xueyuanpie.com/api.php?act=js.submit" \
-F "space=$SPACE" -F "auth_token=$TOKEN" \
-F "seed=20261014" -F "engine=vm"
curl -s "https://jsjiami.xueyuanpie.com/api.php?act=download&type=js&space=$SPACE&auth_token=$TOKEN" \
-o app.enc.js
| 参数 | 默认 | 说明 |
|---|---|---|
| seed | 0 | 0 = 每次形态随机;>0 可复现;批量按 seed, seed+1… 逐文件派生 |
| engine | vm | vm 自研字节码(最强,不需要 eval)/auto 先试 vm 再兜底/pack 整文件 CFF 打包 |
| blobFormat | base64 | base64 / hex |
| scriptGlobals | 1 | 顶层 var/function 落到全局对象(经典 <script> 语义) |
| junk / mba / opaque | 0.06 / 0.25 / 0.35 | 垃圾指令 / MBA / 不透明谓词强度(0–1) |
| junkBlocks | 4 | 不可达垃圾块数量(0–64) |
| antiDebug / antiFormat / antiFeed / encryptCode | 1 | 反调试 / 反格式化 / 反 AI 喂料 / 代码段加密(不传 = 默认开启) |
| hard | 0 | 完整性校验失败是否直接抛错(默认静默降级) |
| banner | 空 | 产物首行注释(单行 ≤200 字符) |
<script src> 或 Node require 直接运行,不需要任何 Loader。default-src 'none'; script-src 'unsafe-inline')页面可直接用。requires_unsafe_eval: true,
该产物运行时需要 unsafe-eval;detail[].fallbacks 会逐文件标注。<原名>.enc.js);多文件任务下发 ZIP,目录结构与上传一致。| info | 处理 |
|---|---|
| 鉴权失败:请先验证卡密 | 重新 auth.verify 并带 auth_token |
| ZIP 中没有 JS 文件! | 压缩包里没有 .js/.mjs/.cjs |
| Fallback: 模块语法 ExportNamedDeclaration… | ESM 顶层 import/export:改 engine=auto,或先打包成单文件 |
| Fallback: 严格降级函数需要捕获外层变量… | VM 暂不支持的语法且无法安全降级:改 engine=auto |
| 文件数量超限,当前卡密单次最多支持 N 个文件! | 拆包或换卡密 |