v2.7.0
v2.7.0 Release Notes
v2.7.0 VM 新增 opcode + 改动
新增
1. Opcode 混淆 Op ID
- 随机化 opcode 映射表,使用 Fisher-Yates Shuffle
- 随机化后的 op ID
- 修改
H[runtime_op]()handler 替换所有 if/elseif - 新增
OP_ADD=10动态处理
2. 新增 Char Pool(字符池)
- 运行时生成随机字符集替换部分 tostring 调用为
_chars索引 - 生成形式
(pool_index_1, pool_index_2, ...)替代原始_dec_str - 字符集大小 4-16 个字符
3. XOR 加密
- XOR 动态解密,使用 key + 随机 key 混合 key 生成
- Checksum 校验
对照表
| 功能 | 旧实现 | 新实现 |
|---|---|---|
| Opcode混淆 | 原始 if/elseif 分支 | handler 调用 H[op]() |
| 字符池 | string.byte(s,i) 逐字节 |
byte_to_idx[s[i]] 查表 |
| 字符串解密 | string.byte(tostring(k)) 解密 |
字节拼接 |
| 动态分发 | 固定 OP_ADD=10 分发 |
随机化后的 op id |
| 解密器 | 存储在 _d[] 中 |
字符 + 数字 + upvalue 组合为 _chars[] |
兼容性
- VM 适配 basic_block_splitting 多 Pass
- API 与 CLI 兼容
- 预留 op 扩展位
v2.6.0 性能优化 + 修复 init 检测
- 优化 var_mangle 字符串拼接从 O(n²) 到 O(n)
- 修复 Lua 脚本中 shebang 检测缺陷(
#!/后不能有 package.preload 等) - CLI 默认开启 basic_block_splitting
- release v2.6.0
v2.5.1 修复 CLI 兼容性
- 修复 Pass 管理器
- VM 与 Pass 兼容