Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检测Lua字节码中字符串的起始位置?(使用C#)_C#_String_Lua_Bytecode - Fatal编程技术网

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

如何检测Lua字节码中字符串的起始位置?(使用C#),c#,string,lua,bytecode,C#,String,Lua,Bytecode,如何使用C#检测Lua字节码中字符串的起始位置? 我想列出Lua字节码文件中的所有字符串。您需要解析该文件。没有特殊的标记。请参阅中的源代码。在LUA的网站上找不到对同一语句的引用,但我在别处找到了一条引文: 没有官方消息 Lua虚拟机指令集的规范,不需要一个;唯一的 官方规范使用Lua语言 本文档试图分解指令集,并提供反向工程的伪规范: 在该文档中,它表示字符串是附加到每个函数的常量(表中的globals除外)。据我所知,文本字符串以字节码的形式存储,格式与源代码中的格式相同,即“somet

如何使用C#检测Lua字节码中字符串的起始位置?
我想列出Lua字节码文件中的所有字符串。

您需要解析该文件。没有特殊的标记。请参阅中的源代码。

在LUA的网站上找不到对同一语句的引用,但我在别处找到了一条引文:

没有官方消息 Lua虚拟机指令集的规范,不需要一个;唯一的 官方规范使用Lua语言

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


在该文档中,它表示字符串是附加到每个函数的常量(表中的globals除外)。

据我所知,文本字符串以字节码的形式存储,格式与源代码中的格式相同,即“sometexthere”。但是,我建议您只使用返回字符串的函数编译一个Lua文件,然后查看它在字节码中的外观。

我认为您必须编写Lua编译器的某些部分,以确保100%正确地查找字符串。你可以使用正则表达式,但我相信在某些情况下它们会失败(例如多行字符串)@Merl:OP说的是“字节码”,而不是“源代码”。RegExp对于二进制数据没有那么大的用处。复制lundump.c所做的,跳过您不想看到的数据。这是不正确的。看见