解密Lua字节码?

我正在使用此脚本加密我的 Lua 代码。

local script = string.dump(
    function()
        local function h4x(strtbl)
            buffer=""
            for v in strtbl do
                buffer=buffer..strtbl[v]
            end
            return buffer
        end

        print("encrypted")

    end
)

buff=""
for v=1,string.len(script) do --将我们的字符串转换为十六进制字符串。
    buff=buff..'\\'..string.byte(script,v)
end

file=io.open('encrypted.txt','w') --输出我们的字节码以 ASCII 格式到 encrypted.txt 中
file:write(buff)
file:flush()
file:close()

encrypted.txt 的输出类似于“00/12/46/4/2/6/4/62/”。我如何解密字节码?

原文链接 https://stackoverflow.com/questions/6094771

点赞
stackoverflow用户255049
stackoverflow用户255049

显然它将每个字节以一个数值(十进制,尽管已经声明它被转换为十六进制)作为分隔符输出。

你所需要做的就是利用从字符串中提取的字节填充一个数组,并使用tonumber将它们转换回它们的字节值。这里将有助于解析格式化输出。

2011-05-23 08:57:08
stackoverflow用户122460
stackoverflow用户122460

这段文字没有加密。它只是用十六进制表示的 Lua 字节码。

讨论将这个字节码反汇编成可读的操作码的方法在另一个问题中:Lua equivalent to Python dis()?

2011-05-23 08:58:59