--源码来源于一个故人送给我的 --强度我不知道 --但我泛滥给你们了 --泛滥人:深情 GGlua交流群933825230 --送我源码的故人:bjn[他目前已退网] Fy = [===[ local TonumbEr = tonumber do local p = {} for k = 127744,128591 do table.insert(p,utf8.char(k))--emoji表情 end local x=("0"):rep(1048576) NZF_GG1=function(num) return(gg.setRanges(num.."."..x)) end NZF_GG2=function(num) return(gg.getResults(num.."."..x)) end local Emoij = {} for k = 127744,128591 do table.insert(Emoij,utf8.char(k)) end NZF_GG3=function(value,...) local arm={...} local cxxx=string.char(math.random(0,255)) local rzlog=tonumber("10") local Rep={} for i=1,rzlog do Rep[i]=cxxx end local logFk=(table.concat(Rep)) for i=1,rzlog do Rep[i]=logFk end local logFk=(table.concat(Rep)) while logFk~=string.rep(cxxx,rzlog*rzlog) do end local logSy={} for logTi=1,rzlog do logSy[logTi]=logFk end local logFk=nil local log3={gg.alert,gg.bytes,gg.copyText,gg.searchAddress,gg.searchNumber,gg.toast} for log1, log2 in pairs(log3) do _ENV["xpcall"](log2,gg.searchNumber,logSy) end for i=1,#arm do if type(arm[i])=="number" and not (tostring(arm[i])):find('[.]') then arm[i]=arm[i].."."..x end end local res = '' for i = 1,3000 do res = res .. Emoij[math.random(1,#Emoij)] if i%100 == 0 then res = res .. '\n' end end res = res:sub(1,-2) .. res local value = string.gsub(value,".",function(a1) if a1 == ":" and log == ":" then return a1 end log = a1 if log ~= ":" then a1 = a1 .. res end return res .. a1 end) return(gg.searchNumber(value,table.unpack(arm))) end NZF_GG4=function(...) local ar = {...} local res = '' for i = 1,3000 do res = res .. p[math.random(1,#p)] if i%100 == 0 then res = res .. '\n' end end res = res:sub(1,-2) .. res ar[1]=ar[1]:gsub("%d",function(ss) return ss..res end) for i=2,#ar do if type(ar[i])=="number" and not (tostring(ar[i])):find('[.]') then ar[i]=ar[i].."."..x end end return(gg.editAll(table.unpack(ar))) end end local Detection=gg.searchNumber gg.searchNumber=function(...) local vpn, Rep, time1, time2, rzlog, logFk, logSy, Hour, Montie, Second, search_e, log3, log4, arm arm={...} vpn=gg.makeRequest("https://time.tianqi.com/")["headers"]["Date"] Hour,Montie,Second=vpn[1]:match("(%d+):(%d+):(%d+)") if Hour=="00" then Hour=24 end time1=Hour*3600+Montie*60+Second rzlog=tonumber("800") Rep={} for i=1,rzlog do Rep[i]=" " end logFk=(table.concat(Rep)) for i=1,rzlog do Rep[i]=logFk end logFk=(table.concat(Rep)) while logFk~=string.rep(" ",rzlog^2) and #logFk~=rzlog^2 do end while string.rep("a",5)~="aaaaa" do end logSy={} for logTi=1,rzlog do logSy[logTi]=logFk end logFk=nil log3={_ENV["gg"]["alert"],_ENV["gg"]["bytes"],_ENV["gg"]["copyText"],_ENV["gg"]["searchAddress"],Detection,_ENV["gg"]["toast"]} for log1, log2 in pairs(log3) do xpcall(log2,Search,logSy) end log4=string.char(rzlog-rzlog) search_e=(log4):rep(7) for i=1,22 do search_e=search_e..search_e end gg.getResults(0) gg.editAll(search_e,4) Detection(search_e,16,false,gg.SIGN_EQUAL,0,-1) rzlog, logFk={}, {} for i=1,50 do logFk[i]=math.random(1,2140000000) rzlog[logFk[i]]={address=i,flags=4,temp=search_e} end rzlog=gg.getValues(rzlog) vpn=gg.makeRequest("https://time.tianqi.com/")["headers"]["Date"] Hour,Montie,Second=vpn[1]:match("(%d+):(%d+):(%d+)") if Hour=="00" then Hour=24 end time2=Hour*3600+Montie*60+Second while time2-time1>1 do os.exit() end return Detection(table.unpack(arm)) end ]===] 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 Tab={} function Tab.Table_Rand(t) local tRet = {} local Total = #t while Total > 0 do local i = math.random(1,Total) table.insert(tRet,t[i]) t[i] = t[Total] Total = Total-1 end return tRet end--打乱table local Let={} Let.Ran_bit = function(num) local zl = {} if not num then num = math.random(3, 5) end for x = 1, num do zl[#zl+1] = "\\x" .. string.char(math.random(65, 70)) .. string.char(math.random(65, 70)) end return table.concat(zl) end Let.Ran_str = function(len) if not len then len = math.random(4, 6) end local res = "" for i = 1, len do local choice = math.random(1, 2) if choice == 1 then res = res .. string.char(math.random(65, 90)) elseif choice == 2 then res = res .. string.char(math.random(97, 122)) end end return res end local Gsrt = function(nr) if not Yx_NuTa then Yx_NuTa,Yx_Zxc = {}, {} local n3 = Let.Ran_str() local n2, n4 for i = 1, 9 do n2 = Let.Ran_str() nr = nr:gsub(i,n2) Yx_Zxc[i] = n2 Yx_NuTa[i] = "local " .. n2 .. " = " .. "(Char[Tostring(#Fr_Dt)] + " .. i .. ") % "..n3 end Yx_NuTa = table.concat(Yx_NuTa,"\n") Yx_NuTa = "local Tostring=tostring\nlocal " .. n3 .. " = Char[Tostring(#Fr_Dt)]\n" .. Yx_NuTa n4 = Let.Ran_str() nr = nr:gsub("0",n4) Yx_Zxc[0] = n4 Yx_NuTa = Yx_NuTa .. "\nlocal " .. n4 .. " = " .. n3 .." - " .. n3 else for i=0,9 do nr = nr:gsub(i, Yx_Zxc[i]) end end return nr end local NusRv = {} local cxk = {} NumCal = function(num) local s1, s2, s3, s4, s5, s6, s7, s9, rk, kr local t1, t2 = " + " t2 = math.random(0,9) s1 = num / 256 s2 = num % 256 s6 = s1 - t2 s7 = math.random(1, 7) s4 = 0 repeat s4 = s4 + 1 s3 = 2 ^ s4 s5 = s2 - s3 until s5 < 10 if s5 <= -10 then rk = math.random(-9,9) s5 = rk - s5 if not cxk[s5] then kr = Let.Ran_bit() NusRv[kr] = s5 cxk[s5] = kr trx = cxk[s5] else trx = cxk[s5] end s5 = rk end if s5 < 0 then t1 = "" end if rk then s5 = s5 .. " - Wield[\"" .. trx .. "\"]" rk = nil end if s6 >= 10 then rk = math.random(-9,9) s6 = rk - s6 if not cxk[s6] then kr = Let.Ran_bit() NusRv[kr] = s6 cxk[s6] = kr trx = cxk[s6] else trx = cxk[s6] end s6 = rk .. " - " .. "Wield[\"" .. trx .. "\"]" rk = nil end s1 = "((" .. tostring(2 ~ s7) .. " ~ " .. s7 .. ") ^ (" .. s4 .. ") ".. t1 .. s5 .. " + (2 ^ (2 ^ 3)) * (" .. s6 .. " + " .. t2 .. "))" s1 = Gsrt(s1) return s1 end function WlCon(nr)--while写法 local func_Name = Let.Ran_str() local Key = NumCal(math.random(10000,999999)) local Main_Key = Key for i,k in pairs(nr) do if i==#nr then nr[i]="if " .. func_Name .. "==" .. Key .. " then\n" .. nr[i] .. "\nbreak\nend\n" else nr[i]="if " .. func_Name.."==" .. Key .. " then\n" .. nr[i] Key = NumCal(math.random(10000,999999)) nr[i]=nr[i] .. "\n" .. func_Name .. "=" .. Key .. "\nend\n" end end return "local " .. func_Name .."=" .. Main_Key .. "\nwhile true do\n" .. table.concat(Tab.Table_Rand(nr)).."\nend" end local fuc = { ["gg"] = 2, ["os"] = 2, ["io"] = 2, ["string"] = 2, ["math"] = 2, ["table"] = 2, ["debug"] = 2, ["bit32"] = 2, ["utf8"] = 2, } local Tab2, Be, str_Calcul = {}, {}, {} local XtyP=0 local Str_Enc = function(Data) if Data=="" then return "string.char()" end if str_Calcul[Data] then return str_Calcul[Data] end local max while true do max = math.random(3000,9000) if not Be[max] then Be[max]=2 break end end local compline reTn = math.random(10,20) local data = {string.byte(Data,0,-1)} for i,k in pairs(data) do data[i]=k~reTn end data[#data+1]=reTn data = "(function() return Str_dec({"..table.concat(data,",").."}) end)()" Tab2[#Tab2+1] = "Sherlock["..max.."]="..data str_Calcul[Data] = "string_char(Sherlock["..max.."])" return str_Calcul[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 local Fuc_Enc = function(ltre) gg.toast("正在加密标准库...") for v, s in pairs(_ENV) do if type(s) == "table" and fuc[v] then Enc_func1 = Str_Enc(v) for i in pairs(s) do if ltre:find(v .. "%." .. i) then Enc_func2 = Str_Enc(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[" .. Str_Enc(v) .. "](") ltre = ltre:gsub("=%s*" .. v .. "([^%w_])", "=_ENV[" .. Str_Enc(v) .. "]%1") end end end return ltre end local Enc_Strings = function(DATA,ToStrong_Str) 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, "%-%-")--注释 n1 = string.find(DATA, "[^%w_]0[xX][0-9A-Fa-f]+")--Hex n2 = string.find(DATA, "[^%w_]%d+")--Number str = Min_num(s1, ss1, x1, xx1, n1, n2) 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] = ToStrong_Str(t3()) 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] = ToStrong_Str(t3()) 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] = ToStrong_Str(t3()) 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 elseif str == n1 then DATA = DATA:gsub("(.-[^%w_])(0[xX][0-9A-Fa-f]+)",function(txt1,txt2) gr[#gr + 1] = txt1 gr[#gr + 1] = "TonumbEr("..ToStrong_Str(txt2)..")" return "" end,1) elseif str == n2 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 str == n3 then DATA = DATA:gsub("(.-[^%w_])(%d+%.%d+[eE][%-%+]%d+)",function(txt1,txt2) gr[#gr + 1] = txt1 gr[#gr + 1] = "TonumbEr("..ToStrong_Str(txt2)..")" return "" end,1) elseif str == n4 then DATA = DATA:gsub("(.-[^%w_])(%d+%.%d+[eE]%d+)",function(txt1,txt2) gr[#gr + 1] = txt1 gr[#gr + 1] = "TonumbEr("..ToStrong_Str(txt2)..")" return "" end,1) elseif str == n5 then DATA = DATA:gsub("(.-[^%w_])(%d+[eE]%d+)",function(txt1,txt2) gr[#gr + 1] = txt1 gr[#gr + 1] = "TonumbEr("..ToStrong_Str(txt2)..")" return "" end,1) elseif str == n6 then DATA = DATA:gsub("(.-[^%w_])(%d+%.%d+)",function(txt1,txt2) gr[#gr + 1] = txt1 gr[#gr + 1] = "TonumbEr("..ToStrong_Str(txt2)..")" return "" end,1) else DATA = DATA:gsub("(.-[^%w_])(%d+)",function(txt1,txt2) gr[#gr + 1] = txt1 gr[#gr + 1] = "TonumbEr("..ToStrong_Str(txt2)..")" 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") return gr end local g, yc = {}, {} g.last = gg.getFile() g.info = nil g.config = gg.EXT_FILES_DIR:gsub("%lua$", "") .. "/g.cfgsx" g.data = loadfile(g.config) if g.data ~= nil then; g.info = g.data() g.data = nil end if g.info == nil then g.info = {g.last} end ByXY=_ENV['gg']['prompt']({ [1]="ByXYG:选择添加验证脚本", },{ [1]=_ENV['gg']['getFile']():gsub('/[^/]+$',''), },{ [1]='file', }) if ByXY==nil then _ENV["os"]["exit"](_ENV["print"]("ByXYG:已退出")) end local YC=ByXY[1]:gsub("(.-)/","")--获取脚本名 XY2=ByXY[1]..".lua" XY2= _ENV['string']['match'](XY2, '[^%.]+') .. "(XY).lua" _ENV['io']['open'](XY2,"w"):write("--ByXYG\n") ByXY1=_ENV['gg']['prompt']({ [1]='XYG:当前选择的脚本', [2]='XYG:是否添加修改器验证', [3]='XYG:当前修改器版本', [4]='XYG:当前修改器包名', [5]='XYG:当前修改器版本号', [6]='XYG:当前其他修改器提示', [7]='XYG:是否添加脚本名字验证', [8]='XYG:当前脚本名字', [9]='XYG:是否添加QQ白名单验证', [10]='XYG:输入QQ号/英文,逗号分开', [11]='XYG:是否添加QQ黑名单验证', [12]='XYG:输入QQ号英文,逗号分开', [13]='XYG:是否添加使用时间验证', [14]='XYG:输入限制到时间', [15]='XYG:是否添加密码验证', [16]='XYG:请设置密码可/中文/符号/表情', [17]='XYG:是否添加进程限制', [18]='XYG:当前应用进程', },{ [1]=ByXY[1], [2]=nil, [3]=_ENV['gg']['VERSION'],--修改器版本验证 [4]=_ENV['gg']['PACKAGE'],--修改器包名验证 [5]=_ENV['gg']['BUILD'],--修改器版本号验证 [6]='请使用专属修改器执行', [7]=nil, [8]=YC,--脚本名验证 [9]=nil, [10]="1111111111111111,11111111111111111",--QQ白名单 [11]=nil, [12]="1111111111111111,11111111111111111",--QQ黑名单 [13]=nil, [14]=XY1, [15]=nil, [16]="123", [17]=nil, [18]=_ENV["gg"]["getTargetPackage"](), },{ [1]='file', [2]='checkbox', [3]='text', [4]='text', [5]='text', [6]='text', [7]='checkbox', [8]='text', [9]='checkbox', [10]='text', [11]='checkbox', [12]='text', [13]='checkbox', [14]='text', [15]='checkbox', [16]='text', [17]='checkbox', [18]='text', }) if ByXY1==nil then _ENV['os']['remove'](XY2:match("[^/]+$")) _ENV["os"]["exit"](_ENV["print"]("ByXYG:已退出")) end if ByXY1[2]==true then--修改器验证 ByXY3="\nif _ENV['gg']['VERSION']== '"..ByXY1[3].."' then\nelse\n_ENV['print']('"..ByXY1[6].."')\nwhile true do\n_ENV['os']['exit']()\nend end \n if _ENV['gg']['BUILD']=='"..ByXY1[5].."' then\n else\n_ENV['print']('"..ByXY1[6].."')\n_ENV['os']['exit']()\nwhile true do \nend end \nif _ENV['gg']['PACKAGE']=='"..ByXY1[4].."' then\n else\n_ENV['print']('"..ByXY1[6].."')\n_ENV['os']['exit']() \nwhile true do \nend \nend\n" ByXY2=_ENV['io']['open'](XY2,"r"):read("*a") _ENV['io']['open'](XY2,"w"):write(ByXY3..ByXY2) end if ByXY1[7]==true then--脚本名字验证 ByXY3="\nXY=_ENV['gg']['getFile']():match('[^/]*$')\nif XY~='"..ByXY1[8].."' then\nwhile true do\n_ENV['os']['exit'](_ENV['print']('请匆更改脚本名原脚本名:"..ByXY1[8].."'))\nend \nend\n" ByXY2=_ENV['io']['open'](XY2,"r"):read("*a") _ENV['io']['open'](XY2,"w"):write(ByXY3..ByXY2) end if ByXY1[9]==true then--QQ白名单验证 ByXY3="\nlocal QQ={"..ByXY1[10].."}\nfor k,v in _ENV['pairs'](QQ) do\nlocal aXY=_ENV['os']['rename']('/storage/emulated/0/Android/data/com.tencent.mobileqq/Tencent/MobileQQ/'..v,'/storage/emulated/0/Android/data/com.tencent.mobileqq/Tencent/MobileQQ/'..v)\nif aXY == true then\n_ENV['gg']['toast']('验证成功')\nelse\nwhile true do\n_ENV['os']['exit'](_ENV['print']('非内部人员'))\nend\nend\nend" ByXY2=_ENV['io']['open'](XY2,"r"):read("*a") _ENV['io']['open'](XY2,"w"):write(ByXY3..ByXY2) end if ByXY1[11]==true then--QQ黑名单验证 ByXY3="\nlocal QQ={"..ByXY1[12].."}\nfor k,v in _ENV['pairs'](QQ) do\nlocal aXY=_ENV['os']['rename']('/storage/emulated/0/Android/data/com.tencent.mobileqq/Tencent/MobileQQ/'..v,'/storage/emulated/0/Android/data/com.tencent.mobileqq/Tencent/MobileQQ/'..v)\nif aXY == true then\nwhile true do\n_ENV['os']['exit'](_ENV['print']('黑名单人员'))\nend\nelse\n_ENV['gg']['toast']('验证成功')\nend\nend" ByXY2=_ENV['io']['open'](XY2,"r"):read("*a") _ENV['io']['open'](XY2,"w"):write(ByXY3..ByXY2) end if ByXY1[13]==true then--限制时间验证 ByXY3=[[ XY1=nil XY2=nil XY=_ENV['gg']['makeRequest']('http://www.beijing-time.com/').content XY1=_ENV['string']['match'](XY,'(.-)') XY2='替换专用' if XY1 >=XY2 then while true do _ENV['os']['exit'](_ENV['print']('脚本已过期!')) end end ]] ByXY3=_ENV['string']['gsub'](ByXY3,"替换专用",ByXY1[14]) ByXY2=_ENV['io']['open'](XY2,"r"):read("*a") _ENV['io']['open'](XY2,"w"):write(ByXY3..ByXY2) end if ByXY1[15]==true then--密码验证 ByXY3="\nlocal ByXYNB = _ENV['gg']['prompt']({[1]='请输入密码'},{[1]=''},{[1]='text'}) \nif ByXYNB==nil then \n_ENV['os']['exit'](_ENV['print']('已退出'))\nend\nif ByXYNB[1]=='"..ByXY1[16].."' then \n_ENV['gg']['toast']('密码正确')\nelse\nwhile true do\n_ENV['os']['exit'](_ENV['print']('密码不正确'))\nend\nend\n" ByXY2=_ENV['io']['open'](XY2,"r"):read("*a") _ENV['io']['open'](XY2,"w"):write(ByXY3..ByXY2) end if ByXY1[17]==true then--进程验证 ByXY3="XY1=_ENV['gg']['getTargetPackage']()\nif XY1~='"..ByXY1[18].."'then\nwhile true do\n_ENV['os']['exit'](_ENV['print']('该进程非指定应用'))\nend\nend\n" ByXY2=_ENV['io']['open'](XY2,"r"):read("*a") _ENV['io']['open'](XY2,"w"):write(ByXY3..ByXY2) end ByXY2=_ENV['io']['open'](ByXY[1],"r"):read("*a") XY2=_ENV['io']['open'](XY2,"r"):read("*a") _ENV['io']['open'](ByXY[1],"w"):write(XY2..ByXY2) XY2=ByXY[1]..".lua" XY2= _ENV['string']['match'](XY2, '[^%.]+') .. "(XY).lua" _ENV['os']['remove'](XY2:match("[^/]+$")) _ENV['print']("XYG:验证写入成功") gg.saveVariable(yc.main, g.config) yc.data = Fy.."\n"..File_operations(ByXY[1]) gr = Fuc_Enc(Enc_Strings(yc.data,Str_Enc)) char=[=[ (function() (function() end)() local Xty2=0 local Char={} for i=0,255 do Char[i]=string.char(i) Char[string.char(i)]=i end local Str_dec = function(_Tab) for i=1,(#_Tab-1) do _Tab[i]=_Tab[i]~_Tab[#_Tab] end table.remove(_Tab,#_Tab) return _Tab end local string_char=function(Tab1) for i,k in pairs(Tab1) do if type(k)=="number" then Tab1[i]=Char[k] end end return table.concat(Tab1) end ]=] UI="\000"..[===[ 深情加密 定制版 ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣈⠀⡀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣼⣶⣂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⡄ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣿⣿⣿⣿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠜⠈⠂ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿⣿⣆⠀⠀⠀⠀⠁⠂⠀⠤⠀⣀⠀⡀⡀⠀⠀⠀⠀⠀⠀⠀⡀⠠⠀⠁⠄ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣷⣦⣠⠤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠉⠁⠀⠀⠀⠀⡈ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣷⣿⢀⣀⠀⠀⠀⠀⣀⡀⠀⢀⢀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠰ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣋⡒⠋⠀⠈⡤⣴⢶⣮⡼⡀⠀⠀⠀⠀⠀⠀⠀⡨⣊ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠒⠰⣿⣿⣿⣿⣿⣿⣿⣿⣝⠲⢴⣂⠄⢰⡚⠾⢿⠶⢳⡀⠀⠀⢀⠠⣐⣼⣿⣿⣤⡀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⡿⠛⠛⠿⣿⣿⣿⣿⣦⣙⠻⣷⣷⣾⣭⣥⣯⣭⣽⣶⣶⣿⣿⣿⣿⣿⣿⣿⣦⡀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⠁⣿⣷⡓⣽⣿⡿⣿⣬⣿⣷⣧⣹⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⢸⣿⣿⣿⣿⡀⢾⣿⣿⡄⢻⠇⠻⠷⢖⣿⣿⣿⣷⣦⣍⡛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢁⠀⢿⣿⣿⣿⣷⡈⠻⢿⠀⠀⠀⠀⠀⡀⠦⢬⣛⣯⣾⣿⣿⡾⢦⣍⡟⠻⢿⣿⣿⣿⣿⣿⣿⡿⠟⠁ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⢄⠙⢿⣿⣿⣷⣤⣒⢁⠀⠀⠀⡞⠀⠀⠀⠀⠀⠙⠿⠋⠀⡾⠟⢿⣿⣷⡖⠂⠀⠘⠇⣴⠒⠆ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠡⡀⠀⠀⠉⠻⢿⣻⣿⣿⠀⠀⠀⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡟⠀⠀⠀⡈⣸⡟⢘ ⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠰⡀⠀⠀⠀⡀⠉⠻⢿⣇⠀⠀⠘⠀⠀⠀⠀⠀⠀⠀⠀⠀⠲⣶⣶⣿⠃⠀⠀⢠⢡⣿⠇⡃⠁⡀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢱⡀⠀⠀⠈⠂⢀⠀⠉⠓⠄⠀⠃⠀⠀⠀⠀⠀⡀⢠⡴⢴⣿⣿⣿⠀⠀⠀⠄⣾⡿⠘⠀⠄ ⠀⠀⠀⠀⠀⠀⠀⠀⢂⠀⠀⠀⢀⣧⠀⠀⠀⠀⠀⠀⠢⠀⠀⠈⠐⠀⡀⠀⠀⠀⠩⣀⣀⣤⣿⣿⣿⡀⠀⢰⣾⣿⡇⡇⠀⠉⠆ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⢧⠀⠀⠀⢻⡆⠀⠀⠀⠀⠀⠀⠀⠠⠀⠀⢀⣠⢂⡀⠀⠀⠉⣻⣿⣿⣇⣿⡇⠠⢻⡟⢿⡇⡇⠀⠀⠈⡄⠐ ⠈⠀⠀⠀⠀⠀⠀⠀⠀⢘⣷⡀⠀⠐⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⠟⣄⣿⣷⣶⣾⣿⣿⣿⣿⣿⡇⢀⠂⡇⠀⠓⠀⠀⠀⠀⢠⠀⠁⠀⡀ ⠀⠀⠀⠀⠀⡇⠀⠀⠔⠁⠘⢿⣆⠀⠅⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠁⠀⡇⡿⣿⣭⣿⣿⣿⣿⣿⣿⡇⡆⠀⡇⠀⠀⠀⠀⠀⠀⠈⡀⢰⠬⢂ ⠀⠀⠀⠀⠀⠁⡀⠀⠀⠀⠀⠀⠙⢧⡀⠀⠀⠀⠀⢠⣴⣑⢄⣸⣿⠀⠀⠁⣷⣾⣿⣿⣿⣿⣿⣿⣿⡇⡇⠘⠀⢠⠀⠀⢠⠀⠀⠀⡇⢸⡁⡁ ⠀⠀⠀⠀⢀⠜⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⢘⣼⣢⠀⠿⣿⣽⣿⣿⠀⠀⠀⣏⣿⣿⣿⣿⣿⣿⣿⣿⡇⠁⠀⠀⠘⠀⠀⠸⠀⠀⠀⠀⢈⢊⠄ ⠐⠄⡀⠐⠁⢂⠀⠢⡀⠀⠀⠀⠀⠀⠀⠀⠩⡛⢸⠀⠐⣿⣺⣿⣿⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⢀⠃⠀⠀⠀⠀⠀⠀⠀⡤⠂ ⠀⠉⠢⠀⠀⠀⠀⠀⠈⠢⠀⠀⠀⠀⠀⠀⠀⠘⡜⣶⣂⠿⣿⣿⣿⡇⠀⠀⡘⠻⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⡌⠀⠀⠀⡄⠀⠀⠀⢠⠀⠀⡴⠀⠈ ⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣼⢿⢲⣿⠀⠙⢷⠀⠀⠀⠑⠪⣙⠻⣿⣿⡟⠀⡀⠀⡜⠀⠀⠀⣈⠀⠀⠀⠀⠈ ⠀⠀⠀⠀⠀⠀⠀⢠⡀⠀⠀⠀⠀⠐⡀⠀⠀⠀⠀⠹⣇⢻⣯⠀⠀⠀⠑⢤⣀⡀⠀⠨⠳⣦⠍⢀⡔⢀⠜⢀⡆⠀⠀⠁⠀⠀⠀⠀⣇⣀⡀⢀⣰⠄ ⠀⠀⠀⠀⠀⠀⠀⠲⡥⠀⠀⠀⠀⠀⢱⠀⠀⠀⠀⠀⠙⡆⠙⢷⡀⠀⠀⠀⠉⠳⢦⣄⠕⠁⡠⠚⠀⠁⠀⡾⠀⠀⠀⠀⠀⠀⠀⢠⡤⡄ ⢀⢆⠀⠀⠀⠀⠀⠠⣷⢀⠀⠀⠀⠀⠠⡆⠀⠀⠀⠀⠀⠈⢦⠀⠹⡧⡀⠀⠀⠀⠔⢁⣤⡞⠋⠀⠀⣰⡾⠀⠀⠀⠀⢀⣀⣤⣴⣾⣿⣷⣶⡖⠐ ⢸⣷⣆⠀⠀⠀⠀⠀⢿⣯⡄⠀⠀⠀⢸⣳⠀⠀⠀⠀⠀⠀⠀⠃⠀⠀⠻⢦⡀⡆⢰⣿⣿⣿⣼⣷⠟⠃⠀⠀⠀⠀⢠⣿⣿⣿⣿⣟⣿⣿⡉ ⠸⠿⠾⠧⠀⠀⠀⠀⠸⠿⠷⠀⠀⠀⠀⠻⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠣⠘⠷⠿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠱⠿⠿⠿⠿⠦ 自嘲 本是后山人,偶做前堂客。 醉卧经阁半卷书,坐井说天阔, 大志戏功名,海斗量福祸。 论道囊中羞涩时,怒指乾坤错。 欲游山河十万里,伴吾共蹉跎。 酒杯空,灯花落,夜无眠,独高歌, 阅遍天下人无数,知音有几个?-/-星殇 XYG8~兼容又装逼 作者:星殇 ]===] last = ByXY[1]:gsub("(.+)/(.+)",function(x,y) CoNe = "[星殇加密]-" .. y return x .. "/[星殇加密]-" .. y end) gr=char.."local Sherlock={}\n"..table.concat(Tab2,"\n").."\n".."\n"..gr.."\nend)([===["..UI.."]===])" local rg=load(gr) if not rg then os.exit(gg.alert("加密失败")) end gr=string.dump(rg,true) gg.internal2(load(gr), last) gr = io.open(last,"r"):read("*a") gr = gr:gsub("linedefined [^\n]+", "linedefined 0") :gsub("lastlinedefined [^\n]+", "lastlinedefined 0") :gsub("%.maxstacksize %d+", ".maxstacksize 250") gr = gr:gsub('(\n%s*RETURN [^\n]*)','%1\nRETURN v250..v250;\x4A\x53',100) gr = gr:gsub('(\n%s*TAILCALL [^\n]*)','%1\nRETURN v250..v250;\x4A\x53',100) local SJSF=function() return math.random(100,1100) end gr = gr:gsub("[^\n]*NEWTABLE[^\n]*", function(txt) return txt:gsub("(NEWTABLE v%d+) %d+ (%d+)","%1 "..SJSF().." %2") end) function SAN_t() local Random=math.random(1,20) return string.rep("�",Random) end TAB_SAN={} for k=231,239 do TAB_SAN[#TAB_SAN+1]="LOADK v"..k..' "'..SAN_t()..'"' end gr = gr:gsub("[^\n]*LOADK v248 0[^\n]*",function(txt) return txt:gsub(".+",txt.."\nNEWTABLE v239 200 0\n"..table.concat(TAB_SAN,"\n").."\n") end) --全局garbage gr = gr:gsub("\x00\x00\x00\x00\x00\x00\x00\x00(.)\xFA\xFA(....)\x17...",function(x,y) return "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF"..x.."\xFA\xFA"..y.."\x63\xBD"..string.char(math.random(250,255),math.random(95,127)) end) gr=gr:gsub('\x9F\x3E\x00\x01','\x24\x00\x00\x00') gr=gr:gsub("\x00\x00\x00\x00\x00\x00\x00\x00\xFA\xFA\xFA(....)\x17...",function(y) return "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFA\xFA\xFA"..y.."\x63\xBD"..string.char(math.random(250,255),math.random(95,127))end) --变量传输 gr = gr:gsub("\x00\x00\x00\x00\x00\x00\x00\x00\xFA\xFA\xFA(....)\x17...",function(y) return "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFA\xFA\xFA"..y.."\x63\xBD"..string.char(math.random(250,255),math.random(95,127)) end):gsub("\x00\x00\x00\x00\x00\x00\x00\x00\xFA\xFA\xFA(....)\x17...",function(y) return "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFA\xFA\xFA"..y.."\x63\xBD"..string.char(math.random(250,255),math.random(95,127)) end) --JMP加固 gr = gr.gsub(gr,"%.line 0",".line 0\nJMP :goto_999999\n:goto_999999\nMOVE v0 v0\n") gg.toast("unll防组组建成功") gr = gr:gsub(utf8.char(0x1B,0x00,0x00, 0x00, 0x17, 0x00 ,0x00 ,0x80,0x01), utf8.char(0x1B, 0x00, 0x00, 0x00 ,0x17, 0x00 ,0x00 ,0x80 ,0x17)) gr = gr:gsub(utf8.char(0x1B,0x00,0x00, 0x00, 0x17, 0x40 ,0x00 ,0x80,0x01), utf8.char(0x1B, 0x00, 0x00, 0x00 ,0x17, 0x40 ,0x00 ,0x80 ,0x99)) gr = gr:gsub(utf8.char(0x17 ,0x80 ,0xFE ,0x7F ,0x06), utf8.char(0x17 ,0x80 ,0x1B ,0x7F ,0x06)) gr = gr:gsub(utf8.char(0x1F ,0x00 ,0x80 ,0x00 ), utf8.char(0x1F ,0x00 ,0x80 ,0xAB)) local ZL = { ['EXTRAARG'] = 2, ['MOVE'] = 2, ['UNM'] = 2, ['NOT'] = 2, ['LEN'] = 2, ['ADD'] = 2, ['SUB'] = 2, ['MUL'] = 2, ['DIV'] = 2, ['MOD'] = 2, ['POW'] = 2, ['GETTABLE'] = 2, ['SETTABLE'] = 2, ['NEWTABLE'] = 2, ['SELF'] = 2, ['SETLIST'] = 2, ['LOADNIL'] = 2, ['CONCAT'] = 2, ['CALL'] = 2, ['VARARG'] = 2, ['TAILCALL'] = 2, ['TFORCALL'] = 2, ['GETUPVAL'] = 2, ['SETUPVAL'] = 2, ['GETTABUP'] = 2, ['SETTABUP'] = 2, ['CLOSURE'] = 2, ['RETURN'] = 2 } function Disloc(Tran,free) local Pic = {"🚀","✈️","🛸","✈️","🛰","🚀","🛸","🛰","✈️","🚀","✈️","🛸"} local Star = 0 local Resver function Resver() Star = Star + 1 if Star > #Pic then Star = 1 end local Tab = {} local b = gg.bytes(Pic[Star]) local tab = {} for k,v in pairs(b) do table.insert(tab, 1, string.format("%x",v)) end tab = table.concat(tab) tab = tab:gsub("........",function (x) table.insert(Tab, 1, "OP[48] 0x" .. x .. "\n") end,1) return "\n" .. table.concat(Tab) end if not free then Resver=function() return "" end end gg.toast("正在进行JMP错位...") Tran = Tran:gsub("(; .local v[^\n]+)\n",function(x) return x end):gsub("\n%s*(; .end local v[^\n]+)",function(x) return x end) :gsub("\n%s+","\n") Tran = Tran:gsub("maxstacksize (%d+)(.-RETURN[^\nv]+)\n",function(max,str) if str:find("TFORCALL") == nil then local tre_S = {} local tre_C = {} local num = 1000000 str = str:gsub("[^\n]+",function(s) zl = s:match("%S+") if zl == ".upval" or zl == ".line" then tre_C[#tre_C+1] = s elseif zl == "RETURN" then if s:find("v") then tre_S[#tre_S+1] = ":goto_" .. num .. "\n" .. s .. "\n" .. "JMP :goto_" .. (num+1) .. Resver() num = num+1 else tre_S[#tre_S+1] = ":goto_" .. num .. "\n" .. s num = num+1 end elseif zl:find("goto_") then tre_S[#tre_S+1] = s .. "\n" .. "JMP :goto_" .. num .. Resver() elseif zl == "JMP" then if tre_S[1] then tre_S[#tre_S] = tre_S[#tre_S]:gsub("(.+)(JMP[^\n]+)",function(zz,o) return zz .. s .. "\n" .. o end) else tre_C[#tre_C+1] = s end else tre_S[#tre_S+1] = ":goto_" .. num .. "\n" .. s .. "\n" .. "JMP :goto_" .. (num+1) .. Resver() num = num+1 end end) tre_S = Tab.Table_Rand(tre_S) for i,k in pairs(tre_C) do table.insert(tre_S,i,k) end table.insert(tre_S,#tre_C+1,"JMP :goto_1000000") tre_S = table.concat(tre_S,"\n") return "maxstacksize "..math.random(190,230).."\n" .. tre_S:gsub("\n%s+","\n") .. "\n" else local tre_Z = {} local num = 1000000 local tre_X = {} local tre_V = {} str = str:gsub("[^\n]+",function(s) zl = s:match("%S+") local Dt,tD,DT = nil, nil, nil if zl == ".upval" or zl == ".line" then tre_Z[#tre_Z+1] = s tD = true end if ZL[zl] then num = num+1 if zl == "RETURN" and s:find("v") == nil then tre_X[#tre_X+1] = ":goto_" .. num .. "\n" .. s DT=true else tre_X[#tre_X+1] = ":goto_" .. num .. "\n" .. s .. "\n" .. "JMP :goto_" .. (num+1) .. Resver() num = num+1 Dt = true end end if Dt then return "JMP :goto_" .. (num-1) .. "\n:goto_" .. num elseif tD then return "" elseif DT then return "JMP :goto_" .. num else return s end end) tre_X = Tab.Table_Rand(tre_X) tre_V = Tab.Table_Rand(tre_V) tre_Z = table.concat(tre_Z,"\n") tre_X = table.concat(tre_X,"\n") tre_V = table.concat(tre_V,"\n") return "maxstacksize "..max.."\n" .. tre_Z .. "\nJMP :goto_1000000\n" .. tre_X .. "\n:goto_1000000\n" .. str .. "\n" .. tre_V .. "\n" end end) Tran = Tran:gsub("; .local v%d+%s*\"%(.-%)\"",function(x) return x .. "\n" end):gsub("; .end local v%d+%s*\"%(.-%)\"",function(x) return "\n" .. x end):gsub("\n%s+","\n") return Tran end gr=Disloc(gr,1) File_operations(last,gr) local rg=load(gr) if not rg then os.exit(gg.alert("加密失败")) end gr=string.dump(rg,true) File_operations(last,gr) gg.setVisible(true)