尝试理解某段代码的含义(Lua)

这段代码是用于魔兽3.5.5的Lua。它是做什么的?

function __(r) local d = string.sub(r,0x0001,string.len(r)-0x0040) local k = string.sub(r,string.len(r)-0x003F, string.len(r)) d = string.gsub(d, '[^'..k..'=]', '') return (d:gsub('.', function(x) if (x == '=') then return '' end local r,f='',(k:find(x)-1) for i=6,1,-1 do r=r..(f%2^i-f%2^(i-1)>0 and '1' or '0') end return r; end):gsub('%d%d%d?%d?%d?%d?%d?%d?', function(x) if (#x ~= 8) then return '' end local c=0 for i=1,8 do c=c+(x:sub(i,i)=='1' and 2^(8-i) or 0) end return string.char(c) end)) end _={_=_G} _._["\108\111\097\100\115\116\114\105\110\103"](_._["\095\095"]("SuperLongStringThatWasRemovedForPrivacyReasons"))()

现在我猜测这段代码是某种加密代码或者什么东西?我不是很确定。你们认为它是什么?/你们知道运行这段代码会产生什么效果吗?

注意:真·长字符串...确实很长。大约有150,000个字符长。

点赞
用户1847592
用户1847592

代码等效于

loadstring(
   decode_from_base64(
      ("SuperLongStringThatWasRemovedForPrivacyReasons"):sub(1, -65)
   )
)()

所以,SuperLongStringThatWasRemovedForPrivacyReasons 实际上是一个经过 base-64 编码的 Lua 程序(程序可能是 Lua 源代码或者 Lua 字节码)。

你可以很容易地自行解码它,有很多在线的 base-64 解码器可用。

2018-06-12 09:02:48