我正在处理lua混淆器,如果没有参数,我希望它能够从文件中的模糊代码中切换,或者混淆lua cli中的字符串参数。如果这完全没有意义的话,这就是我的意思。
local Code = function()
print("test")
end
Dumped = string.dump(Code)
if arg[1] then
local function Temp()
loadstring(arg[1])()
end
Dumped = string.dump(Temp)
end
问题是,在转储中,它实际上不是参数,而是变量。那么,我是如何绕过这个问题并将我的字符串更改为代码的呢?如果我说不通的话我很抱歉。
这是我尝试过的,问题是:
local Code = function()
print("test")
end
Dumped = string.dump(Code)
if arg[1] then
local function Temp()
loadstring(arg[1])()
end
Dumped = string.dump(Temp)
end
print(Dumped)
-- Say if we did lua file.lua print("hello world")
-- Expected result: LuaQ print hello world (with a bunch of whitespace in between)
-- Actual result: LuaQ arg[1] (also with a bunch of whitespace in between)
发布于 2022-11-18 06:57:38
现在,您正在转储一个加载字符串并运行它的函数。因此,您将得到加载字符串并运行它的代码的转储。没什么好惊讶的。
如果您想转储其他代码,则需要实际转储该代码:
local code, codeError = loadstring(arg[1])
if code == nil then
print("Error:",codeError)
else
Dumped = string.dump(code)
end
https://stackoverflow.com/questions/74491397
复制相似问题