如何在执行Lua字节码块时获取内部错误信息?

我正在尝试执行(甚至是反编译)Lua字节码,但我没有源代码、编译器或解析器。(我猜它使用了一些虚拟机来执行?) 它是Lua的一个(稍微)修改版,带有自定义标头。 手动编辑标头后,使用官方Lua可执行文件加载和执行字节码时,它会给出一个错误消息:“Bad code in precompiled chunk”。 现在的问题是它没有列出文件偏移量,我不知道具体问题在哪里。 我猜其中一个或多个问题可能是:

  • 标头还不正确
  • 其他操作码
  • 第二个标头
  • 某些加密 我如何知道它们当中的哪一个是问题?我如何知道它何时开始出错?(第一个错误发生在哪里) 文件格式未公开记录。 我以前没有使用过Lua字节码。 编辑:ChunkSpy能够反编译字节码。

原文链接 https://stackoverflow.com/questions/6494886

点赞
stackoverflow用户107090
stackoverflow用户107090

问题在于,字节码未能通过字节码加载器执行的完整性检查。这可能意味着字节码是手工生成的,而非由 Lua 编译器生成的。如果你想准确地知道为什么完整性检查失败,你需要在 C 调试器中逐步执行它。我假设 ChunkSpy 生成的字节码清单是有意义的。

2011-06-27 16:31:48