是否有可能清除这串模糊的Lua代码?

是否有可能清除这串模糊的Lua代码?,lua,obfuscation,deobfuscation,Lua,Obfuscation,Deobfuscation,我有一个(另一个)lua代码字符串,它被混淆了。我想知道是否有可能对它进行除臭,或者弄清楚它是如何被混淆的,因为我以前从未遇到过类似的事情。这串代码可能是恶意服务器端脚本执行器的主要模块。了解内部情况将有助于我们在平台上修补漏洞。有人告诉我,通过获取常量很容易破译,因为这是基于虚拟机的模糊处理,我们只需要一点帮助就可以找到正确的方向 代码相当大,所以它在这个粘贴箱中 pastebin com/dtfzBPZk这一过程看起来更像是一个手动过程。通常,您应该做的第一件事是重命名变量,使其具有更合理的

我有一个(另一个)lua代码字符串,它被混淆了。我想知道是否有可能对它进行除臭,或者弄清楚它是如何被混淆的,因为我以前从未遇到过类似的事情。这串代码可能是恶意服务器端脚本执行器的主要模块。了解内部情况将有助于我们在平台上修补漏洞。有人告诉我,通过获取常量很容易破译,因为这是基于虚拟机的模糊处理,我们只需要一点帮助就可以找到正确的方向

代码相当大,所以它在这个粘贴箱中


pastebin com/dtfzBPZk

这一过程看起来更像是一个手动过程。通常,您应该做的第一件事是重命名变量,使其具有更合理的名称,并在代码中添加空格和缩进。你可以在这里看到一个开始。完成此操作后,您将看到如下函数模式:

(function(...)
    local SynapseXen_116 = "hi xen doesn't work on sk8r please help"
    local SynapseXen_092 = SynapseXen_100(38909278, 3932326132)
    local SynapseXen_069 = {...}
    for SynapseXen_109, SynapseXen_043 in pairs(
        SynapseXen_069
    ) do
        local SynapseXen_119
        local SynapseXen_097 = type(SynapseXen_043)
        if SynapseXen_097 == "number" then
            SynapseXen_119 = SynapseXen_043
        elseif SynapseXen_097 == "string" then
            SynapseXen_119 = SynapseXen_043:len()
        elseif SynapseXen_097 == "table" then
            SynapseXen_119 = SynapseXen_100(4264903821, 30110892)
        end
        SynapseXen_092 = SynapseXen_092 + SynapseXen_119
    end
    SynapseXen_140[1171393165] =
        SynapseXen_bit_bxor(
        SynapseXen_bit_bxor(2179831066, SynapseXen_092),
        SynapseXen_bit_bxor(2132161653, SynapseXen_082)
    ) -
        string.len(SynapseXen_116) -
        SynapseXen_139 -
        #{
            2716917292,
            2960928816,
            2092744992,
            3945961999,
            2156388474,
            2523828292,
            534526172
        }
    return SynapseXen_140[1171393165]
end)({}, {}, 14275, 107, "iIIllIIlIIilillilI", "i", 5327, 3211, 14382, 14643)

现在你可以开始消除“红鲱鱼”了。例如,每当您看到
#{这里有一堆东西}
,您就可以对列表中的元素进行计数,并用计数替换整个内容。在这种情况下,有一个接近尾端的,我们可以用数字7代替。接下来,查看
SynapseXen_116
。它使用的唯一位置是它的长度,因此您也可以在中替换它。现在,在这之后,请注意这是声明一个函数,然后立即调用它,所以您可以替换它的参数。继续沿着这条路走下去,直到你在Lua VM中发现Lua的核心,从那里,在最后插入Base64应该很容易,看看它解码成什么字节码。

就像你的另一篇文章一样,这篇文章也同样模糊,但使用Synapse Xen而不是Luraph,所以去模糊也不是那么简单。