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