Skip to content

v2.7.0

Choose a tag to compare

@Rainyqwq Rainyqwq released this 22 Jul 14:35
· 38 commits to main since this release

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 兼容