如何检测Lua字节码中字符串的起始位置?(使用C#)
如何使用C#检测Lua字节码中字符串的起始位置?如何检测Lua字节码中字符串的起始位置?(使用C#),c#,string,lua,bytecode,C#,String,Lua,Bytecode,如何使用C#检测Lua字节码中字符串的起始位置? 我想列出Lua字节码文件中的所有字符串。您需要解析该文件。没有特殊的标记。请参阅中的源代码。在LUA的网站上找不到对同一语句的引用,但我在别处找到了一条引文: 没有官方消息 Lua虚拟机指令集的规范,不需要一个;唯一的 官方规范使用Lua语言 本文档试图分解指令集,并提供反向工程的伪规范: 在该文档中,它表示字符串是附加到每个函数的常量(表中的globals除外)。据我所知,文本字符串以字节码的形式存储,格式与源代码中的格式相同,即“somet
我想列出Lua字节码文件中的所有字符串。您需要解析该文件。没有特殊的标记。请参阅中的源代码。在LUA的网站上找不到对同一语句的引用,但我在别处找到了一条引文: 没有官方消息 Lua虚拟机指令集的规范,不需要一个;唯一的 官方规范使用Lua语言 本文档试图分解指令集,并提供反向工程的伪规范:
在该文档中,它表示字符串是附加到每个函数的常量(表中的globals除外)。据我所知,文本字符串以字节码的形式存储,格式与源代码中的格式相同,即“sometexthere”。但是,我建议您只使用返回字符串的函数编译一个Lua文件,然后查看它在字节码中的外观。我认为您必须编写Lua编译器的某些部分,以确保100%正确地查找字符串。你可以使用正则表达式,但我相信在某些情况下它们会失败(例如多行字符串)@Merl:OP说的是“字节码”,而不是“源代码”。RegExp对于二进制数据没有那么大的用处。复制lundump.c所做的,跳过您不想看到的数据。这是不正确的。看见