_o=_ENV fuhao= '"' local function json2true(str,from,to) return true, from+3 end local function json2false(str,from,to) return false, from+4 end local function json2null(str, from, to) return nil, from+3 end local function json2nan(str, from, to) return nul, from+2 end local numberchars = {['-'] = true,['+'] = true,['.'] = true,['0'] = true,['1'] = true,['2'] = true,['3'] = true,['4'] = true,['5'] = true,['6'] = true,['7'] = true,['8'] = true,['9'] = true} local function json2number(str,from,to) local i = from+1 while(i<=to) do local char = string.sub(str, i, i) if not numberchars[char] then break end i = i + 1 end local num = tonumber(string.sub(str, from, i-1)) if not num then error(_format('json格式错误，不正确的数字, 错误位置:{from}', from)) end return num, i-1 end local function json2string(str,from,to) local ignor = false for i = from+1, to do local char = string.sub(str, i, i) if not ignor then if char ==  fuhao  then return string.sub(str, from+1, i-1), i elseif char == '\\' then ignor = true end else ignor = false end end error(_format('json格式错误，字符串没有找到结尾, 错误位置:{from}', from)) end local function json2array(str,from,to)    local result = {}    from = from or 1    local pos = from+1    local to = to or string.len(str)    while(pos<=to) do        local char = string.sub(str, pos, pos)        if char ==  fuhao  then            result[#result+1], pos = json2string(str,pos,to)        elseif char == '[' then            result[#result+1], pos = json2array(str,pos,to)        elseif char == '{' then            result[#result+1], pos = json2table(str,pos,to)        elseif char == ']' then            return result, pos        elseif (char=='f' or char=='F') then            result[#result+1], pos = json2false(str,pos,to)        elseif (char=='t' or char=='T') then            result[#result+1], pos = json2true(str,pos,to)        elseif (char=='n') then            result[#result+1], pos = json2null(str,pos,to)        elseif (char=='N') then            result[#result+1], pos = json2nan(str,pos,to)        elseif numberchars[char] then            result[#result+1], pos = json2number(str,pos,to)        end        pos = pos + 1    end    error(_format('json格式错误，表没有找到结尾, 错误位置:{from}', from)) end function _G.json2table(str,from,to)    local result = {}    from = from or 1    local pos = from+1    local to = to or string.len(str)    local key    while(pos<=to) do        local char = string.sub(str, pos, pos)        if char ==  fuhao  then            if not key then                key, pos = json2string(str,pos,to)            else                result[key], pos = json2string(str,pos,to)                key = nil            end        elseif char == '[' then            if not key then                key, pos = json2array(str,pos,to)            else                result[key], pos = json2array(str,pos,to)                key = nil            end        elseif char == '{' then            if not key then                key, pos = json2table(str,pos,to)            else                result[key], pos = json2table(str,pos,to)                key = nil            end        elseif char == '}' then            return result, pos        elseif (char=='f' or char=='F') then            result[key], pos = json2false(str,pos,to)            key = nil        elseif (char=='t' or char=='T') then            result[key], pos = json2true(str,pos,to)            key = nil        elseif (char=='n') then            result[key], pos = json2null(str,pos,to)            key = nil        elseif (char=='N') then            result[key], pos = json2nan(str,pos,to)            key = nil        elseif numberchars[char] then            if not key then                key, pos = json2number(str,pos,to)            else                result[key], pos = json2number(str,pos,to)                key = nil            end        end        pos = pos + 1    end    error(_format('格式错误，表没有找到结尾, 错误位置:{from}', from)) end local jsonfuncs={[ fuhao ]=json2string,['[']=json2array,['{']=json2table,['f']=json2false,['F']=json2false,['t']=json2true,['T']=json2true} function a3b21805(str) if str==nil then gg.alert('错误json') else local char = string.sub(str, 1, 1) local func=jsonfuncs[char] if func then return func(str, 1, string.len(str)) end if numberchars[char] then return json2number(str, 1, string.len(str)) end end end local __index local LYF_DefEnv1 = {[""]=""} local LYF_DefEnv2 = {["输出你妈"]="输出你妈"} setmetatable(LYF_DefEnv1, {__index = _ENV}) _ENV=LYF_DefEnv1 _G=LYF_DefEnv2

function dc4814(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 getdc4814(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 getdc4814(code) end
--dc4814 

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 dc4814fb(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加密和解密配置     dc4814fb("加密内容","密码",false=解密_true=加密)


local dc481='12323'
--APPID
local b78ca6ed562261a8='OD66PcAiU8d88CZR'
--APPKEY
local c26ea7c42cd93848='GMCNiRxHQpx12323'
--是否 RC4 加密[key 密钥]
local xxxbanb='1.0'
--版本号

---------------------------------------------
local xxxxxxx='https://cute521.cn/'
--官网
local xxxxxxx_Kami=xxxxxxx..'/api.php?api=kmlogon&app='..dc481
--接口名称[卡密登录]
local xxxxxxx_jieba=xxxxxxx..'/api.php?api=kmunmachine&app='..dc481
--接口名称[卡密解绑]
local xxxxxxx_to_configure=xxxxxxx..'/api.php?api=ini&app='..dc481
--接口名称[应用配置]
local xxxxxxx_Notice=xxxxxxx..'/api.php?api=notice&app='..dc481
--接口名称[应用公告]


local AMI_km='/sdcard/km'
--卡密 路径
I_km=''

local AMI_miei='/sdcard/miei'
--设备码 路径
I_miei=''

local AMI_e='/sdcard/e'
--自动登入 路径
I_e=''


local RC4kk='开'

if dc481=='' or b78ca6ed562261a8=='' then
  gg.alert('对接数据,空...')--对话框
  os.exit()
end


Notice=gg.makeRequest(xxxxxxx_Notice,nil,'')["content"]


if RC4kk == '开' then
  Notice=dc4814fb(Notice,c26ea7c42cd93848,false)
end

if a3b21805(Notice)== nil then
gg.alert('JSON: 数据错误')--对话框
os.exit()
end

if a3b21805(Notice).code==200 then
if a3b21805(Notice).msg.app_gg~='' then
gg.alert('公告: '..a3b21805(Notice).msg.app_gg)
end
else
gg.alert('Notice！: '..a3b21805(Notice).msg)
end


file=gg.makeRequest(xxxxxxx_to_configure,nil,'')["content"]
if RC4kk == '开' then
  file=dc4814fb(file,c26ea7c42cd93848,false)
end

if a3b21805(file)== nil then
gg.alert('JSON: 数据错误')--对话框
os.exit()
end

api_total=a3b21805(file).msg.api_total
--调用几次接口[ 判断使用人数 ]

app_update_must=a3b21805(file).msg.app_update_must
--是否强行更新 y是 n否

app_update_show=a3b21805(file).msg.app_update_show
--更新内容

app_update_url=a3b21805(file).msg.app_update_url
--更新地址

version=a3b21805(file).msg.version
--版本号


if a3b21805(file).code ~= 200 then
gg.alert('file :'..a3b21805(file).msg)--对话框
os.exit()
end

if version ~= xxxbanb then
gg.alert('检查到新版本！')--对话框

gg.setVisible(false)

gg.alert("更新内容："..app_update_show,"复制链接")--对话框

gg.copyText(app_update_url)

if app_update_show== 'y' then
os.exit()
end


end




function main_A()
if io.open(AMI_km,'r')== nil then
io.open(AMI_km,'w+'):write('')--写
l_km=''
io.close()
else
l_km=io.open(AMI_km,'r'):read('*a')--读
io.close() 
end


if io.open(AMI_miei,'r')== nil then
io.open(AMI_miei,'w+'):write(string.sub(dc4814(os.date()..c26ea7c42cd93848),16))--写
l_miei=string.sub(dc4814(os.date()..c26ea7c42cd93848),16)
io.close()
else
if io.open(AMI_miei,'r'):read('*a')== '' then
io.open(AMI_miei,'w+'):write(string.sub(dc4814(os.date()..c26ea7c42cd93848),16))--写
l_miei=string.sub(dc4814(os.date()..c26ea7c42cd93848),16)
io.close()
else
l_miei=io.open(AMI_miei,'r'):read('*a')--读
io.close()
end
end


if io.open(AMI_e,'r')== nil then
io.open(AMI_e,'w+'):write("0")--写
l_e="0"
io.close()
else
l_e=io.open(AMI_e,'r'):read('*a')--读
io.close() 
end


if l_e == "0" then
l_e=false
else
l_e=true
end



function jiebang(km,miei)


key=dc4814("kami="..km.."&markcode="..miei.."&t="..os.time().."&".. b78ca6ed562261a8)
--签名
bops="kami="..km.."&markcode="..miei.."&t="..os.time().."&sign="..key

if  RC4kk == "开" then
bops= "data="..dc4814fb(bops,c26ea7c42cd93848,true) 
end

HUT=gg.makeRequest(xxxxxxx_jieba,nil,bops)["content"]
--请求数据

if RC4kk == '开' then
  HUT=dc4814fb(HUT,c26ea7c42cd93848,false)
end


if a3b21805(HUT)== nil then
gg.alert('JSON: 数据错误')--对话框
os.exit()
end

if a3b21805(HUT).code== 200 then
gg.alert(a3b21805(HUT).msg)
else
gg.alert(a3b21805(HUT).msg)--对话框
end

end



function dankm(km,miei)---[=[   ]=]-------------------------------------------------------------------------------------------------------------------

Random=dc4814(miei..os.time()*1000+611*os.time()-999999)..math.random(521)

key=dc4814("kami="..km.."&markcode="..miei.."&t="..os.time().."&".. b78ca6ed562261a8)
--签名
bops="kami="..km.."&markcode="..miei.."&t="..os.time().."&sign="..key
--合成发送数据
if  RC4kk == "开" then
bops= "data="..dc4814fb(bops,c26ea7c42cd93848,true) 
end

HUT=gg.makeRequest(xxxxxxx_Kami,nil,bops.."&value="..Random)["content"]
--请求数据

if RC4kk == '开' then
  HUT=dc4814fb(HUT,c26ea7c42cd93848,false)
end

if a3b21805(HUT)== nil then
gg.alert('JSON: 数据错误')--对话框
os.exit()
end

if a3b21805(HUT).msg.kami == nil then
gg.alert(a3b21805(HUT).msg)--对话框
io.open(AMI_e,'w+'):write("0")--写
else
if a3b21805(HUT).msg.vip == nil then
gg.alert(a3b21805(HUT).msg)--对话框
io.open(AMI_e,'w+'):write("0")--写
else
if a3b21805(HUT).check ~= dc4814(a3b21805(HUT).time..b78ca6ed562261a8..Random) then
gg.alert("脚本：检测到你有非法操作")--对话框
io.open(AMI_e,'w+'):write("0")--写
os.exit()
end

if a3b21805(HUT).time-os.time()>30 or a3b21805(HUT).time-os.time()<-30 then
gg.alert("脚本：数据过期")--对话框
io.open(AMI_e,'w+'):write("0")--写
os.exit()
end
if a3b21805(HUT).code== 200 then
io.open(AMI_km,'w+'):write(km)--写
io.open(AMI_e,'w+'):write("1")--写
TT=gg.alert("到期时间:-----------\n" ..os.date("%Y".."年".."%m".."月".."%d".."日  %H".."时".."%M".."分".."%S".."秒",a3b21805(HUT).msg.vip).."\n使用卡密: "..a3b21805(HUT).msg.kami,"确定","返回")--对话框
if TT== 2 then
io.open(AMI_e,'w+'):write("0")--写
main_A()
else
_ENV=_o
---------------------------------------------









local app = {}
function Assert(data)   --判断
if data == nil or data == "" or data == "nil" then
return false
else
return true
end
end
function mearrass(memory, array)   --判断
if Assert(memory) and Assert(array) then
return true
else
return false
end
end
function typetab(array, type)   --把所有类型组成一个数组防不写类型
local datatype = {}
for i = 1, #array do
if Assert(array[i].type) then
table.insert(datatype, i, array[i].type)
else
if Assert(type) then
table.insert(datatype, i, type)
else
return false
end
end
end
return true, datatype
end
function app.memorysearch(memory, array, type)   --内存搜索，参数为(内存， 特征码数组， 类型(类型可空))
gg.setVisible(false)
local isok = mearrass(memory, array)
if isok then
local isok, datatype = typetab(array, type)
if isok then
if Assert(array[1].hv) then   --判断主特征码是否有hv，有即范围搜索
gg.clearResults()
gg.setRanges(memory)
gg.searchNumber(array[1].lv .. "~" .. array[1].hv, datatype[1])   --有hv进行范围搜索
else
gg.clearResults()
gg.setRanges(memory)
gg.searchNumber(array[1].lv, datatype[1])   --普通搜索
end
if gg.getResultCount() == 0 then   --判断搜索到值没
return false   --没搜到值返回false
else
local tab = {}
local data = gg.getResults(gg.getResultCount())   --保存搜索到的数据到data
gg.clearResults()
for i = 1, #data do
data[i].isok = true   --把搜索到的值，全部设置为true
end
for i = 2, #array do
local t = {}
local offset = array[i].offset
for x = 1, #data do   --遍历内存
t[#t + 1] = {}
t[#t].address = data[x].address + offset
t[#t].flags = datatype[i]
end
local t = gg.getValues(t)
for z = 1, #t do
if Assert(array[i].hv) then   --判断副特征码是否有hv参数
if tonumber(t[z].value) < tonumber(array[i].lv) or tonumber(t[z].value) > tonumber(array[i].hv) then
--↑↑↑进行范围判断
data[z].isok = false   --不符合条件的设置为false
end
else
if tostring(t[z].value) ~= tostring(array[i].lv) then   --普通判断(没有hv参数)
data[z].isok = false   --不符合设置为false
end
end
end
end
for i = 1, #data do   --重新遍历数组
if data[i].isok then   --判断是否为true(符合条件的)
tab[#tab + 1] = data[i].address   --把符合条件的地址写入数组
end
end
if #tab > 0 then   --判断地址数组是否大于0，大于0就是搜到了符合条件的值，反之没搜到
return true, tab   --搜到返回true和地址数组
else
return false   --没搜到返回false
end
end
else
print("type参数错误")   --类型错误
gg.toast("type参数错误")
os.exit()
end
else
print("memory or array参数错误")   --内存或类型错误
gg.toast("memory or array参数错误")
os.exit()
end
end
function app.memoryread(addr, type)   --读内存，参数为(地址，类型)
local t = {}
t[1] = {}
t[1].address = addr
t[1].flags = type
if #t > 0 then
return true, gg.getValues(t)[1].value   --读到返回true和读到得值
else
return false   --反之返回false
end
end
function app.memorywrite(addr, type, value, freeze)   --写内存，参数为(地址，类型，写入得值，是否冻结(可空))
local t = {}
t[1] = {}
t[1].address = addr
t[1].flags = type
t[1].value = value
if #t > 0 then
if Assert(freeze) then   --判断是否有冻结参数
t[1].freeze = freeze
--gg.setValues(t)   --这行自行选择，如果有这行，false会修改并保存到列表，如果没这行，false只会保存到列表而不会修改
return gg.addListItems(t)   --成功返回true
else
return gg.setValues(t)   --成功返回true
end
else
return false   --失败
end
end






--以上为核心调用
function Main()
  SN = gg.multiChoice({
  "开启延长线",
  "退出脚本"
 }, nil, "Venom毒液")
  if SN == nil then
  else
  if SN[1] == true then
   a()
  end
  
  if SN[2] == true then
   Exit()
  end
end
  XGCK = -1
end



function a()
local memory = 32
local array = {
{["lv"] = 1.75, ["type"] = 16},
{["lv"] = 1.875, ["offset"] = 0x60, ["type"] = 16},
{["lv"] = 1.875, ["offset"] = 0x68, ["type"] = 16},
{["lv"] = 29, ["hv"] = 80, ["offset"] = -0x24, ["type"] = 64},
{["lv"] = 10, ["hv"] = 30, ["offset"] = -0x2C, ["type"] = 64},
{["lv"] = 3, ["hv"] = 3.4, ["offset"] = -0x20, ["type"] = 16},
}
local isok, data = app.memorysearch(memory, array)
if isok then
for i = 1, #data do
app.memorywrite(data[i] + -0x20, 16, 4.9)
end
gg.toast("延长线开启成功")
else
gg.toast("延长线开启失败")
end
end




function Exit()
print("Venom毒液")
os.exit()
end
cs = "1609760187"



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






---------------------------------------------
end
else
gg.alert(a3b21805(HUT).msg)--对话框
io.open(AMI_e,'w+'):write("0")--写
end
end
end
end




function jko()

hak=gg.prompt({
'全网使用次数：'..api_total..'\n输入[  1  ]解绑卡密\n在下方输入你的卡密',
'是否自动登入',
},{
l_km,
l_e
},{
'text',--文字
'checkbox',--多选
})--文本功能



if hak==nil then
XGCK=0
else

if hak[2]== true then
io.open(AMI_e,'w+'):write("1")--写
io.close() 
else
io.open(AMI_e,'w+'):write("0")--写
io.close() 
end


if hak[1] == "" then
gg.alert("卡密不能空！")--对话框
else



if hak[1] == "1" then
hakk=gg.prompt({
'输入要解绑的卡密！',
},{l_km},{
'text',
})--文本功

if hakk==nil then
XGCK=0
else

if hakk[1] == "" then
gg.alert("卡密不能空！")--对话框
else

jiebang(hakk[1],l_miei)
end
end
else
dankm(hak[1],l_miei)
end

end
end

end












if l_e == false then
jko()
end

if l_e == true then
dankm(l_km,l_miei)
end
end

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

