如何解密Lua字节码?

4

早上好,我正在尝试解密Moon字节码的代码,但是我无论如何都无法做到,有人可以帮助我吗?

我有这个例子:

code = '\27\76\117\97\81\0\1\4\4\4\8\0\'

我该如何将这段字节码解密成文本?

我已经在这里搜索了:http://www.asciitable.com/,但是没有找到结果,因为其中一些字节码不在表中。

请帮帮我...

我已经尝试了几天,但仍然无法解密。


与http://stackoverflow.com/questions/17915486/how-to-encrypt-lua-codes相关。 - lhf
4个回答

8
这似乎是Lua 5.1的字节码。它并没有使用加密技术进行加密,可以通过luac -l -p(不是源代码形式而是虚拟机指令)轻松地阅读(这些指令可能足以重构源代码)。如果您想要重构源代码,请尝试使用LuaDec for Lua 5.1

4
这是一个例子:
code = '\27\76\117\97\81\0\1\4\4\4\8\0\'
我该如何将这个字节码解密成文本?
上述序列是 Lua 字节码的样子,如果第一个字符为 '\27',则告诉 Lua 文件是字节码还是文本。序列中包含 \27,后跟 Lua 的 '\76\117\97',然后是 \81,表示这是 Lua 5.1 字节码等等。有关详细信息,请查看此链接 http://howto.oz-apps.com/2012/04/delve-deeper-into-lua-and-compilation.html 可以在 http://chunkspy.luaforge.net/ 找到非常好的资源和 Kein Hong Man 的精彩详细 PDF。

1

像其他人所说的那样,您可以使用LuaDec for Lua 5.1,但是对于这样的字节码,我会使用number extractor,仅获取所有数字,然后使用numbers to utf8 converter将它们粘贴在那里。起初它可能看起来像随机单词,但您需要将它们对齐在一行中,但每次回到一行时都要留一个空格,就像这样。

27 76 117 97 81 0 1 4 4 4 8 0

并且像这样。

27
76
117
97
81

等等,你应该会得到答案,但这可能在不同的字节码上无法正常工作,但这基本上只是手动方式,最好使用LuaDec for Lua 5.1,但如果你仍然想尝试这样做,你将无法得到完全相同的源字符串,如果你能做到那就太棒了,但那将是非常糟糕的加密。


-4

你不能将字节码转换为文本。它不是文本,而是提供给Lua解释器的指令。


2
这个答案基本上禁止反汇编器和反编译器的存在。确切的源代码可能不会被生成,但这个答案太笼统了。十六进制甚至是文本... - Maarten Bodewes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接