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

时间:2011-06-27 15:01:35

标签: lua bytecode execution

我正在尝试执行(可能后来反编译)Lua字节码,我没有源代码,编译器或解析器。 (我猜它使用了一些VM来执行?)

这是一个(稍微)改变的Lua版本,带有自定义标题。 手动编辑头文件后,可以使用官方Lua可执行文件加载和执行字节码,它会给我一条错误消息:“预编译块中的代码错误”。

现在问题是它没有列出文件偏移量,我不知道究竟是什么问题。

我猜这是其中的一个或多个:

  • 标题仍然不对
  • 其他操作码
  • 第二个标题
  • 一些加密

我如何知道它们中的哪一个?我怎么知道它开始出错的地方? (第一个错误发生在哪里)

文件格式未公开记录。

之前我没有使用过Lua字节码。

编辑:ChunkSpy能够反编译字节码。

1 个答案:

答案 0 :(得分:2)

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