如何检测Lua字节码中字符串从哪里开始? (使用C#)

问题描述 投票:0回答:3

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

c# string lua bytecode
3个回答
2
投票

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


0
投票

在 LUA 网站上找不到对相同声明的引用,但这是我在其他地方找到的引用:

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

本文档确实尝试分解指令集并提供逆向工程的伪规范:

https://web.archive.org/web/20100816073843/http://luaforge.net/docman/index.php?group_id=83&selected_doc_group_id=102&language_id=1

在那篇文档中,它说字符串是附加到每个函数的常量(全局变量除外,它们位于表中)。


-1
投票

据我所知,文字字符串以与源代码相同的格式存储在字节码中,即“sometexthere”。不过,我建议你只编译一个 Lua 文件,只包含一个返回字符串的函数,然后看看它在字节码中是什么样子。

© www.soinside.com 2019 - 2024. All rights reserved.