我最近下载了一些 lua 代码,我发现里面有一些混淆的字符串。这让我想知道那里使用了什么样的混淆技术。有人有想法吗?
local code='\27\76\117\97\81\0\1\4\4\4\8\0\64\0\0\0\64\67\58\92\85\115\101\114\115\92\65\108\101\120\92\68\101\115\107\116\111\112'
loadstring(code)()
编辑:更多(加密?)代码。
'\196\2\28\66\0\1\198\193\194\2\25\128\129\3\22\64\14\128\197\193\0\0\198\193\ 195\3\6\2\196\2\220\129\0\1\218'
棘手的部分是loadstring
和相关函数接受lua代码和lua字节代码。那个电话loadstring
只是传递字节编译的lua而不是lua源代码。
您可以轻松获得字节编译的lua。你可以得到这样的例子
- 创建一个lua文件。
- 用luac编译生成lauc.out
- 使用十六进制查看器查看文件内容。
对于空的 lua 文件我得到:
0000000: 1b4c 7561 5100 0104 0804 0800 0900 0000 .LuaQ...........
0000010: 0000 0000 4066 6f6f 2e6c 7561 0000 0000 [email protected]....
0000020: 0000 0000 0000 0002 0201 0000 001e 0080 ................
0000030: 0000 0000 0000 0000 0001 0000 0001 0000 ................
0000040: 0000 0000 0000 0000 00 .........
将前 8 个字节转换为十进制后为:
27, 76, 117, 97, 81, 0, 1, 4
它与字符串中的转义字符匹配。
如果您想了解该块中代码的作用的更多详细信息,您需要将该块写入文件并使用 lua 反编译工具进行调查。ChunkSpy, luadec15 and unluaclua wiki 中都提到了工具页面.
您提供的块中没有足够的内容让我进一步了解,我认为它被截断了?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)