gg.colorAlert("注意","加密时有点慢,别着急")
time=os.clock()
local File_operations = function(path,text)
if text then
io.open(path, "w+"):write(text):close()
else
reTn = io.open(path):read("*a")
return reTn
end
end
local RanStr = (function()
local res = ""
for i = 1, math.random(3, 6) do
res = res .. "\\" .. math.random(0, 255)
end
return res
end)
local Checkstr=function(text)
local yc = {}
local ht = "[%z\1-\127\194-\244][\128-\191]*"
for v in text:gmatch(ht) do
table.insert(yc, v)
end
return yc
end
local Checkstr_2=function(text)
local yc = {}
local ht = "[%z\1-\127\194-\244][\128-\191]*"
for v in text:gmatch(ht) do
table.insert(yc,("'"..v.."'"))
end
return yc
end
Tablename=""
for i=1,math.random(2,5) do
Tablename=Tablename..string.char(math.random(97,122))
end
___=Checkstr("ABCDEFGHIJKLMNOPQRSTUVWXYZ❤️🧡💛💚💙💜🖤💖💝")
_Number_1=Checkstr("❤️🧡💛💚💙💜🖤💖💝")
_Number_2=Checkstr("0123456789")
_Table_=Checkstr_2("ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
function Enc_value(DATA)
if DATA=="" then return "\34\34"end
DATA=tostring(DATA)
DATA = string.format('%q', DATA)
local Func = load('return ' .. DATA)
if not Func then
DATA = DATA:sub(2, -2)
DATA = string.format('%q', DATA)
Func = load('return ' .. DATA)
DATA = Func()
DATA = DATA:sub(2, -2)
else
DATA = Func()
end
DATA=tostring(DATA)
DATA=DATA:gsub(".", function(jia)
return string.format("%02X", (string.byte(jia)) % 256)
end)
for i=1,10 do
DATA=DATA:gsub(_Number_2[i],(_Number_1[i]))
end
for i=1,#___ do
DATA=DATA:gsub(___[i],(i..","))
end
return "(_Xx({"..DATA.."}))"
end
local Min_num = function(...)
local arm = {...}
local num = nil
for i, v in pairs(arm) do
if v ~= nil then
if not num then
num = v
elseif num > v then
num = v
end
end
end
return num
end
_G["字符串1"]=function(DATA)
local gr = {}
repeat
local s1, ss1, x1, xx1, n1, n2, str
s1 = string.find(DATA, "\034")--单引号
ss1 = string.find(DATA, "\039")--双引号
x1 = string.find(DATA, "%[[=]*%[")--中括号
xx1 = string.find(DATA, "%-%-")--注释
str = Min_num(s1, ss1, x1, xx1)
if str == nil then
break
end
if str == s1 then
DATA = DATA:gsub("(.-)(\034.-\034)",function(t1, t2)
gr[#gr + 1] = t1
t2 = string.gsub(t2, "\\\\","\\092")
t2 = string.gsub(t2, "\\\034", "\\034")
if t2:sub(-1, -1) ~= "\034" then
return t2
end
t3 = load("return "..t2)
if not t3 then
gg.alert("\034加密失败\n"..t2)
os.exit()
end
gr[#gr + 1] = Enc_value(t3(),true)
return ""
end, 1)
elseif str == ss1 then
DATA = DATA:gsub("(.-)(\039.-\039)",function(t1, t2)
gr[#gr + 1] = t1
t2 = string.gsub(t2, "\\\\","\\092")
t2 = string.gsub(t2, "\\\039", "\\039")
if t2:sub(-1, -1) ~= "\039" then
return t2
end
t3 = load("return "..t2)
if not t3 then
gg.alert("\039加密失败\n"..t2)
os.exit()
end
gr[#gr + 1] = Enc_value(t3(),true)
return ""
end, 1)
elseif str == x1 then
local g1 = string.match(DATA,"%[([=]*)%[")
DATA=DATA:gsub("(.-)(%["..g1.."%[.-%]"..g1.."%])",function(t1, t2)
gr[#gr + 1] = t1
t3 = load("return "..t2)
if not t3 then
gg.alert("[[加密失败\n"..t2)
os.exit()
end
gr[#gr + 1] = Enc_value(t3(),true)
return ""
end, 1)
elseif str == xx1 then
d1, d2, d3, d4 = string.find(DATA, "%-%-(%[([=]*)%[)")
if d1 == xx1 then
DATA = string.gsub(DATA, "(.-)%-%-%[" .. d4 .. "%[.-%]" .. d4 .. "%]", function(txt1)
gr[#gr + 1] = txt1
return " "
end, 1)
else
DATA = string.gsub(DATA, "(.-)%-%-[^\n]*", function(txt1)
gr[#gr + 1] = txt1
return ""
end, 1)
end
else
break
end
until not str
gr[#gr+1]=DATA
gr = table.concat(gr):gsub("return%s+end","return 0\nend")
gr = gr:gsub("%-%-%[%[.-%]%]",""):gsub("%-%-[^\n]+", "")
_Table="\nlocal "..Tablename.."={}\n"
Decode="\n"..[=[
for i=1,36 do
if i>=27 then
]=]..Tablename..[=[[i]=string.char(47+(i-26))
else
]=]..Tablename..[=[[i]=string.char(64+i)
end
end
local function _Vv(___)
local res=""
for i=1,#___ do
res=res..]=]..Tablename..[=[[___[i]]
end
return res
end
local function _Xx(tab)
return ((_Vv(tab)):gsub('..', function (jie)
return string.char((tonumber(jie,16))%256)
end))
end
]=].."\n\n"
DATA=_Table..Decode..gr
return DATA
end
function Ran_True()
local n1, n2, s1, s2, ranx, min, max
local ran = math.random(0, 3)
if ran == 0 then
if math.random(0, 1) == 0 then
local s = RanStr()
return "\034" .. s .. "\034==\034" .. s .. "\034"
else
local n = math.random(0, 114514)
return n .. "==" .. n
end
elseif ran == 1 then
if math.random(0, 1) == 0 then
repeat
s1 = RanStr()
s2 = RanStr()
until s1 ~= s2
return "\034" .. s1 .. "\034~=\034" .. s2 .. "\034"
else
repeat
n1 = math.random(0, 114514)
n2 = math.random(0, 114514)
until n1 ~= n2
return n1 .. "~=" .. n2
end
elseif ran == 2 then
ranx = math.random(0, 2)
if ranx == 0 then
n1 = math.random(1, 114514)
n2 = math.random(0, n1 - 1)
return n1 .. ">" .. n2
elseif ranx == 1 then
n = math.random(1, 114514)
return n .. ">=" .. n
elseif ranx == 2 then
n1 = math.random(1, 114514)
n2 = math.random(0, n1 - 1)
return n1 .. ">=" .. n2
end
elseif ran == 3 then
ranx = math.random(0, 2)
if ranx == 0 then
n1 = math.random(1, 114514)
n2 = math.random(0, n1 - 1)
return n2 .. "<" .. n1
elseif ranx == 1 then
n = math.random(1, 114514)
return n .. "<=" .. n
elseif ranx == 2 then
n1 = math.random(1, 114514)
n2 = math.random(0, n1 - 1)
return n2 .. "<=" .. n1
end
end
end
local function Ran_False()
local n1, n2, s1, s2, ranx, min, max
local ran = math.random(0, 3)
if ran == 0 then
if math.random(0, 1) == 0 then
local s = RanStr()
return "\034" .. s .. "\034~=\034" .. s .. "\034"
else
local n = math.random(0, 114514)
return n .. "~=" .. n
end
elseif ran == 1 then
if math.random(0, 1) == 0 then
repeat
s1 = RanStr()
s2 = RanStr()
until s1 ~= s2
return "\034" .. s1 .. "\034==\034" .. s2 .. "\034"
else
repeat
n1 = math.random(0, 114514)
n2 = math.random(0, 114514)
until n1 ~= n2
return n1 .. "==" .. n2
end
elseif ran == 2 then
ranx = math.random(0, 2)
if ranx == 0 then
n1 = math.random(1, 114514)
n2 = math.random(0, n1 - 1)
return n1 .. "<" .. n2
elseif ranx == 1 then
repeat
n1 = math.random(0, 114514)
n2 = math.random(0, n1 - 1)
until n1 ~= n2
return n1 .. "<=" .. n2
elseif ranx == 2 then
n1 = math.random(1, 114514)
n2 = math.random(0, n1 - 1)
return n1 .. "<=" .. n2
end
elseif ran == 3 then
ranx = math.random(0, 2)
if ranx == 0 then
n1 = math.random(1, 114514)
n2 = math.random(0, n1 - 1)
return n2 .. ">" .. n1
elseif ranx == 1 then
repeat
n1 = math.random(0, 114514)
n2 = math.random(0, n1 - 1)
until (n1 ~= n2 and n1 > n2)
return n2 .. ">=" .. n1
elseif ranx == 2 then
n1 = math.random(1, 114514)
n2 = math.random(0, n1 - 1)
return n2 .. ">=" .. n1
end
end
end
local function Ran_Bool(boolean)
if boolean == nil then
return "_Bool[\034" .. RanStr() .. "\034]"
elseif boolean == true then
if math.random(0, 1) == 0 then
return Ran_True()
else
return "not (" .. Ran_False() .. ")"
end
elseif boolean == false then
if math.random(0, 1) == 0 then
return Ran_False()
else
return "not (" .. Ran_True() .. ")"
end
end
end
function bool_Control(data)
local BoolTab = {true, false, nil}
for i = 1, #BoolTab do
local boolStr = tostring(BoolTab[i])
data =
data:gsub(
'%f[%w_"]' .. boolStr .. '%f[^%w_"]',
function()
return "(" .. Ran_Bool(BoolTab[i]) .. ")"
end
)
end
return "local _Bool={}\n" .. data
end
local RanStr = (function()
local res = ""
for i = 1, math.random(3, 6) do
res = res .. "\\" .. math.random(0, 255)
end
return res
end)
local function Ran_True()
local n1, n2, s1, s2, ranx, min, max
local ran = math.random(0, 3)
if ran == 0 then
if math.random(0, 1) == 0 then
local s = RanStr()
return "\034" .. s .. "\034==\034" .. s .. "\034"
else
local n = math.random(0, 114514)
return n .. "==" .. n
end
elseif ran == 1 then
if math.random(0, 1) == 0 then
repeat
s1 = RanStr()
s2 = RanStr()
until s1 ~= s2
return "\034" .. s1 .. "\034~=\034" .. s2 .. "\034"
else
repeat
n1 = math.random(0, 114514)
n2 = math.random(0, 114514)
until n1 ~= n2
return n1 .. "~=" .. n2
end
elseif ran == 2 then
ranx = math.random(0, 2)
if ranx == 0 then
n1 = math.random(1, 114514)
n2 = math.random(0, n1 - 1)
return n1 .. ">" .. n2
elseif ranx == 1 then
n = math.random(1, 114514)
return n .. ">=" .. n
elseif ranx == 2 then
n1 = math.random(1, 114514)
n2 = math.random(0, n1 - 1)
return n1 .. ">=" .. n2
end
elseif ran == 3 then
ranx = math.random(0, 2)
if ranx == 0 then
n1 = math.random(1, 114514)
n2 = math.random(0, n1 - 1)
return n2 .. "<" .. n1
elseif ranx == 1 then
n = math.random(1, 114514)
return n .. "<=" .. n
elseif ranx == 2 then
n1 = math.random(1, 114514)
n2 = math.random(0, n1 - 1)
return n2 .. "<=" .. n1
end
end
end
local function Ran_False()
local n1, n2, s1, s2, ranx, min, max
local ran = math.random(0, 3)
if ran == 0 then
if math.random(0, 1) == 0 then
local s = RanStr()
return "\034" .. s .. "\034~=\034" .. s .. "\034"
else
local n = math.random(0, 114514)
return n .. "~=" .. n
end
elseif ran == 1 then
if math.random(0, 1) == 0 then
repeat
s1 = RanStr()
s2 = RanStr()
until s1 ~= s2
return "\034" .. s1 .. "\034==\034" .. s2 .. "\034"
else
repeat
n1 = math.random(0, 114514)
n2 = math.random(0, 114514)
until n1 ~= n2
return n1 .. "==" .. n2
end
elseif ran == 2 then
ranx = math.random(0, 2)
if ranx == 0 then
n1 = math.random(1, 114514)
n2 = math.random(0, n1 - 1)
return n1 .. "<" .. n2
elseif ranx == 1 then
repeat
n1 = math.random(0, 114514)
n2 = math.random(0, n1 - 1)
until n1 ~= n2
return n1 .. "<=" .. n2
elseif ranx == 2 then
n1 = math.random(1, 114514)
n2 = math.random(0, n1 - 1)
return n1 .. "<=" .. n2
end
elseif ran == 3 then
ranx = math.random(0, 2)
if ranx == 0 then
n1 = math.random(1, 114514)
n2 = math.random(0, n1 - 1)
return n2 .. ">" .. n1
elseif ranx == 1 then
repeat
n1 = math.random(0, 114514)
n2 = math.random(0, n1 - 1)
until (n1 ~= n2 and n1 > n2)
return n2 .. ">=" .. n1
elseif ranx == 2 then
n1 = math.random(1, 114514)
n2 = math.random(0, n1 - 1)
return n2 .. ">=" .. n1
end
end
end
local function Ran_Bool(boolean)
if boolean == nil then
return "_Bool[\034" .. RanStr() .. "\034]"
elseif boolean == true then
if math.random(0, 1) == 0 then
return Ran_True()
else
return "not (" .. Ran_False() .. ")"
end
elseif boolean == false then
if math.random(0, 1) == 0 then
return Ran_False()
else
return "not (" .. Ran_True() .. ")"
end
end
end
local function bool_Control(data)
local BoolTab = {true, false, nil}
for i = 1, #BoolTab do
local boolStr = tostring(BoolTab[i])
data =
data:gsub(
'%f[%w_"]' .. boolStr .. '%f[^%w_"]',
function()
return "(" .. Ran_Bool(BoolTab[i]) .. ")"
end
)
end
return "local _Bool={}\n" .. data
end
function encrypt(data, key)
return string.rc4(data, key)
end
-- 解密函数
function decrypt(data, key)
return string.rc4(data, key)
end
local math = math
local function str_enc(str)
local t = {string.byte(str, 1, -1)}
for i = 1, #t do
t[i] = string.format('\\x%02x', t[i])
end
return '"' .. table.concat(t) .. '"'
end
function Rc4(code,key)--Rc4加密算法
code = tostring(code)
key = tostring(key)
XINXIN = {}
function XINXIN.__andBit(left,right)
return (left == 1 and right == 1) and 1 or 0
end
function XINXIN.__orBit(left, right)
return (left == 1 or right == 1) and 1 or 0
end
function XINXIN.__xorBit(left, right)
return (left + right) == 1 and 1 or 0
end
function XINXIN.__base(left, right, op)
if left < right then
left, right = right, left
end
local res = 0
local shift = 1
while left ~= 0 do
local ra = left % 2
local rb = right % 2
res = shift * op(ra,rb) + res
shift = shift * 2
left = math.modf( left / 2)
right = math.modf( right / 2)
end
return res
end
function XINXIN.andOp(left, right)
return XINXIN.__base(left, right, XINXIN.__andBit)
end
function XINXIN.xorOp(left, right)
return XINXIN.__base(left, right, XINXIN.__xorBit)
end
function XINXIN.orOp(left, right)
return XINXIN.__base(left, right, XINXIN.__orBit)
end
function XINXIN.notOp(left)
return left > 0 and -(left + 1) or -left - 1
end
function XINXIN.lShiftOp(left, num)
return left * (2 ^ num)
end
function XINXIN.rShiftOp(left,num)
return math.floor(left / (2 ^ num))
end
function encrypt(text,key)
local function KSA(key)
local keyLen = string.len(key)
local schedule = {}
local keyByte = {}
for i = 0, 255 do
schedule[i] = i
end
for i = 1, keyLen do
keyByte[i - 1] = string.byte(key, i, i)
end
local j = 0
for i = 0, 255 do
j = (j + schedule[i] + keyByte[ i % keyLen]) % 256
schedule[i], schedule[j] = schedule[j], schedule[i]
end
return schedule
end
local function PRGA(schedule, textLen)
local i = 0
local j = 0
local k = {}
for n = 1, textLen do
i = (i + 1) % 256
j = (j + schedule[i]) % 256
schedule[i], schedule[j] = schedule[j], schedule[i]
k[n] = schedule[(schedule[i] + schedule[j]) % 256]
end
return k
end
local function output(schedule, text)
local len = string.len(text)
local c = nil
local res = {}
for i = 1, len do
c = string.byte(text, i,i)
res[i] = string.char(XINXIN.xorOp(schedule[i], c))
end
return table.concat(res)
end
local textLen = string.len(text)
local schedule = KSA(key)
local k = PRGA(schedule, textLen)
return output(k, text)
end
return encrypt(code,key)
end
function string.rc4(code, key)--rc4解密算法
return Rc4(code, key)
end
local V=print
local SN = {}
File_operations = function(path,text)
if text then
io.open(path, "w+"):write(text):close()
else
return io.open(path):read("*a")
end
end
function SN:mul( num , num2 )
return num * num2 or 1
end
To_16=function(txt)
local sp=string.format("%x",txt)
if #sp==1 then
sp="0"..sp
end
return "\\x"..sp
end
local I_love_you=520
local Ones_whole_life=1314
local Unknown_boundary=128
local Unknown_vertex=Unknown_boundary*2
_Table_Key=function(content)
local Table_Key={}
local _length=#content
for _Ergodic_growth = 1,_length do
local rule = false
local Ergodic_growth=_Ergodic_growth~_length~I_love_you~Ones_whole_life
if(rule==false)then
Table_Key[#Table_Key+1]=bit32.bxor((_length~_Ergodic_growth),(_length+_Ergodic_growth*Ergodic_growth))~(Unknown_boundary*_length)
rule=(true or false)
elseif(rule==true)then
Table_Key[#Table_Key+1]=bit32.bxor((_length*( _Ergodic_growth+Ergodic_growth)),(_length~_Ergodic_growth))~(Unknown_vertex*_length)
rule=(false or true)
end
end
return(Table_Key)
end
__Table_Key={}
STR={}
KEY=math.random(1,20)
Str={}
function NZF_Str(str)
str = string.gsub(str, "\\t", "\t"):gsub("\\n", "\n"):gsub("\\34", "\34"):gsub("\\39", "\39")
local ascll={str:byte(1,-1)}
local Ascll={}
key=(math.random(1,255))
__Table_Key[#__Table_Key+1]=To_16(key)
___Table_Key=#__Table_Key
Key=_Table_Key(str)
for index,value in ipairs(ascll) do
value=(value~(key~KEY))
value=value+Key[index]-Key[1]
value=value-(Key[index]-Key[#Key])*Key[1]
value=value+(I_love_you*Ones_whole_life)
value=value%256
Ascll[#Ascll+1]=To_16(value)
end
Ascll='"'..table.concat(Ascll)..'"'
_name_number=math.random(1,1000000)
while(true)do
if Str[_name_number] then
_name_number=math.random((_name_number+1),1000000)
else
break
end
end
x1=math.random(1,5000)
x2=math.random(5000,10000)
x3=math.random(5000,10000)
x4=math.random(1,5000)
if ___x==true then
Table_number=[=[(function()
if(]=]..x1..[=[>]=]..x2..[=[)then
elseif(]=]..x3..[=[>]=]..x4..[=[)then
return(]=].._name_number..[=[)
end
end)()]=]
else
Table_number=[=[(function()
return(]=].._name_number..[=[)
end)()]=]
end
name="STR["..Table_number.."]"
STR[#STR+1]=name.."=(function() return {"..Ascll.."} end)"
return '(NZFDec(STR[(function() return('.._name_number..') end)()](),'..___Table_Key..'))'
end
Decryption_algorithm=[=[
local NZFDec=function(content,__Table_Key)
local content=content[1]
local index,value
local KEY=Byte(Tab_key,__Table_Key,__Table_Key)
local Key=_Table_Key(Len(content))
local Extraction=''
local tab={Byte(content,numerical_value_1,#content)}
for index,value in Ipairs(tab)do
value=value-(I_love_you*Ones_whole_life)
value=value+(Key[index]-Key[#Key])*Key[1]
value=value-Key[index]+Key[1]
value=(value~(KEY~Table_Char[']=]..To_16(KEY)..[=[']))
value=(value)%(Unknown_vertex+numerical_value_1)
Extraction=Extraction..Char(value)
end
return(Extraction)
end
]=]
decode=[=[
local Table_Char={}
for x=0,255 do
Table_Char[x]=string.char(x)
Table_Char[Table_Char[x]]=x
end
string.char=function(...)
local Char,res={...},""
for i,k in pairs(Char) do
res=res..Table_Char[k]
end
return(res)
end
local Char,Ipairs,Byte,Len,Bxor,Concat=string.char,ipairs,string.byte,string.len,bit32.bxor,table.concat
local numerical_value_1=Table_Char["\1"]
local I_love_you=Table_Char["\52"]*Table_Char["\10"]
local Ones_whole_life=Table_Char["\100"]*Table_Char["\13"]+Table_Char["\14"]
local Unknown_boundary=Table_Char["\128"]
local Unknown_vertex=Table_Char["\255"]
local _Table_Key=function(_length)
local Table_Key={}
for _Ergodic_growth = numerical_value_1,_length do
local rule = false
local Ergodic_growth=_Ergodic_growth~_length~I_love_you~Ones_whole_life
if(rule==false)then
Table_Key[#Table_Key+numerical_value_1]=Bxor((_length~_Ergodic_growth),(_length+_Ergodic_growth*Ergodic_growth))~(Unknown_boundary*_length)
rule=(true or false)
elseif(rule==true)then
Table_Key[#Table_Key+numerical_value_1]=Bxor((_length*( _Ergodic_growth+Ergodic_growth)),(_length~_Ergodic_growth))~(Unknown_vertex*_length)
rule=(false or true)
end
end
return(Table_Key)
end
local Added_value=numerical_value_1
]=]..Decryption_algorithm..[=[
]=]
fuc = {
["gg"] = 2,
["os"] = 2,
["io"] = 2,
["string"] = 2,
["math"] = 2,
["table"] = 2,
["debug"] = 2,
["bit32"] = 2,
["utf8"] = 2,
}
To_16=function(txt)
local sp=string.format("%x",txt)
if #sp==1 then
sp="0"..sp
end
return "\\x"..sp
end
ToStrong_Str = function(txt)
return '\34' .. txt .. '\34'
end
local Fuc_Enc = function(ltre)
gg.toast("正在加密标准库...")
for v, s in pairs(_ENV) do
if type(s) == "table" and fuc[v] then
Enc_func1 = ToStrong_Str(v)
for i in pairs(s) do
if ltre:find(v .. "%." .. i) then
Enc_func2 = ToStrong_Str(i)
ltre = ltre:gsub("([^%w_])" .. v .. "%." .. i .. "%(", "%1_ENV[" .. Enc_func1 .. "]" .. "[" .. Enc_func2 .. "](")
ltre = ltre:gsub("([^%w_])" .. v .. "%." .. i .. "%)", "%1_ENV[" .. Enc_func1 .. "]" .. "[" .. Enc_func2 .. "])")
ltre = ltre:gsub("([^%w_])" .. v .. "%." .. i .. "%s*,", "%1_ENV[" .. Enc_func1 .. "]" .. "[" .. Enc_func2 .. "],")
ltre = ltre:gsub("=(%s*)" .. v .. "%." .. i .. "([^%w_])", "=%1_ENV[" .. Enc_func1 .. "]" .. "[" .. Enc_func2 .. "]%2")
ltre = ltre:gsub("([^%w_])" .. v .. "%." .. i .. "%s*=", "%1_ENV[" .. Enc_func1 .. "]" .. "[" .. Enc_func2 .. "]=")
end
end
elseif type(s) == "function" and debug.getinfo(s)["what"] == "Java" then
if ltre:find(v) then
ltre = ltre:gsub("([^%w_])" .. v .. "%(", "%1_ENV[" .. ToStrong_Str(v) .. "](")
ltre = ltre:gsub("=%s*" .. v .. "([^%w_])", "=_ENV[" .. ToStrong_Str(v) .. "]%1")
ltre = ltre:gsub("([^%w_])" .. v .. "%s*=", "%1_ENV[" .. ToStrong_Str(v) .. "]=")
end
end
end
return ltre
end
local Min_num = function(...)
local arm = {...}
local num = nil
for i, v in pairs(arm) do
if v ~= nil then
if not num then
num = v
elseif num > v then
num = v
end
end
end
return num
end
StrEnc=function(DATA)
local gr = {}
repeat
local s1, ss1, x1, xx1, n1, n2, str
s1 = string.find(DATA, "\034")
ss1 = string.find(DATA, "\039")
x1 = string.find(DATA, "%[[=]*%[")
xx1 = string.find(DATA, "%-%-")
str = Min_num(s1, ss1, x1, xx1)
if str == nil then
break
end
if str == s1 then
DATA = DATA:gsub("(.-)(\034.-\034)",function(t1, t2)
gr[#gr + 1] = t1
t2 = string.gsub(t2, "\\\\","\\092")
t2 = string.gsub(t2, "\\\034", "\\034")
if t2:sub(-1, -1) ~= "\034" then
return t2
end
t3 = load("return "..t2)
if not t3 then
gg.alert("\034加密失败\n"..t2)
os.exit()
end
gr[#gr + 1] = NZF_Str(t3(),true)
return ""
end, 1)
elseif str == ss1 then
DATA = DATA:gsub("(.-)(\039.-\039)",function(t1, t2)
gr[#gr + 1] = t1
t2 = string.gsub(t2, "\\\\","\\092")
t2 = string.gsub(t2, "\\\039", "\\039")
if t2:sub(-1, -1) ~= "\039" then
return t2
end
t3 = load("return "..t2)
if not t3 then
gg.alert("\039加密失败\n"..t2)
os.exit()
end
gr[#gr + 1] = NZF_Str(t3(),true)
return ""
end, 1)
elseif str == x1 then
local g1 = string.match(DATA,"%[([=]*)%[")
DATA=DATA:gsub("(.-)(%["..g1.."%[.-%]"..g1.."%])",function(t1, t2)
gr[#gr + 1] = t1
t3 = load("return "..t2)
if not t3 then
gg.alert("[[加密失败\n"..t2)
os.exit()
end
gr[#gr + 1] = NZF_Str(t3(),true)
return ""
end, 1)
elseif str == xx1 then
d1, d2, d3, d4 = string.find(DATA, "%-%-(%[([=]*)%[)")
if d1 == xx1 then
DATA = string.gsub(DATA, "(.-)%-%-%[" .. d4 .. "%[.-%]" .. d4 .. "%]", function(txt1)
gr[#gr + 1] = txt1
return " "
end, 1)
else
DATA = string.gsub(DATA, "(.-)%-%-[^\n]*", function(txt1)
gr[#gr + 1] = txt1
return ""
end, 1)
end
else
break
end
until not str
gr[#gr+1]=DATA
gr = table.concat(gr):gsub("return%s+end","return 0\nend")
gr=Fuc_Enc(gr)
--gr = Ran_Bool(gr)
gr = gr:gsub("%-%-%[%[.-%]%]",""):gsub("%-%-[^\n]+", "")
return gr
end
_G["字符串"]=function(DATA)
DATA = StrEnc(DATA)
return DATA
end
ZFC_PP=function(DATA)
local zfc={}
repeat
local A,B,C,D,E,F,G
A=string.find(DATA,"\034")
B=string.find(DATA,"\039")
C=string.find(DATA,"%[[=]*%[")
D=string.find(DATA,"%-%-")
E=string.find(DATA,"[^%w_]0[xX][0-9A-Fa-f]+")
F=string.find(DATA,"[^%w_]%d+")
E,F=nil,nil
G=SJ_ZFC(A,B,C,D,E,F)
if G==nil then
break
end
if G==A then
DATA=DATA:gsub("(.-)(\034.-\034)",function(t1,t2)
zfc[#zfc+1]=t1
t2=string.gsub(t2,"\\\\","\\092")
t2=string.gsub(t2,"\\\034","\\034")
if t2:sub(-1,-1)~="\034"then
return t2
end
t3=load("return "..t2)
if not t3 then
gg.alert("\t字符加密失败❗\n\t加密失败原因:"..t2)
os.exit()
end
zfc[#zfc+1]=JS_ZFC(t3())
return ""
end,1)
elseif G==B then
DATA=DATA:gsub("(.-)(\039.-\039)",function(t1,t2)
zfc[#zfc+1]=t1
t2=string.gsub(t2,"\\\\","\\092")
t2=string.gsub(t2,"\\\039","\\039")
if t2:sub(-1,-1)~="\039"then
return t2
end
t3=load("return "..t2)
if not t3 then
gg.alert("\t字符加密失败❗\n\t加密失败原因:"..t2)
os.exit()
end
zfc[#zfc+1]=JS_ZFC(t3())
return ""
end,1)
elseif G==C then
local g1=string.match(DATA,"%[([=]*)%[")
DATA=DATA:gsub("(.-)(%["..g1.."%[.-%]"..g1.."%])",
function(t1,t2)
zfc[#zfc+1]=t1
t3=load("return "..t2)
if not t3 then
gg.alert("\t字符加密失败❗\n\t加密失败原因:"..t2)
os.exit()
end
zfc[#zfc+1]=JS_ZFC(t3())
return ""
end,1)
elseif G==D then
d1,d2,d3,d4=string.find(DATA,"%-%-(%[([=]*)%[)")
if d1==D then
DATA=string.gsub(DATA,"(.-)%-%-%["..d4.."%[.-%]"..d4.."%]",function(txt1)
zfc[#zfc+1]=txt1
return ""
end,1)
else
DATA=string.gsub(DATA,"(.-)%-%-[^\n]*",function(txt1)
zfc[#zfc+1]=txt1
return ""
end,1)
end
elseif G==E then
DATA=DATA:gsub("(.-[^%w_])(0[xX][0-9A-Fa-f]+)",
function(txt1,txt2)
zfc[#zfc+1]=txt1
zfc[#zfc+1]="TR("..JS_ZFC(txt2)..")"
return ""
end,1)
elseif G==F then
local n3,n4,n5,n6
n3=string.find(DATA,"[^%w_]%d+%.%d+[eE][%-%+]%d+")
n4=string.find(DATA,"[^%w_]%d+%.%d+[eE]%d+")
n5=string.find(DATA,"[^%w_]%d+[eE]%d+")
n6=string.find(DATA,"[^%w_]%d+%.%d+")
if G==n3 then
DATA=DATA:gsub("(.-[^%w_])(%d+%.%d+[eE][%-%+]%d+)",function(txt1,txt2)
zfc[#zfc+1]=txt1
zfc[#zfc+1]="TR("..JS_ZFC(txt2)..")"
return ""
end,1)
elseif G==n4 then
DATA=DATA:gsub("(.-[^%w_])(%d+%.%d+[eE]%d+)",
function(txt1,txt2)
zfc[#zfc+1]=txt1
zfc[#zfc+1]="TR("..JS_ZFC(txt2)..")"
return ""
end,1)
elseif G==n5 then
DATA=DATA:gsub("(.-[^%w_])(%d+[eE]%d+)",
function(txt1,txt2)
zfc[#zfc+1]=txt1
zfc[#zfc+1]="TR("..JS_ZFC(txt2)..")"
return ""
end,1)
elseif G==n6 then
DATA=DATA:gsub("(.-[^%w_])(%d+%.%d+)",
function(txt1,txt2)
zfc[#zfc+1]=txt1
zfc[#zfc+1]="TR("..JS_ZFC(txt2)..")"
return ""
end,1)
else
DATA=DATA:gsub("(.-[^%w_])(%d+)",function(txt1,txt2)
zfc[#zfc+1]=txt1
zfc[#zfc+1]="TR("..JS_ZFC(txt2)..")"
return ""
end,1)
end
else
break
end
until not G
zfc[#zfc+1]=DATA
zfc=table.concat(zfc)
zfc=zfc:gsub("return %s+end","return 0\nend"):gsub("%-%-%[%[.-%]%]",""):gsub("%-%-[^\n]+","")
return zfc
end
zfc={}
JS={}
SJ_ZFC=function(...)
local ZDZ={...}
local JSZ=nil
for i,v in pairs(ZDZ) do
if v~=nil then
if not JSZ then
JSZ=v
elseif JSZ>v then
JSZ=v
end
end
end
return JSZ
end
SJBM=function(SZ)
SZ=SZ or 6
local str=""
for i=1,SZ do
local JSSZ=math.random(1,26)
if i%2==0 then
JSSZ=JSSZ+64
else
JSSZ=JSSZ+96
end
str=str..string.char(JSSZ)
end
return str
end
TPXZ=SJBM(256)
SJZF={string.byte(TPXZ,1,-1)}
ZFTH=#SJZF
BMTH=SJBM()
JS_ZFC=function(zfc)
local Table={}
for i,v in pairs({string.byte(zfc,1,-1)}) do
Table[i]=(v~SJZF[(i-1)%ZFTH+1])
end
zfc="{"..table.concat(Table,",").."}"
zfc=load("return "..zfc)()
--print(zfc)
mid = #zfc / 2
--print(mid)
a = {}
b = {}
for i = 1, mid do
table.insert(a, zfc[i])
end
--print(a)
for i = mid + 1, #zfc do
table.insert(b, zfc[i])
end
a = "{" .. table.concat(a, ", ") .. "}"
b = "{" .. table.concat(b, ", ") .. "}"
--print(a)
zfc='('..BMTH..'((function() local function a() return '..a..' end local function b() return '..b..' end local c = {} local a = a() local b = b() XSPH(a,b,c) return c end)()))'
return zfc
end
ht = gg.prompt({"选择加密脚本→加密时有点慢不要着急"},{"/storage/emulated/0/"},{"file"})
if not ht then
return print("未选择脚本")
end
local data = io.open(ht[1],"r"):read("*a")
data = data : gsub ("gg . getFile ","gg_getFile") -- 替换一下 防止变 ? 懂得都懂
zfc[#zfc+1]=ZFC_PP(data) -- 字符串处理
zfc=table.concat(zfc)
BM_TH=SJBM()
B_M_T_H=SJBM()
data="ot[name]=nil\nlocal tables = table.insert\nlocal paIrs=pairs\nlocal string_char=string.char\nlocal table_unpack=table.unpack\nfunction XSPH(a,b,c)\nfor i = 1, #a do\ntables(c, a[i])\nend\nfor i = 1, #b do\ntables(c, b[i])\nend\nend\n"
data=data.."ot[name]=nil\nlocal "..BM_TH.."={"..table.concat(SJZF,",").."}\nlocal "..B_M_T_H.."=#"..BM_TH.."\n"
defuanhx , defuangsub = ';if(nil)then;end;' , ';if%(nil%)then;end;'
max_ , min_ = 2 , 2
defuanhx_ = string.rep(defuanhx , SN:mul(max_ , min_))
defuan_1 = string.rep('(function()\n' .. defuanhx_ , 45)
defuan_2 = string.rep(defuanhx_ .. '\nend)()' , 45)
--data=FY.."\n"..data
DATA=_G["字符串"](data)
data="ot[name]=nil\nlocal Tab_key='"..table.concat(__Table_Key).."'\nlocal STR={}\n"..table.concat(STR,defuanhx_..'')..decode..DATA
data=data.."ot[name]=nil\nlocal "..BMTH.."=function(str)local zfc={}for i,v in paIrs(str)do zfc[#zfc+1]=(v)~"..BM_TH.."[(i-1)%"..B_M_T_H.."+1]end str=string_char(table_unpack(zfc))return str end\n"
data=data..""..zfc..""
data=_G["字符串1"](data)
data = data:gsub(defuangsub , '\n' , 1)
logo=[=[
本加密由正版加密→非天仔爸爸开发
———————————————
加密作者:天仔
Q群:1081557263
TG频道:YY
加密成功时间:]=] .. os.date("%Y.%m.%d.%H.%M.%S") .. [=[
["天仔加密非本人开发"]
["落魄古中寒风吹"]
["春秋蝉明少年归"]
["荡魂山处石人泪"]
["定先游走魔向北"]
["逆流河上万仙退"]
["爱情不敌坚持泪"]
["宿命天成命中败"]
["仙尊悔而我不悔"]
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣾⣿⣿⡇
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣾⣿⣿⣿⣿⣿⣷
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣤⣤⣴⣶⣶⣶⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢿⣿⣿⣿⣿⣿⣿⣿⡄
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣏⣿⣿⣿⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⠈⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⣿⣿⣿⣿⣿⡟⠀⠀⠀⠙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠙⠛⠛⠛⣿⣿⣿⣿⣿⣿⣿⠹⣷⡈⠻⠿⠋⠋⠀⠀⠶⠛⠛⠉⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡁
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣣⣴⣾⣷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣿⣿⣿⠉⠻⡟⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⡏⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⡿⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⠿⠋⣰⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠔⠒⠂⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⠀⠀⠀⠀⠀⠀⠀⢀⣠⠞⠋⠀⡀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡄⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀⢸
⠀⠀⠀⠀⠀⣠⡶⠋⠁⠀⠠⠊⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣦⣤⣀⡀⠀⠀⠀⠀⡇⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⢸
⣤⣄⣀⣴⠛⠁⠀⠀⡀⠀⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣤⣤⣤⣼⣷⣾⣿⣿⠹⣿⣿⣿⣿⣿⣿⡋⣿⠀⠀⠀⢸
⣠⡾⠋⠈⠉⠉⠠⢊⣀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠋⠉⠉⠉⠹⡏⣿⠇⠀⠀⠉⠛⠛⠿⠿⠭⣿⡍⠀⠀⠀⠈
⠁⣀⣀⣤⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠟⠛⠉⠁⠀⠀⠀⠀⠀⠀⢸⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢳
⠿⠿⢛⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢟⣿⣿⣿⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘
⢄⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣾⣿⡿⠟⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⢠⡀
⣿⣿⣿⣿⣿⣿⠿⠛⠋⢉⣵⣿⣿⣿⣿⣿⣿⣿⣵⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣇⠀⠀⠀⠀⠀⠀⣠⣾⡟⣿⡀
⣿⣿⣿⣿⡿⠃⠀⢀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠏⠀⠀⠀⠀⠀⢸⣿⣿⡇⢸⣧
⣿⢿⣿⡿⠁⢀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⡇⠘⠈⠄
⢁⣾⣿⢁⣴⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⣴⣶⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⡇
⣼⣿⣿⣾⣿⣿⣿⣿⡿⢿⣿⣿⣯⣾⣿⣿⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠈⠛⢋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣧
⣿⣿⣿⣿⡿⠟⢫⠏⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡀⠀
⠀ --KS.天仔
]=]
data = string.dump(load(data), true)
function strenc(str)
local t = {string.byte(str, 1, -1)}
for i = 1, #t do
t[i] = string.format('\\x%02x', t[i])
end
return '"' .. table.concat(t) .. '"'
end
data = strenc ( data ) --转16进制
data=[[
ot , name ={} , 1
gg_getFile=gg.getFile
_ENV["l".."o".."a".."d"](]]..data..[[)()
]]
data = string.dump(load(data), true)
time=os.clock()-time
io.open(ht[1] .. "-[天仔加密 免费版].lua", "w"):write(data..logo)
gg.alert("加密完成弟弟\n耗时:"..time.."秒\n输出路径:"..ht[1].."-[天仔加密 免费版].lua")