      ab22a390752645680f3da8a1jf1bfbf87e=function (vip)
        ---[=[脚本可以复制到下面]=]-------------------------------------------------------------------------------------------------------------------
        
        
        
        

 function aa()
gg.setRanges(4)
gg.searchNumber("32D;40D;5F::100", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
gg.searchNumber("5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
gg.getResults(1000)
gg.editAll("1", gg.TYPE_FLOAT)
gg.clearResults()
end
--请勿动此功能！
       
                   function search(start)
gg.clearResults()
gg.setVisible(false)
gg.searchNumber(start[1][1], start[1][3], false, 536870912, start[1][4], start[1][5])
local count = gg.getResultCount()
local result = gg.getResults(count)
gg.clearResults()
local data = {}
local baseaddress = start[1][2]
if count == nil then
gg.toast("未搜索到数据")
os.exit()
end
for k, v in ipairs(result) do
v.isUseful = true 
end
for i = 2, #start do
local tmp = {}
local offset = start[i][2] - baseaddress 
local num = start[i][1]
local type = start[i][3]            
for k, v in ipairs(result) do
tmp[#tmp+1] = {} 
tmp[#tmp].address = v.address + offset  
tmp[#tmp].flags = type  
end
tmp = gg.getValues(tmp) 
for k, v in ipairs(tmp) do
if ( string.format("%.5f", (v.value)) ~= string.format("%.5f", (num)) ) then 
result[k].isUseful = false
end
end
end
for k, v in ipairs(result) do
if (v.isUseful) then 
data[#data+1] = v.address
end
end
if data[1] == nil then
gg.toast("未能获取有效数据")
os.exit()
end
return data
end


function point(s,p)
local tem = {}
local first = gg.getValues({[1] = {address = s + p[1][1], flags = p[1][2], }})
local tab = {}
local get = {}
tem = first
table.insert(tab, tem[1].value)
if #p > 1 then
for i = 2, #p do
local loop = gg.getValues({[1] = {address = tem[1].value + p[i][1], flags = p[i][2], }})
tem = loop
table.insert(tab, tem[1].value)
end
return tab
else
return tab
end
end


function write(t,w)
local get =  {}
for i = 1, #w do
if (w[i][5] ~= nil and #w[i][5] == 1) then
local a = gg.getValues({[1] = {address = tonumber(t) + w[i][5][1][1], flags = w[i][5][1][2], }})
local b = gg.getValues({[1] = {address = a[1].value + w[i][2], flags = w[i][3]}})
if w[i][1] ~= nil then
for k, v in pairs(b) do
b[1].value = w[i][1]
end
gg.setValues(b)
end
if w[i][4] == true then
for k, v in pairs(b) do
b[1].freeze = true
end
gg.addListItems(b)
end
elseif (w[i][5] ~= nil and #w[i][5] > 1) then
local a = gg.getValues({[1] = {address = tonumber(t) + w[i][5][1][1], flags = w[i][5][1][2], }})
get = a
for k = 2, #w[i][5] do
local b = gg.getValues({[1] = {address = get[1].value + w[i][5][k][1], flags = w[i][5][k][2], }})
get = b
end
local c = gg.getValues({[1] = {address = get[1].value + w[i][2], flags = w[i][3]}})
if w[i][1] ~= nil then
for k, v in pairs(c) do
c[1].value = w[i][1]
end
gg.setValues(c)
end
if w[i][4] == true then
for k, v in pairs(c) do
c[1].freeze = true
end
gg.addListItems(c)
end
elseif w[i][5] == nil then
local c = gg.getValues({[1] = {address = tonumber(t) + w[i][2], flags = w[i][3]}})
if w[i][1] ~= nil then
for k, v in pairs(c) do
c[1].value = w[i][1]
end
gg.setValues(c)
end
if w[i][4] == true then
for k, v in pairs(c) do
c[1].freeze = true
end
gg.addListItems(c)
end
end
end
end


function addressedit(s,w,p)
local get = {}
if (type(s) == "table") then
local a = search(s)
if p ~= nil then
for i = 1, #a do
get =  point(a[i], p)
write(get[#get], w)
return get
end
else  
for i = 1, #a do
write(a[i], w)
end
end
end
if (type(s) == "number"  or  type(s) == "string") then
if p ~= nil then
get =  point(s, p)
write(get[#get], w)
return get
else  
write(s, w)
end
end
end
--指针配置
         
         
         
         
  function getRanges()
 local ranges = {}
 local tt = {}
 local t = gg.getRangesList('^/data/*.so*$')
 for i in pairs(t) do
   if t[i].type:sub(2, 2) == 'w' or t[i].type == "r-xp" then
     if not tt[t[i].internalName] then
       tt[t[i].internalName] = {}
     end
     if not tt[t[i].internalName][t[i].state] then
       tt[t[i].internalName][t[i].state] = 0
     end
     tt[t[i].internalName][t[i].state] = tt[t[i].internalName][t[i].state] + 1
     t[i].count = tt[t[i].internalName][t[i].state]
     table.insert(ranges, t[i])
   end
 end
 return ranges
end
function Base_Address(N_So)
 local S_list = getRanges()
 local _S = {}
 for i in pairs(S_list) do
   local _N = S_list[i].internalName:gsub('^.*/', '')
   if N_So[1] == _N and N_So[2] == S_list[i].state and N_So[3] == S_list[i].count then
     _S = S_list[i]
     break
   end
 end
 return _S.start
end
function Get_Address(Address, Offset)
 local flags_bit = {[true] = 32, [false] = 4}
 local ti64 = gg.getTargetInfo().x64
 local Type = flags_bit[ti64]
 local addr = 0
 if Address then
   addr = Address + Offset[1]
   for _ = 2, #Offset do
     local pointer = gg.getValues({{address = addr, flags = Type}})
     if not ti64 then
       pointer[1].value = pointer[1].value & 0xFFFFFFFF
     end
     addr = pointer[1].value + Offset[_]
   end
 end
 return addr
end
           
           


function LXY(Search,Write)gg.clearResults()gg.setVisible(false)lx=Search[1][" D"]gg.searchNumber(Search[1]["主特征码"],lx)local count=gg.getResultCount()local result=gg.getResults(count)gg.clearResults()local data={}if(count>0)then for i,v in ipairs(result)do v.isUseful=true end for k=2,#Search do local tmp={}local num=Search[k]["副特征码"]if Search[k][" D"]~=nil then lx=Search[k][" D"]else lx=Search[1][" D"]end for i,v in ipairs(result)do tmp[#tmp+1]={}tmp[#tmp].address=v.address+Search[k]["偏移"]tmp[#tmp].flags=lx end tmp=gg.getValues(tmp)for i,v in ipairs(tmp)do if(tostring(v.value)~=tostring(num))then result[i].isUseful=false end end end for i,v in ipairs(result)do if(v.isUseful)then data[#data+1]=v.address end end if(#data>0)then local t={}for i=1,#data do for k,w in ipairs(Write)do if w[" D"]~=nil then lx=w[" D"]else lx=Search[1][" D"]end t[#t+1]={}t[#t].address=data[i]+w["偏移"]t[#t].flags=lx if(w["修改"]~=nil)and(w["修改"]~=false)then t[#t].value=w["修改"]gg.setValues(t)if(w["冻结"]==true)then local item={}item[#item+1]=t[#t]item[#item].freeze=w["冻结"]gg.addListItems(item)end end end end gg.loadResults(t)else return false end else return false end end
--lxy配置


function CSM(C,S,M)if M~=nil then if C==nil then gg.toast(M..'失败\n原因：无主特征码')elseif C==false then gg.toast(M..'失败\n原因：无副特征码')else local x,d={},{}for i=1,#C do for k,w in ipairs(S)do local t={}t['address']=C[i]+w[1]*4 t['flags']=w[2]t['value']=w[3]if(w[4]==true)then t['freeze']=true d[#d+1]=t else x[#x+1]=t end end end gg.setValues(x)gg.addListItems(d)gg.toast(M..'\n成功')end elseif S~=nil then gg.clearResults()gg.setRanges(C[1])gg.searchNumber(C[2],C[3],false,gg.SIGN_EQUAL,C[4],C[5],C[6])local SL=gg.getResultCount()local SS=gg.getResults(SL)gg.clearResults()local DZ={}if(SL>0)then for i,v in ipairs(SS)do v.isUseful=true end for k=1,#S do local tmp={}local num=S[k][2]for i,v in ipairs(SS)do tmp[#tmp+1]={}tmp[#tmp].address=v.address+S[k][1]*4 tmp[#tmp].flags=v.flags end tmp=gg.getValues(tmp)for i,v in ipairs(tmp)do if (v.value~=num)then SS[i].isUseful=false end end end for i,v in ipairs(SS)do if(v.isUseful)then DZ[#DZ+1]=v.address end end if DZ[1]==nil then return false else return DZ end else return nil end end end
local function hqsj(dz,sj)local t={}for i,v in ipairs(sj)do t[i]={}t[i].address=dz+sj[i][1]*4 t[i].flags=sj[i][2]end local ss=gg.getValues(t)local s={}for i,v in ipairs(ss)do s[i]=ss[i]['value']end return s end



state={}   state.p="[开]" state.a="[开]"

--开关功能配置

function Main()
 SN = gg.multiChoice({
 "怪物自杀",--1
 "无限耐力",--2
 "飞行滞空",--3
 "元素爆炸",--4
 "吸取怪物[循环]",--5
 "移除怪物[循环]",--6
 "攀爬加速",--7
 "游泳加速",--8
 "全局加速",--9
 "飞行加速",--10
 "早柚翻滚速度",--11
 "普攻改大招",--12
 "修改中文UID",--13
 "随机字符UID",--14
 "瞬移跑路"..state.p,--15
 "原地高跳",--16
 "移动高跳",--17
 "全角攻速",--18
 "女仆攻速",--19
 "重击攻速",--20
 "弓箭蓄力",--21
 "自动飞天"..state.a,--21
 "退出脚本"
}, nil, "")
 if SN == nil then
 else
 if SN[1] == true then
   a()
 end
 if SN[2] == true then
  b()
 end
 if SN[3] == true then
  c()
 end
 if SN[4] == true then
  d()
 end
 if SN[5] == true then
  e()
 end
 if SN[6] == true then
  f()
 end
 if SN[7] == true then
  g()
 end
 if SN[8] == true then
  h()
 end
 if SN[9] == true then
  i()
 end
 if SN[10] == true then
  j()
 end
 if SN[11] == true then
  k()
 end
 
if SN[12] == true then
  aa()
 end
 
 if SN[13] == true then
  m()
 end
 if SN[14] == true then
  n()
 end
 if SN[15] == true then
  o()
 end
  if SN[16] == true then
  a1()
  end
   if SN[17] == true then
  a2()
  end
   if SN[18] == true then
  a3()
  end
   if SN[19] == true then
  a4()
  end
   if SN[20] == true then
  a5()
  end
     if SN[21] == true then
  a6()
  end
  if SN[22] == true then
  a7()
  end
 if SN[23] == true then
  Exit()
 end
end
 XGCK = -1
end



function a()
local addr = gg.getRangesList('libil2cpp.so')[1].start
gg.setValues({[1] = {address = addr + 0x8150384, value =0 , flags = 1,}})
gg.toast("开启成功")
end



function b()
local addr = gg.getRangesList('libil2cpp.so')[1].start
gg.setValues({[1] = {address = addr + 0xCD25470, value =0 , flags = 4,}})
gg.toast("开启成功")
end



function c()
local addr = gg.getRangesList('libil2cpp.so')[1].start
gg.setValues({[1] = {address = addr + 0xCD2296C, value =0 , flags = 16,}})
gg.toast("开启成功")
end



function d()

local t = Base_Address({"libil2cpp.so:bss", "Cb", 1})
local tt = {0x6AA90, 0xA0, 0x1C}
local ttt = Get_Address(t, tt)
gg.setValues({{address = ttt, flags = 16, value = 0}})
gg.toast("元素爆炸开启成功")

end



function e()
local zb=CSM({4,1287568416,4,0,-1},{{-17,17170438},{-28,65539},{-44,65543},})
while(true)do
if gg.isVisible(true) then gg.setVisible(false) break else
local dzb1=hqsj(zb[1],{{-20,16},{-19,16},{-18,16},})
local dzb2=hqsj(zb[1],{{20,16},{21,16},{22,16},})
local dz=CSM({4,1287568416,4,0,-1},{{-17,17170438},})
local xzb={}
for x=1,#dz do
if dz[x]~=zb[1] then
xzb[#xzb+1]=dz[x]
end
end
CSM(xzb,{{-20,16,dzb1[1]},{-19,16,dzb1[2]},{-18,16,dzb1[3]},{20,16,dzb2[1]},{21,16,dzb2[2]},{22,16,dzb2[3]},},"吸怪")
end
end
end




function f()
gg.setVisible(false)
local zb=CSM({4,1287568416,4,0,-1},{{-17,17170438},{-28,65539},{-44,65543},})
while(true)do
if gg.isVisible(true) then break else
local dz=CSM({4,1287568416,4,0,-1},{{-17,17170438},})
local xzb={}
for x=1,#dz do
if dz[x]~=zb[1]then
xzb[#xzb+1]=dz[x]
end
end
CSM(xzb,{{-19,16,-999},{21,16,-999},},"移除怪物")
end
end
end




function g()
local a=gg.prompt({"请设置你的速度 初始:1\n倍数："},{"1"},{number})
if a==nil then gg.toast("您取消了操作")else
local dz=CSM({4 ,65792,4,0,-1},{{12,88},{10,8},{14,280}})
CSM(dz,{{-2  ,16,a[1]},},"攀爬速度")
end
end



function h()
local a=gg.prompt({"请设置你的速度 初始:1\n倍数："},{"1"},{number})
if a==nil then gg.toast("您取消了操作")else
local dz=CSM({4  ,65792,4,0,-1},{{10,8},{12,32},{14,240}})
CSM(dz,{{-2,16,a[1]},},"游泳速度")
end
end



function i()
local a=gg.prompt({"请设置你的速度 初始:1\n倍数："},{"1"},{number})
if a==nil then gg.toast("您取消了操作")else
local dz=CSM({4  ,1036563513,4},{{1,1023879938},})
CSM(dz,{{-1,16,a[1]},},"全局加速")
end
end



function j()
local a=gg.prompt({"请设置你的速度 初始:1\n倍数："},{"1"},{number})
if a==nil then gg.toast("您取消了操作")else
local dz=CSM({32,1069547520,4,0,-1},{{1,1086324736},{2,1066920408}})
CSM(dz,{{3,16,a[1]},},"飞行速度")
end



function k()
local a=gg.prompt({"请设置你的速度 初始:1\n倍数："},{"1"},{number})
if a==nil then gg.toast("您取消了操作")else
local dz=CSM({4  ,65792,4,0,-1},{{14,1045220557},{10,58},})
CSM(dz,{{-2,16,a[1]},},"柚岩龙蜥")
end
end






function m()
local a = {"一","二","三","四","伍","六","七","八","九","十"}
local b = {}
local c = {}
for i = 0x4E00, 0x978F do
for k = 1, #a do
if utf8.char(i) == a[k] then
table.insert(b, i)
end
end
end
for i = 1, #b do
for k, v in ipairs(b) do
if a[i] == utf8.char(b[k]) then
table.insert(c, b[k])
end
end
end
local cpu = os.clock()
gg.setRanges(32)
local a = gg.getValues({[1] = {address = search({{1134559232, 0x0, 4}, {1101004800, 0x4, 4}, {1065353216, 0x8, 4},})[1] - 0x50, flags = 32}})
for i = 1, 10 do
gg.setValues({[1] = {address = a[1].value + i *2 + 0x1A, value = c[i], flags = 2,}})
end
gg.toast(string.format("修改中文UID成功", os.clock() - cpu))
end



function n()
math.randomseed(tostring(os.time()):reverse())
local cpu = os.clock()
gg.setRanges(32)
local a = gg.getValues({[1] = {address = search({{1134559232, 0x0, 4}, {1101004800, 0x4, 4}, {1065353216, 0x8, 4},})[1] - 0x50, flags = 32}})
for i = 1, 14 do
gg.setValues({[1] = {address = a[1].value + i *2 + 0x12, value = math.random(1, 127), flags = 2,}})
end
gg.toast(string.format("修改随机UID成功\n传送刷新即可", os.clock() - cpu))
end



function o()
if state.p=="[开]" then
local dz=CSM({4  ,1041865114,4},{{4,-190986834},{9,1287568416},})
CSM(dz,{{-1,16,-5,true},},"瞬移跑路")
 state.p="[关]"
 elseif state.p=="[关]" then
local dz=CSM({4  ,1041865114,4},{{4,-190986834},{9,1287568416},})
CSM(dz,{{-1,16,0,false},},"瞬移跑路")
 state.p="[开]"
 end
end
end

function a1()
local a=gg.prompt({"初始数值1是正常高度"},{"1"},{number})
if a==nil then gg.toast("您取消了操作")else
local dz=CSM({4,1074181741,4},{{0,1074181741},})
CSM(dz,{{-2,16,a[1]},},"原地高跳")
end end

function a2()
local a=gg.prompt({"初始数值1是正常高度"},{"1"},{number})
if a==nil then gg.toast("您取消了操作")else
local dz=CSM({4,1066867938,4},{{0,1066867938},})
CSM(dz,{{-1,16,a[1]},},"移动高跳")
end
end
function a3()
gg.setRanges(4)
local tb1={ 
{[" D"] =  4  ,["主特征码"] =  1743855065  } , 
}
local tb2={
{[" D"] =  16 ,["偏移"] =  16  , ["冻结"] =  false  , ["修改"] =  6  } ,
} LXY(tb1, tb2)
gg.clearResults()
end

function a4()
local dz=CSM({4 ,1638193991,4},{{5,1065353216},{7,256},{11,136},})
CSM(dz,{{5,16,99},},"女仆攻速")
end

function a5()
gg.clearResults()
gg.setRanges(4  )
gg.searchNumber("3.8013333e20;1::21", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
gg.searchNumber("1", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
gg.getResults(1000)
gg.editAll("5", gg.TYPE_FLOAT)
gg.clearResults()
end

function a6()
gg.setRanges(32)
local tb1={ 
{[" D"] =  32  ,["主特征码"] =  1082977991  } , 
}
local tb2={
{[" D"] =  32 ,["偏移"] =  0  , ["冻结"] =  false  , ["修改"] =  1148829696  } ,
} LXY(tb1, tb2)
gg.clearResults()
end

function a7()
if state.a=="[开]" then
local t = Base_Address({"libil2cpp.so:bss", "Cb", 1})
local tt = {0x5A158, 0xA0, 0x128}
local ttt = Get_Address(t, tt)
gg.addListItems({{address = ttt, flags = 16, value = 1, freeze = true}})
gg.toast("自动飞天开启成功")
 state.a="[关]"
 elseif state.a=="[关]" then
local t = Base_Address({"libil2cpp.so:bss", "Cb", 1})
local tt = {0x5A158, 0xA0, 0x128}
local ttt = Get_Address(t, tt)
gg.addListItems({{address = ttt, flags = 16, value = -1, freeze = true}})
gg.toast("自动飞天关闭成功")
 state.a="[开]"
 end
end






function Exit()
os.exit()
end




while true do
 if gg.isVisible(true) then
   XGCK = 1
   gg.setVisible(false)
 end
 gg.clearResults()
 if XGCK == 1 then
   Main()
 end
end




        
        
        
        
        ---[=[上面可以复制上你的脚本]=]------------------------------------------------------------------------------------------------------------------- end-- ab80fff28ac9259a245266d5b0cc5575c7
        end
        
        
        function md5(code)    local code = tostring(code)    local HexTable = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"}    local A = 0x67452301    local B = 0xefcdab89    local C = 0x98badcfe    local D = 0x10325476    local S11 = 7    local S12 = 12    local S13 = 17    local S14 = 22                 local S21 = 5       local S22 = 9       local S23 = 14       local S24 = 20       local S31 = 4       local S32 = 11       local S33 = 16       local S34 = 23       local S41 = 6       local S42 = 10       local S43 = 15       local S44 = 21       local function F(x,y,z)         return (x & y) | ((~x) & z)       end       local function G(x,y,z)         return (x & z) | (y & (~z))       end       local function H(x,y,z)         return x ~ y ~ z       end       local function I(x,y,z)         return y ~ (x | (~z))       end       local function FF(a,b,c,d,x,s,ac)         a = a + F(b,c,d) + x + ac         a = (((a & 0xffffffff) << s) | ((a & 0xffffffff) >> 32 - s)) + b         return a & 0xffffffff       end       local function GG(a,b,c,d,x,s,ac)         a = a + G(b,c,d) + x + ac         a = (((a & 0xffffffff) << s) | ((a & 0xffffffff) >> 32 - s)) + b         return a & 0xffffffff       end       local function HH(a,b,c,d,x,s,ac)         a = a + H(b,c,d) + x + ac         a = (((a & 0xffffffff) << s) | ((a & 0xffffffff) >> 32 - s)) + b         return a & 0xffffffff       end       local function II(a,b,c,d,x,s,ac)         a = a + I(b,c,d) + x + ac         a = (((a & 0xffffffff) << s) | ((a & 0xffffffff) >> 32 - s)) + b         return a & 0xffffffff       end       local function MD5StringFill(s)         local len = s:len()         local mod512 = len * 8 % 512         local fillSize = (448 - mod512) // 8         if mod512 > 448 then           fillSize = (960 - mod512) // 8         end         local rTab = {}         local byteIndex = 1         for i = 1,len do           local index = (i - 1) // 4 + 1           rTab[index] = rTab[index] or 0           rTab[index] = rTab[index] | (s:byte(i) << (byteIndex - 1) * 8)           byteIndex = byteIndex + 1           if byteIndex == 5 then             byteIndex = 1           end         end         local b0x80 = false         local tLen = #rTab         if byteIndex ~= 1 then           rTab[tLen] = rTab[tLen] | 0x80 << (byteIndex - 1) * 8           b0x80 = true         end         for i = 1,fillSize // 4 do           if not b0x80 and i == 1 then             rTab[tLen + i] = 0x80            else             rTab[tLen + i] = 0x0           end         end         local bitLen = math.floor(len * 8)         tLen = #rTab         rTab[tLen + 1] = bitLen & 0xffffffff         rTab[tLen + 2] = bitLen >> 32         return rTab       end              function getmd5(s)         local fillTab = MD5StringFill(s)         local result = {A,B,C,D}         for i = 1,#fillTab // 16 do           local a = result[1]           local b = result[2]           local c = result[3]           local d = result[4]           local offset = (i - 1) * 16 + 1           a = FF(a, b, c, d, fillTab[offset + 0], S11, 0xd76aa478)           d = FF(d, a, b, c, fillTab[offset + 1], S12, 0xe8c7b756)           c = FF(c, d, a, b, fillTab[offset + 2], S13, 0x242070db)           b = FF(b, c, d, a, fillTab[offset + 3], S14, 0xc1bdceee)           a = FF(a, b, c, d, fillTab[offset + 4], S11, 0xf57c0faf)           d = FF(d, a, b, c, fillTab[offset + 5], S12, 0x4787c62a)           c = FF(c, d, a, b, fillTab[offset + 6], S13, 0xa8304613)           b = FF(b, c, d, a, fillTab[offset + 7], S14, 0xfd469501)           a = FF(a, b, c, d, fillTab[offset + 8], S11, 0x698098d8)           d = FF(d, a, b, c, fillTab[offset + 9], S12, 0x8b44f7af)           c = FF(c, d, a, b, fillTab[offset + 10], S13, 0xffff5bb1)           b = FF(b, c, d, a, fillTab[offset + 11], S14, 0x895cd7be)           a = FF(a, b, c, d, fillTab[offset + 12], S11, 0x6b901122)           d = FF(d, a, b, c, fillTab[offset + 13], S12, 0xfd987193)           c = FF(c, d, a, b, fillTab[offset + 14], S13, 0xa679438e)           b = FF(b, c, d, a, fillTab[offset + 15], S14, 0x49b40821)           a = GG(a, b, c, d, fillTab[offset + 1], S21, 0xf61e2562)           d = GG(d, a, b, c, fillTab[offset + 6], S22, 0xc040b340)           c = GG(c, d, a, b, fillTab[offset + 11], S23, 0x265e5a51)           b = GG(b, c, d, a, fillTab[offset + 0], S24, 0xe9b6c7aa)           a = GG(a, b, c, d, fillTab[offset + 5], S21, 0xd62f105d)           d = GG(d, a, b, c, fillTab[offset + 10], S22, 0x2441453)           c = GG(c, d, a, b, fillTab[offset + 15], S23, 0xd8a1e681)           b = GG(b, c, d, a, fillTab[offset + 4], S24, 0xe7d3fbc8)           a = GG(a, b, c, d, fillTab[offset + 9], S21, 0x21e1cde6)           d = GG(d, a, b, c, fillTab[offset + 14], S22, 0xc33707d6)           c = GG(c, d, a, b, fillTab[offset + 3], S23, 0xf4d50d87)           b = GG(b, c, d, a, fillTab[offset + 8], S24, 0x455a14ed)           a = GG(a, b, c, d, fillTab[offset + 13], S21, 0xa9e3e905)           d = GG(d, a, b, c, fillTab[offset + 2], S22, 0xfcefa3f8)           c = GG(c, d, a, b, fillTab[offset + 7], S23, 0x676f02d9)           b = GG(b, c, d, a, fillTab[offset + 12], S24, 0x8d2a4c8a)           a = HH(a, b, c, d, fillTab[offset + 5], S31, 0xfffa3942)           d = HH(d, a, b, c, fillTab[offset + 8], S32, 0x8771f681)           c = HH(c, d, a, b, fillTab[offset + 11], S33, 0x6d9d6122)           b = HH(b, c, d, a, fillTab[offset + 14], S34, 0xfde5380c)           a = HH(a, b, c, d, fillTab[offset + 1], S31, 0xa4beea44)           d = HH(d, a, b, c, fillTab[offset + 4], S32, 0x4bdecfa9)           c = HH(c, d, a, b, fillTab[offset + 7], S33, 0xf6bb4b60)           b = HH(b, c, d, a, fillTab[offset + 10], S34, 0xbebfbc70)           a = HH(a, b, c, d, fillTab[offset + 13], S31, 0x289b7ec6)           d = HH(d, a, b, c, fillTab[offset + 0], S32, 0xeaa127fa)           c = HH(c, d, a, b, fillTab[offset + 3], S33, 0xd4ef3085)           b = HH(b, c, d, a, fillTab[offset + 6], S34, 0x4881d05)           a = HH(a, b, c, d, fillTab[offset + 9], S31, 0xd9d4d039)           d = HH(d, a, b, c, fillTab[offset + 12], S32, 0xe6db99e5)           c = HH(c, d, a, b, fillTab[offset + 15], S33, 0x1fa27cf8)           b = HH(b, c, d, a, fillTab[offset + 2], S34, 0xc4ac5665)           a = II(a, b, c, d, fillTab[offset + 0], S41, 0xf4292244)           d = II(d, a, b, c, fillTab[offset + 7], S42, 0x432aff97)           c = II(c, d, a, b, fillTab[offset + 14], S43, 0xab9423a7)           b = II(b, c, d, a, fillTab[offset + 5], S44, 0xfc93a039)           a = II(a, b, c, d, fillTab[offset + 12], S41, 0x655b59c3)           d = II(d, a, b, c, fillTab[offset + 3], S42, 0x8f0ccc92)           c = II(c, d, a, b, fillTab[offset + 10], S43, 0xffeff47d)           b = II(b, c, d, a, fillTab[offset + 1], S44, 0x85845dd1)           a = II(a, b, c, d, fillTab[offset + 8], S41, 0x6fa87e4f)           d = II(d, a, b, c, fillTab[offset + 15], S42, 0xfe2ce6e0)           c = II(c, d, a, b, fillTab[offset + 6], S43, 0xa3014314)           b = II(b, c, d, a, fillTab[offset + 13], S44, 0x4e0811a1)           a = II(a, b, c, d, fillTab[offset + 4], S41, 0xf7537e82)           d = II(d, a, b, c, fillTab[offset + 11], S42, 0xbd3af235)           c = II(c, d, a, b, fillTab[offset + 2], S43, 0x2ad7d2bb)           b = II(b, c, d, a, fillTab[offset + 9], S44, 0xeb86d391)           result[1] = result[1] + a           result[2] = result[2] + b           result[3] = result[3] + c           result[4] = result[4] + d           result[1] = result[1] & 0xffffffff           result[2] = result[2] & 0xffffffff           result[3] = result[3] & 0xffffffff           result[4] = result[4] & 0xffffffff         end         local retStr = ''         for i = 1,4 do           for _ = 1,4 do             local temp = result[i] & 0x0F             local str = HexTable[temp + 1]             result[i] = result[i] >> 4             temp = result[i] & 0x0F             retStr = retStr .. HexTable[temp + 1] .. str             result[i] = result[i] >> 4           end         end         return string.lower(retStr)       end       return getmd5(code)     end
        --md5加密 md5("加密内容")
        
        ZZRc4 = {} 
        ZZMathBit = {} 
        function ZZMathBit.__xorBit(left, right)       return (left + right) == 1 and 1 or 0 end function ZZMathBit.__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 ZZMathBit.xorOp(left, right)       return ZZMathBit.__base(left, right, ZZMathBit.__xorBit) end function RC4(text,key,kasi)
        if kasi==false then      str = text      str=str:gsub("[%s%p]",""):upper()       local index=1       local ret=""       for index=1,str:len(),2 do         ret=ret..string.char(tonumber(str:sub(index,index+1),16))       end       text=ret     end          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(ZZMathBit.xorOp(schedule[i], c))           end           return table.concat(res)       end          local textLen = string.len(text)       local schedule = KSA(key)       local k = PRGA(schedule, textLen)          str=output(k, text) if kasi==true then       str = tostring(str)       local index=1       local ret=""       for index=1,str:len() do         ret=ret..string.format("%02X",str:sub(index):byte())       end       return string.lower(ret) else     return str end end 
        --极简云RC42加密和解密配置     RC4("加密内容","密码",false=解密_true=加密)
        
        function ultra(get,post)    local c=gg.makeRequest(get,nil,post).content     return c  end 
        --请求
        
        ---[=[上面不要乱动]=]-------------------------------------------------------------------------------------------------------------------
        
        
        ---[=[下方为后台配置]=]-------------------------------------------------------------------------------------------------------------------
        
        xxxxxxx="https://cute521.cn"
        local xxxxxxx_Kami=xxxxxxx.."/api.php?api=kmlogon"
        --接口名称[卡密登录]
        
        local xxxxxxx_jieba=xxxxxxx.."/api.php?api=kmunmachine"
        --接口名称[卡密解绑]
        
        local xxxxxxx_to_configure=xxxxxxx.."/api.php?api=ini"
        --接口名称[应用配置]
        
        local xxxxxxx_Notice=xxxxxxx.."/api.php?api=notice"
        --接口名称[应用公告]
        
        local xxxxxxx_RC4=true
        --是否 RC4 加密[false=关 true=开] 
        --选择 RC4加密-2 否则会乱码 
        --打开 签名放DATA里:打开
        
        
        local xxxxxxx_APPID="11396"
        --APPID
        
        local xxxxxxx_APPKEY="xdbLjFo4Jj4j7p2P"
        --APPKEY
        
        local xxxxxxx_RC4_key="SxktREJQQEA11396"
        --是否 RC4 加密[key 密钥]
        
        
        local xxxbanb="1.0"
        --1.0
        
        local xxxQQ="1"
        --作者QQ
        
        
        if xxxxxxx_APPID=="" or xxxxxxx_RC4_key=="" or xxxxxxx_APPKEY=="" then
        gg.alert("关键东西没填，运行啥啊？")--对话框
        os.exit() 
        end
        
        
        FILES_DIR="/sdcard/Android/"
        --卡密 设备码 路径
        
        
        ---[=[   ↑配置  ]=]-------------------------------------------------------------------------------------------------------------------
        
        Notice=ultra(xxxxxxx_Notice.."&app=".. xxxxxxx_APPID,"")
        
        No=Notice:match('"code":(.-),')
        if  No ~= nil then 
        No=Notice:match('"msg":"(.-)",')
        if No==nil then
        xxxxxxx_RC4=false--判定是否关闭
        else
        gg.alert("公告接口："..No)--对话框
        os.exit() 
        end
        end
        
        if  xxxxxxx_RC4 == true then 
        Notice=RC4(Notice,xxxxxxx_RC4_key,false) 
        end
        
        
        Notice=Notice:match('"app_gg":"(.-)"},')--获取公告
        if Notice==nil then
        No=Notice:match('"code":(.-),')
        if  No ~= nil then 
        No=Notice:match('"msg":"(.-)",')
        if No==nil then
        xxxxxxx_RC4=false--判定是否关闭
        else
        gg.alert("公告接口："..No)--对话框
        os.exit() 
        end
        end
        
        else
        if Notice~="" then
        gg.alert(Notice,"确定")--对话框
        end
        end
        
        ---[=[上面是公告]=]-------------------------------------------------------------------------------------------------------------------
        
        xxcisu="无法获取"
        gongxing=ultra(xxxxxxx_to_configure.."&app=".. xxxxxxx_APPID,"")
        
        
        No=gongxing:match('"code":(.-),')
        if  No ~= nil then 
        No=gongxing:match('"msg":"(.-)",')
        if No==nil then
        xxxxxxx_RC4=false--判定是否关闭
        else
        gg.alert("应用配置接口："..No)--对话框
        os.exit() 
        end
        end
        
        if  xxxxxxx_RC4 == true then 
        gongxing=RC4(gongxing,xxxxxxx_RC4_key,false) 
        end
        
        xxxxbanben=gongxing:match('"version":"(.-)",')--获取版本号
        xxxxgxnr=gongxing:match('app_update_show":"(.-)",')--更新内容
        xxxxlianjie=gongxing:match('app_update_url":"(.-)","app_update_must')--更新链接
        xxcisu=gongxing:match('"api_total":"(.-)"}')--启动次数
        
        if gongxing==nil then
        
        No=gongxing:match('"code":(.-),')
        if  No ~= nil then 
        No=gongxing:match('"msg":"(.-)",')
        if No==nil then
        xxxxxxx_RC4=false--判定是否关闭
        else
        gg.alert("应用配置接口："..No)--对话框
        os.exit() 
        end
        end
        
        else
        
        if xxxxbanben==xxxbanb then
        gg.toast("最新版本")--提示 
        else
        if xxxxlianjie=="未提交URL" then
        print("\n没有要更新的链接\n请联系作者:"..xxxQQ)
        os.exit() 
        end
        bhh=gg.alert("发现新版本，请更新内容 ","开始下载","浏览器更新")--对话框
        
        if xxxxbanben == xxxbanb then
        
        xxxxlianjie=gg.makeRequest(xxxxlianjie).content
        io.open("/storage/emulated/0/最新版本.lua","w+"):write(xxxxlianjie)--写
        gg.setVisible(true)
        print("---[=[ 下载成功]=]---------------\n\n[新版本]:\n"..xxxxbanben.."\n\n[更新内容]:\n"..xxxxgxnr.."\n\n[新脚本路径]:\n/storage/emulated/0/最新版本.lua\n")--打印
         elseif bhh == 2 then
        gg.setVisible(true)
        print("\n[新版本]:\n"..xxxxbanben.."\n\n[更新内容]:\n"..xxxxgxnr.."\n\n[更新链接]:\n"..xxxxlianjie)--打印 end
        os.exit() 
        end
        end
        
        end
        ---[=[获取更新↑]=]-------------------------------------------------------------------------------------------------------------------
        
        
        function yanzzzzz(km,sbm)
        
        key=md5("kami="..km.."&markcode="..sbm.."&t="..os.time().."&".. xxxxxxx_APPKEY)
        --计算签名
        
        Random=md5(RC4(os.time().."极简云",xxxxxxx_RC4_key,true)..xxxxxxx_APPKEY..sbm)
        --随机[用来计算是否相等]
        
        bops="kami="..km.."&markcode="..sbm.."&t="..os.time().."&sign="..key
        --需要请求的数据
        
        if  xxxxxxx_RC4 == true then
        bops="data="..RC4(bops,xxxxxxx_RC4_key,true)
        end-- 把请求数据用RC4加密
        
        HUT=ultra(xxxxxxx_Kami.."&app=".. xxxxxxx_APPID,bops.."&value="..Random)
        --请求数据
        
        
        if HUT~=nil then
        if  xxxxxxx_RC4 == true then
        HUT=RC4(HUT,xxxxxxx_RC4_key,false) 
        end-- 把返回的数据用RC4解密
        
        qued=HUT:match('code":(.-),')--获取编号 200是成功
        vip=HUT:match('vip":"(.-)"},')--获取 卡密时间
        yanzen=HUT:match('check":"(.-)"')--获取随机值
        tinme=HUT:match('time":(.-),')--获取时间搓
        fanhui=HUT:match('msg":"(.-)",')--获取错误
        
        if qued~="200" then
        gg.alert(fanhui)--返回错误
        io.open(FILES_DIR.."/km","w"):write("")--写
        else
        
        if (tinme-os.time())>10 or (tinme-os.time())<-10 then
        gg.setVisible(false)
        gg.toast("\n(▔_▔) 数据超时！")
        else--时间10小于就跳转
        
        if yanzen~=md5(tinme..xxxxxxx_APPKEY..Random) then
        gg.setVisible(false)
        gg.toast("\n️(▔_▔) 请不要修改数据！")
        else--网络数据是否修改
        
        gg.setVisible(false)
        vip1=os.date("%Y".."年".."%m".."月".."%d".."日".."\r".."%H".."时".."%M".."分".."%S".."秒\n",vip)
        io.open(FILES_DIR.."/km","w"):write(km)--写
        kll=gg.alert("\n登入成功:\n\n[到期时间]\n"..vip1,"确定","返回")--提示--获取到期时间
        if kll==2 then
        io.open(FILES_DIR.."/lko","w"):write("false")--写
        oqvqo(xxxxxxx)
        end
        
        
        ab22a390752645680f3da8a1jf1bfbf87e(vip)--
        --登入成功后的动作------------------------------------------------------------------------------------------------------------------
        
        
        end
        end
        end
        else
        gg.setVisible(false)
        gg.toast("\n️(▔_▔) 请检查网络！")
        end
        
        end
        
        
        ---[=[  卡密登入↑ ]=]-------------------------------------------------------------------------------------------------------------------
        
        function jiebang(km,sbm)
        gg.setVisible(false)
        key=md5("kami="..km.."&markcode="..sbm.."&t="..os.time().."&".. xxxxxxx_APPKEY)
        
        bops="kami="..km.."&markcode="..sbm.."&t="..os.time().."&sign="..key
        
        if  xxxxxxx_RC4 == true then
        bops= "data="..RC4(bops,xxxxxxx_RC4_key,true) 
        end
        
        
        HUT=ultra(xxxxxxx_jieba.."&app=".. xxxxxxx_APPID,bops)
        
        if  xxxxxxx_RC4 == true then
        HUT=RC4(HUT,xxxxxxx_RC4_key,false) 
        end-- xxxxxxx_Base64
        
        qued=HUT:match('code":(.-),')
        fanhui=HUT:match('msg":"(.-)",')
        yanzen=HUT:match('check":"(.-)"')
        tinme=HUT:match('time":(.-),')
        gg.toast(fanhui)
        
        end
        
        ---[=[  解绑卡密↑ ]=]-------------------------------------------------------------------------------------------------------------------
        
        
        
        rq=os.date("%Y".."年".."%m".."月".."%d".."日".." ".."%H".."时".."%M".."分".."%S".."秒")
        local a={}
        fien={io.open(FILES_DIR.."/km","r"),io.open(FILES_DIR.."/miux","r"),io.open(FILES_DIR.."/lko","r")}
        
        if fien[1]==nil then
        io.open(FILES_DIR.."/km","w"):write("")--写
        a[1]=io.open(FILES_DIR.."/km","r"):read("*a")--读
        else
        a[1]=io.open(FILES_DIR.."/km","r"):read("*a")--读
        end--fien[1]--卡密
        
        if fien[2]==nil then
        io.open(FILES_DIR.."/miux","w"):write(md5(rq))--写
        a[2]=io.open(FILES_DIR.."/miux","r"):read("*a")--读
        else
        a[2]=io.open(FILES_DIR.."/miux","r"):read("*a")--读
        end--fien[2]--机器码
        
        fien2=io.open(FILES_DIR.."/miux","r"):read("*a")--读
        if fien2=="" then
        io.open(FILES_DIR.."/miux","w"):write(md5(rq))--写
        fien2=io.open(FILES_DIR.."/miux","r"):read("*a")--读
        a[2]=fien2
        end
        
        if fien[3]==nil then
        io.open(FILES_DIR.."/lko","w"):write("false")--写
        a[3]=io.open(FILES_DIR.."/lko","r"):read("*a")--读
        else
        a[3]=io.open(FILES_DIR.."/lko","r"):read("*a")--读
        end--fien[2]--机器码
        
        fien3=io.open(FILES_DIR.."/lko","r"):read("*a")--读
        if fien3=="" then
        io.open(FILES_DIR.."/lko","w"):write("false")--写
        fien3=io.open(FILES_DIR.."/lko","r"):read("*a")--读
        a[3]=fien3
        end
        
        sbm=a[2]--设备码
        km=a[1]--卡密
        
        --判定自动登入
        if a[3]=="true" then
        a[3]=true
        elseif a[3]=="false" then
        a[3]=false
        end
        
        
        
        if a[3]==true then
        yanzzzzz(a[1],sbm)
        end
        
        
        hak=gg.prompt({
        '[输入: 1 开始解绑卡密]\n[输入: 2 邮箱反馈]\n现在时间:'..rq.."\n[本脚本使用："..xxcisu.." 次]\n请输入卡密：",
        "[自动登入]"
        },{
        km,
        a[3]
        },{
        'text',--文字
        'checkbox',--多选
        })--文本功能
        
        
        
        if hak==nil then
        gg.setVisible(false)
        gg.toast("取消……")--提示
        elseif hak[1]=="1" then---[=[ ↓解绑  ]=]-------------------------------------------------------------------------------------------------------------------
        
        gg.toast("开始解绑卡密……")--提示
        hak2=gg.prompt({
        '现在时间:'..rq.."\n请输入解绑卡密："
        },{
        },{
        'text',--文字
        })--文本功能
        
        if hak2==nil then
        gg.setVisible(false)
        gg.toast("取消……")--提示
        else
        jiebang(hak2[1],sbm)
        ---[=[  ↑ 输入卡密跳转解绑卡密  ]=]-------------------------------------------------------------------------------------------------------------------
        end
        
        elseif hak[1]=="2" then ---[=[  ↓ 邮箱反馈 ]=]-------------------------------------------------------------------------------------------------------------------
        if xxxQQ=="" then
        gg.alert("作者没有填写QQ")
        else
        
        b=gg.prompt({
        "联系方式(QQ或网名,手机号等)",
        "反馈内容",
        "取消就是[返回主页面]",
        },{
        "",
        "",
        true
        },{
        'text',
        'text',
        'checkbox',
        })
        
        if b ==nil then
        gg.setVisible(false)
        gg.toast("取消……")--提示
        else
        
        
        if b[1] ~= "" then
        if b[2] ~= "" then
        bh="&name="..b[1].."&certno="..b[2]
        b=gg.makeRequest(xxxxxxx.."/api/mail/api.php?address="..xxxQQ.."@qq.com"..bh)
        if b.code=="200" then
        gg.alert("反馈成功[谢谢你的支持]")
        else
        gg.alert("反馈失败")
        end
        else
        gg.alert("空内容")
        end
        else
        gg.alert("空联系方式")
        end
        end
        end
        ---[=[ ↘你们可以自己加购卡 加群什么的  ]=]-------------------------------------------------------------------------------------------------------------------
        --elseif hak[1]=="3" then 输入3 干啥干啥
        
        
        
        
        
        else---[=[  ↓卡密登入  ]=]-------------------------------------------------------------------------------------------------------------------
        
        if hak[2]==true then
        io.open(FILES_DIR.."/lko","w"):write("true")--写
        elseif hak[2]==false then
        io.open(FILES_DIR.."/lko","w"):write("false")--写
        end
        
        yanzzzzz(hak[1],sbm)
        ---[=[  ↑ 输入卡密跳转登入卡密  ]=]-------------------------------------------------------------------------------------------------------------------
        end
        