我该如何使用?

我正在尝试使用名为XFuscator的"高级lua混淆器"来混淆我创建的一些代码。但是,我不确定如何使用它。你们能给我一个简短的解释吗?这是 github 链接:https://github.com/mlnlover11/XFuscator

提前感谢。

点赞
用户6834680
用户6834680
  1. 下载 XFuscator 源代码到电脑上。
  2. 在文件 XFuscator\Step2.lua 中修复错误(见下文)。
  3. 打开控制台并将路径 cd 到 XFuscator 的根目录(README.txt 所在的目录)。
  4. 运行 lua XFuscator.lua "path\to\your_program.lua"(确保 lua 在你的 PATH 中)。
  5. 查看结果(混淆的程序)存储在 path\to\your_program [Obfuscated].lua 中。

请注意,混淆的程序只能在相同的操作系统和相同的 Lua 版本上运行(混淆的程序严重依赖于 math.random()math.randomseed() 的行为,这些函数依赖于操作系统和 Lua 版本)。

你可以通过使用选项 -uglify 和不同的混淆级别来尝试不同的效果(请见 XFuscator.lua 内部的使用说明)。


关于错误:

在文件 XFuscator/Step2.lua 中,第 5 行、第 6 行、第 12 行 的逻辑是错误的:

  • Step2.lua 中第 12 行使用的数字是没有改动的(double 类型有 17 位精度),而在第 6 行中只保存了 14 位精度(这是 Lua 的默认数字格式)。这种不一致有时会导致不同的伪随机序列,且在尝试执行混淆的程序时会出现错误信息 attempt to call a nil value
  • 并非所有 Lua 实现都对 math.randomseed() 的小数部分敏感;例如 PUC Lua 会忽略小数部分,只接受整数部分的低 32 位作为种子(很遗憾 Lua 手册没有详细的说明)。因此,最好使用整数作为种子。

如何修复错误:

使用以下内容替换第 5 行:

local __X = math.random(1, 9^9)
2016-11-14 11:12:52