本站把 cerk-jsenc JS 加密引擎对外开放为 HTTP API:上传 JavaScript(.js / .mjs /
.cjs 或 .zip),引擎把源码编译成自研字节码二进制并由内联解释器执行,
源码与产物都不会离开这台服务器。
引擎由 libcerkjsenc.so 组成(内嵌 Node 运行时 + cerk-jsbin 编译器,宿主不需要装 Node),
站点侧通过本机微服务调用,不依赖 proc_open,可在 hardened PHP-FPM 下运行。
| 层 | 机制 | 开关 |
|---|---|---|
| 编译 | Babel AST → 自研栈式字节码;字符串表 / 数字表 / 常量池全部二进制化 | 始终开启 |
| 压缩 | LZSS + base64/hex 承载 + 代码段位置密钥流加密 | encryptCode / blobFormat |
| 平坦化 | 字节码层基本块切分 + 随机状态号 + 乱序物理布局(状态机 DISPATCH) | 始终开启 |
| 多态 | 每个构建独立「字节→操作码」置换表;垃圾指令 / 不可达垃圾块 / 不透明谓词;常量 MBA 改写 | junk mba junkBlocks opaque |
| 对抗 | 反调试探针、反格式化/反 AST 还原、反 AI 喂料(阻断 toString dump) | antiDebug antiFormat antiFeed |
| 完整性 | 64bit 自研哈希 + 常量时间比较;改动一个 bit 即失效 | hard(默认 soft 静默降级) |
<script src> 或 require 直接跑,不需要 Loader、不需要 Node。default-src 'none'; script-src 'unsafe-inline' 的严格 CSP 页面
(已用真实 Chromium 验证)。只有含降级函数的产物才需要 unsafe-eval,提交结果里的
requires_unsafe_eval 会明确告诉你。seed 时产物字节级可复现;批量任务按 seed, seed+1… 逐文件派生,不会撞随机表。# 1) 卡密换令牌
curl -s "https://jsjiami.xueyuanpie.com/api.php?act=auth.verify" -d "card_key=你的卡密"
# 2) 上传源码(.js/.mjs/.cjs 或 .zip)
curl -s "https://jsjiami.xueyuanpie.com/api.php?act=js.upload" \
-F "file=@app.js" -F "auth_token=<token>"
# 3) 加密(可选 seed / engine / junk / mba / opaque / anti* …)
curl -s "https://jsjiami.xueyuanpie.com/api.php?act=js.submit" \
-F "space=<space>" -F "auth_token=<token>" -F "seed=20261014" -F "engine=vm"
# 4) 下载产物(单文件直接回 JS;多文件回 ZIP)
curl -s "https://jsjiami.xueyuanpie.com/api.php?act=download&type=js&space=<space>&auth_token=<token>" -o out.js
| act | 方法 | 说明 | 鉴权 |
|---|---|---|---|
auth.verify | POST | 卡密验证,返回令牌 | — |
auth.info | GET | 查询当前令牌 / 卡密信息 | — |
js.upload | POST | 上传 .js/.mjs/.cjs/.zip | 需要令牌 |
js.submit | POST | 调用本机引擎加密(同步返回) | 需要令牌 |
js.versions | GET | 引擎版本与可用参数 | 公开 |
download | GET | 下载加密产物 | 需要令牌 |
响应统一为 {"code":"1"/"-1","info":"…","data":{…}}(与 sgapi 完全一致)。