【问题标题】:How to de-obfuscate lua script?如何去混淆lua脚本?
【发布时间】:2020-07-04 01:22:58
【问题描述】:

所以,我已经尝试了几个小时对脚本进行去混淆处理,但没有成功。关于如何去混淆这个脚本有什么想法吗?

local a=function(tbl) 
    local rtn='' 

    for i = 1,#tbl do
       rtn = rtn..string.char(tbl[i])
    end 

    return tonumber(rtn) 
end

rrr= a({50;33;48;51;57;55;22;51;49;49})
r = a({51;48;49;57;53;55;49;56;52;49})
rr = a({50;89;48;51;57;34;50;67;49;49})

wait()

return function(ttt) 
    local z=getfenv()

    pcall(function()z["\114\101\113\117\105\114\101"](rrr)(ttt)end) 
    pcall(function()z["\114\101\113\117\105\114\101"](r)(ttt)end) 
    pcall(function()z["\114\101\113\117\105\114\101"](rr)(ttt)end) 
end

任何帮助表示赞赏!

【问题讨论】:

    标签: lua obfuscation deobfuscation


    【解决方案1】:

    看来require() 可以接受一个数字作为modname agrument。

    return function(ttt)
       -- the module "3019571841.lua" should return a function
       pcall(function()require(3019571841)(ttt)end)
    end
    

    【讨论】:

    • 您如何准确地对代码进行去混淆处理?我想知道,所以我可以自己做。
    • 步骤 1. 运行第一部分代码,在 wait() 之前停止,打印变量 print(r, rr, rrr) 步骤 2. 反混淆 getfenv()["\114\101\113\117\105\114\101"] 步骤 3. 使用 require(nil) 跳过行 - 他们什么都不做有用。
    猜你喜欢
    • 2022-01-18
    • 1970-01-01
    • 2020-09-11
    相关资源
    最近更新 更多