如何检测Lua字节码中字符串的起始位置?(使用C#)

如何在使用 C# 时检测 Lua 字节码中字符串的起始位置?

我希望列出 Lua 字节码文件中的所有字符串。

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

点赞
stackoverflow用户107090
stackoverflow用户107090

你需要解析该文件。该文件没有特殊标记。请查看 lundump.c 的源代码。

2010-09-11 12:40:07
stackoverflow用户232593
stackoverflow用户232593

无法在 LUA 的网站上找到同样声明的引用,但是我在其他地方找到了下面这段引用:

Lua 虚拟机指令集没有官方规范,也没有必要;唯一的官方规范是 Lua 语言。

本文档试图分解指令集并提供一个逆向工程的伪规范:

http://luaforge.net/docman/index.php?group_id=83&selected_doc_group_id=102&language_id=1

在该文档中,它说字符串是附加在每个函数中的常量(除了全局变量,它们在表中)。

2010-09-11 21:49:10
stackoverflow用户298661
stackoverflow用户298661

据我所知,字面字符串以与源代码相同的格式存储在字节码中,即“sometexthere”。然而,我建议你只编译一个仅返回一个字符串的 Lua 文件,看看它在字节码中的样子。

2010-09-11 21:50:33