我正在尝试解密加密的lua代码,因为: 第一:我不想从乞讨中创造它。 第二:听起来很有趣!
我在Visual Basic 2013中创建了一个简单的程序,它从文件中执行lua函数,你们在下面看到的文件包含定义为“代码”的加密代码。以ASCII字节和我的lua代码将其转换回原始形式。
问题是:我可以翻译一些单词和签名,但它仍然很乱,因为这是一个lua代码,包含数字,符号和单词。
程序的文件,因为加密的代码和要解密的代码可以在我的要点:https://gist.github.com/DarkShinz/e9aeca7dd1ac1035cf6e找到;所以你们可以重现我迄今为止的进步。
我需要建议来改进我的以下代码,因为到目前为止,它解密了一些单词,但其他单词仍然只是数字和一些符号。眼睛一团糟。
function tablelength(T)
local count = 0
for _ in pairs(T) do count = count + 1 end
return count
end
local code = {SOME COMPILED LUA CODE} //Mine is too extensive to be added here
local finalString = "Yay! :"
local codeLength = tablelength(code)
local text = nil
for i = 1, codeLength do
local letter = string.char(code[i])
if (letter:match("%w")) then
elseif (letter:match("%d")) then
elseif (letter:match("%s")) then
elseif (letter:match("%p")) then
elseif (letter:match("%(")) then
elseif (letter:match("%)")) then
elseif (letter:match("%.")) then
elseif (letter:match("%+")) then
elseif (letter:match("%*")) then
elseif (letter:match("%@")) then
elseif (letter:match("%?")) then
elseif (letter:match("%^")) then
elseif (letter:match("%$")) then
elseif (letter:match("%-")) then
elseif (letter:match("%=")) then
elseif (letter:match("%_")) then
elseif (letter:match("%[")) then
elseif (letter:match("%]")) then
elseif (letter:match("%:")) then
elseif (letter:match("%,")) then
elseif (letter:match("%#")) then
elseif (letter:match("%&")) then
else
letra = string.byte(letter)
end
finalString = finalString .. letra
end
print(finalString)
我希望我有一个完整的lua源代码。