-- 验证必要函数 local function o000f3410b0e67e4472c543d62055c022(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) local a = a + F(b,c,d) + x + ac local a = (((a & 0xffffffff) << s) | ((a & 0xffffffff) >> 32 - s)) + b return a & 0xffffffff end local function GG(a,b,c,d,x,s,ac) local a = a + G(b,c,d) + x + ac local a = (((a & 0xffffffff) << s) | ((a & 0xffffffff) >> 32 - s)) + b return a & 0xffffffff end local function HH(a,b,c,d,x,s,ac) local a = a + H(b,c,d) + x + ac local a = (((a & 0xffffffff) << s) | ((a & 0xffffffff) >> 32 - s)) + b return a & 0xffffffff end local function II(a,b,c,d,x,s,ac) local a = a + I(b,c,d) + x + ac local 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) local tLen = #rTab rTab[tLen + 1] = bitLen & 0xffffffff rTab[tLen + 2] = bitLen >> 32 return rTab end local function w1c79ab98e2eb08a803da78a56433afb9(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 local a = FF(a, b, c, d, fillTab[offset + 0], S11, 0xd76aa478) local d = FF(d, a, b, c, fillTab[offset + 1], S12, 0xe8c7b756) local c = FF(c, d, a, b, fillTab[offset + 2], S13, 0x242070db) local b = FF(b, c, d, a, fillTab[offset + 3], S14, 0xc1bdceee) local a = FF(a, b, c, d, fillTab[offset + 4], S11, 0xf57c0faf) local d = FF(d, a, b, c, fillTab[offset + 5], S12, 0x4787c62a) local c = FF(c, d, a, b, fillTab[offset + 6], S13, 0xa8304613) local b = FF(b, c, d, a, fillTab[offset + 7], S14, 0xfd469501) local a = FF(a, b, c, d, fillTab[offset + 8], S11, 0x698098d8) local d = FF(d, a, b, c, fillTab[offset + 9], S12, 0x8b44f7af) local c = FF(c, d, a, b, fillTab[offset + 10], S13, 0xffff5bb1) local b = FF(b, c, d, a, fillTab[offset + 11], S14, 0x895cd7be) local a = FF(a, b, c, d, fillTab[offset + 12], S11, 0x6b901122) local d = FF(d, a, b, c, fillTab[offset + 13], S12, 0xfd987193) local c = FF(c, d, a, b, fillTab[offset + 14], S13, 0xa679438e) local b = FF(b, c, d, a, fillTab[offset + 15], S14, 0x49b40821) local a = GG(a, b, c, d, fillTab[offset + 1], S21, 0xf61e2562) local d = GG(d, a, b, c, fillTab[offset + 6], S22, 0xc040b340) local c = GG(c, d, a, b, fillTab[offset + 11], S23, 0x265e5a51) local b = GG(b, c, d, a, fillTab[offset + 0], S24, 0xe9b6c7aa) local a = GG(a, b, c, d, fillTab[offset + 5], S21, 0xd62f105d) local d = GG(d, a, b, c, fillTab[offset + 10], S22, 0x2441453) local c = GG(c, d, a, b, fillTab[offset + 15], S23, 0xd8a1e681) local b = GG(b, c, d, a, fillTab[offset + 4], S24, 0xe7d3fbc8) local a = GG(a, b, c, d, fillTab[offset + 9], S21, 0x21e1cde6) local d = GG(d, a, b, c, fillTab[offset + 14], S22, 0xc33707d6) local c = GG(c, d, a, b, fillTab[offset + 3], S23, 0xf4d50d87) local b = GG(b, c, d, a, fillTab[offset + 8], S24, 0x455a14ed) local a = GG(a, b, c, d, fillTab[offset + 13], S21, 0xa9e3e905) local d = GG(d, a, b, c, fillTab[offset + 2], S22, 0xfcefa3f8) local c = GG(c, d, a, b, fillTab[offset + 7], S23, 0x676f02d9) local b = GG(b, c, d, a, fillTab[offset + 12], S24, 0x8d2a4c8a) local a = HH(a, b, c, d, fillTab[offset + 5], S31, 0xfffa3942) local d = HH(d, a, b, c, fillTab[offset + 8], S32, 0x8771f681) local c = HH(c, d, a, b, fillTab[offset + 11], S33, 0x6d9d6122) local b = HH(b, c, d, a, fillTab[offset + 14], S34, 0xfde5380c) local a = HH(a, b, c, d, fillTab[offset + 1], S31, 0xa4beea44) local d = HH(d, a, b, c, fillTab[offset + 4], S32, 0x4bdecfa9) local c = HH(c, d, a, b, fillTab[offset + 7], S33, 0xf6bb4b60) local b = HH(b, c, d, a, fillTab[offset + 10], S34, 0xbebfbc70) local a = HH(a, b, c, d, fillTab[offset + 13], S31, 0x289b7ec6) local d = HH(d, a, b, c, fillTab[offset + 0], S32, 0xeaa127fa) local c = HH(c, d, a, b, fillTab[offset + 3], S33, 0xd4ef3085) local b = HH(b, c, d, a, fillTab[offset + 6], S34, 0x4881d05) local a = HH(a, b, c, d, fillTab[offset + 9], S31, 0xd9d4d039) local d = HH(d, a, b, c, fillTab[offset + 12], S32, 0xe6db99e5) local c = HH(c, d, a, b, fillTab[offset + 15], S33, 0x1fa27cf8) local b = HH(b, c, d, a, fillTab[offset + 2], S34, 0xc4ac5665) local a = II(a, b, c, d, fillTab[offset + 0], S41, 0xf4292244) local d = II(d, a, b, c, fillTab[offset + 7], S42, 0x432aff97) local c = II(c, d, a, b, fillTab[offset + 14], S43, 0xab9423a7) local b = II(b, c, d, a, fillTab[offset + 5], S44, 0xfc93a039) local a = II(a, b, c, d, fillTab[offset + 12], S41, 0x655b59c3) local d = II(d, a, b, c, fillTab[offset + 3], S42, 0x8f0ccc92) local c = II(c, d, a, b, fillTab[offset + 10], S43, 0xffeff47d) local b = II(b, c, d, a, fillTab[offset + 1], S44, 0x85845dd1) local a = II(a, b, c, d, fillTab[offset + 8], S41, 0x6fa87e4f) local d = II(d, a, b, c, fillTab[offset + 15], S42, 0xfe2ce6e0) local c = II(c, d, a, b, fillTab[offset + 6], S43, 0xa3014314) local b = II(b, c, d, a, fillTab[offset + 13], S44, 0x4e0811a1) local a = II(a, b, c, d, fillTab[offset + 4], S41, 0xf7537e82) local d = II(d, a, b, c, fillTab[offset + 11], S42, 0xbd3af235) local c = II(c, d, a, b, fillTab[offset + 2], S43, 0x2ad7d2bb) local 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 local temp = result[i] & 0x0F retStr = retStr .. HexTable[temp + 1] .. str result[i] = result[i] >> 4 end end return string.lower(retStr) end return w1c79ab98e2eb08a803da78a56433afb9(code) end local function ZZMathBit_xorBit(left, right) return (left + right) == 1 and 1 or 0 end local 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 local function ZZMathBit_xorOp(left, right) return ZZMathBit_base(left, right, ZZMathBit_xorBit) 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 res = {} for i = 1, len do local c = string.byte(text, i, i) res[i] = string.char(ZZMathBit_xorOp(schedule[i], c)) end return table.concat(res) end local function w522d3f0fa7f9eeaa8aa17b966770ff19(text, key) local textLen = string.len(text) local schedule = KSA(key) local k = PRGA(schedule, textLen) return output(k, text) end local function qb724270a220194d3dcd3ad83aa1d18bc(str) local ret = "" for i = 1, #str do ret = ret .. string.format("%02X", str:sub(i, i):byte()) end return ret:lower() end local function l8782715598c58ae22dc87fb4eed1e566(hexStr) local cleanStr = hexStr:gsub("[%s%p]", ""):upper() local ret = "" for i = 1, #cleanStr, 2 do ret = ret .. string.char(tonumber(cleanStr:sub(i, i + 1), 16)) end return ret end local base64chars = { [0]='A', [1]='B', [2]='C', [3]='D', [4]='E', [5]='F', [6]='G', [7]='H', [8]='I', [9]='J', [10]='K', [11]='L', [12]='M', [13]='N', [14]='O', [15]='P', [16]='Q', [17]='R', [18]='S', [19]='T', [20]='U', [21]='V', [22]='W', [23]='X', [24]='Y', [25]='Z', [26]='a', [27]='b', [28]='c', [29]='d', [30]='e', [31]='f', [32]='g', [33]='h', [34]='i', [35]='j', [36]='k', [37]='l', [38]='m', [39]='n', [40]='o', [41]='p', [42]='q', [43]='r', [44]='s', [45]='t', [46]='u', [47]='v', [48]='w', [49]='x', [50]='y', [51]='z', [52]='0', [53]='1', [54]='2', [55]='3', [56]='4', [57]='5', [58]='6', [59]='7', [60]='8', [61]='9', [62]='-', [63]='_' } local function lfb6c4799e6b44eeabd8ead58c13db269(data) local bytes = {} local result = "" for i = 0, data:len()-1, 3 do for byte = 1, 3 do bytes[byte] = string.byte(data:sub(i+byte)) or 0 end result = string.format( '%s%s%s%s%s', result, base64chars[ math.floor(bytes[1]/4) ] or "=", base64chars[(bytes[1] % 4) * 16 + math.floor(bytes[2] / 16)] or "=", ( { [true] = base64chars[(bytes[2] % 16) * 4 + math.floor(bytes[3] / 64)] or "=", [false] = "=" } ) [(data:len() - i) > 1], ( { [true] = base64chars[(bytes[3] % 64)] or "=", [false] = "=" } ) [(data:len(data) - i) > 2] ) end return result end local base64bytes = { ['A']= 0, ['B'] =1, ['C'] =2, ['D'] =3, ['E'] =4, ['F'] =5, ['G'] =6, ['H'] =7, ['I']=8, ['J'] =9, ['K']=10, ['L']=11, ['M']=12, ['N']=13, ['O']=14, ['P']=15, ['Q']=16, ['R']=17, ['S']=18, ['T']=19, ['U']=20, ['V']=21, ['W']=22, ['X']=23, ['Y']=24, ['Z']=25, ['a']=26, ['b']=27, ['c']=28, ['d']=29, ['e']=30, ['f']=31, ['g']=32, ['h']=33, ['i']=34, ['j']=35, ['k']=36, ['l']=37, ['m']=38, ['n']=39, ['o']=40, ['p']=41, ['q']=42, ['r']=43, ['s']=44, ['t']=45, ['u']=46, ['v']=47, ['w']=48, ['x']=49, ['y']=50, ['z']=51, ['0']=52, ['1']=53, ['2']=54, ['3']=55, ['4']=56, ['5']=57, ['6']=58, ['7']=59, ['8']=60, ['9']=61, ['-']=62, ['_']=63, ['=']=nil } local function v118318eaf0d32e77e3ed2a003c8ea1af(data) local chars = {} local result = "" for i = 0, data:len()-1, 4 do for c = 1, 4 do chars[c] = base64bytes[ (string.sub(data,(i+c),(i+c)) or "=") ] end result = string.format( '%s%s%s%s', result, string.char(chars[1]*4 + math.floor(chars[2]/16)), ( { [true] = string.char(((chars[2] or 0) % 16)*16 + math.floor((chars[3] or 0)/4)), [false] = "" } ) [chars[3] ~= nil], ( { [true] = string.char(((chars[3] or 0)%4) * 64 + (chars[4] or 0)), [false] = ""} ) [chars[4] ~= nil] ) end return result end local function d3c5075d6ae32806143b15fd3db19b1f4(input,base64_chars) local output = "" local padding = "" local i = 1 local len = #input while i <= len do local b1 = string.byte(input, i) local b2 = string.byte(input, i + 1) local b3 = string.byte(input, i + 2) if not b2 then b2 = 0 padding = padding .. "=" end if not b3 then b3 = 0 padding = padding .. "=" end local combined = (b1 << 16) + (b2 << 8) + b3 output = output .. base64_chars:sub(((combined >> 18) & 0x3F) + 1, ((combined >> 18) & 0x3F) + 1) .. base64_chars:sub(((combined >> 12) & 0x3F) + 1, ((combined >> 12) & 0x3F) + 1) .. base64_chars:sub(((combined >> 6) & 0x3F) + 1, ((combined >> 6) & 0x3F) + 1) .. base64_chars:sub((combined & 0x3F) + 1, (combined & 0x3F) + 1) i = i + 3 end return output:sub(1, #output - #padding) .. padding end local function a760b36efa733850aa8b8a500179717d2(input,base64_chars) local base64_decode_chars = {} for i = 1, #base64_chars do base64_decode_chars[base64_chars:sub(i, i)] = i - 1 end local padding = 0 if input:sub(-1) == "=" then padding = padding + 1 end if input:sub(-2, -1) == "==" then padding = padding + 1 end local output = "" local i = 1 local len = #input while i <= len - padding do local c1 = base64_decode_chars[input:sub(i, i)] local c2 = base64_decode_chars[input:sub(i + 1, i + 1)] local c3 = base64_decode_chars[input:sub(i + 2, i + 2)] local c4 = base64_decode_chars[input:sub(i + 3, i + 3)] if not c3 then c3 = 0 end if not c4 then c4 = 0 end local combined = (c1 << 18) + (c2 << 12) + (c3 << 6) + c4 output = output .. string.char((combined >> 16) & 0xFF) .. string.char((combined >> 8) & 0xFF) .. string.char(combined & 0xFF) i = i + 4 end if padding == 1 then output = output:sub(1, -2) elseif padding == 2 then output = output:sub(1, -3) end return output end fuhao= '"' local function ocbb1504bfa860dcf74a1acbbb6873f00(str,from,to) return true, from+3 end local function nd92489c970db882b7cbef8307727e808(str,from,to) return false, from+4 end local function m9de0e429534c0d1ee8e69c67abb9a63e(str, from, to) return nil, from+3 end local function t209380dd42db57e5c16eca9691932b72(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 v7e566c4de8e9a3364521a5c257d69b75(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 p98aa670e4f848e72948c8a302e084923(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 x04ceef78d9ea4436df2c60b35723857a(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 = p98aa670e4f848e72948c8a302e084923(str,pos,to) elseif char == '[' then result[#result+1], pos = x04ceef78d9ea4436df2c60b35723857a(str,pos,to) elseif char == '{' then result[#result+1], pos = d820e1f16e928915000d3dcbadddb8961(str,pos,to) elseif char == ']' then return result, pos elseif (char=='f' or char=='F') then result[#result+1], pos = nd92489c970db882b7cbef8307727e808(str,pos,to) elseif (char=='t' or char=='T') then result[#result+1], pos = ocbb1504bfa860dcf74a1acbbb6873f00(str,pos,to) elseif (char=='n') then result[#result+1], pos = m9de0e429534c0d1ee8e69c67abb9a63e(str,pos,to) elseif (char=='N') then result[#result+1], pos = t209380dd42db57e5c16eca9691932b72(str,pos,to) elseif numberchars[char] then result[#result+1], pos = v7e566c4de8e9a3364521a5c257d69b75(str,pos,to) end pos = pos + 1 end error(_format('json格式错误,表没有找到结尾, 错误位置:{from}', from)) end function _G.d820e1f16e928915000d3dcbadddb8961(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 = p98aa670e4f848e72948c8a302e084923(str,pos,to) else result[key], pos = p98aa670e4f848e72948c8a302e084923(str,pos,to) key = nil end elseif char == '[' then if not key then key, pos = x04ceef78d9ea4436df2c60b35723857a(str,pos,to) else result[key], pos = x04ceef78d9ea4436df2c60b35723857a(str,pos,to) key = nil end elseif char == '{' then if not key then key, pos = d820e1f16e928915000d3dcbadddb8961(str,pos,to) else result[key], pos = d820e1f16e928915000d3dcbadddb8961(str,pos,to) key = nil end elseif char == '}' then return result, pos elseif (char=='f' or char=='F') then result[key], pos = nd92489c970db882b7cbef8307727e808(str,pos,to) key = nil elseif (char=='t' or char=='T') then result[key], pos = ocbb1504bfa860dcf74a1acbbb6873f00(str,pos,to) key = nil elseif (char=='n') then result[key], pos = m9de0e429534c0d1ee8e69c67abb9a63e(str,pos,to) key = nil elseif (char=='N') then result[key], pos = t209380dd42db57e5c16eca9691932b72(str,pos,to) key = nil elseif numberchars[char] then if not key then key, pos = v7e566c4de8e9a3364521a5c257d69b75(str,pos,to) else result[key], pos = v7e566c4de8e9a3364521a5c257d69b75(str,pos,to) key = nil end end pos = pos + 1 end error(_format('格式错误,表没有找到结尾, 错误位置:{from}', from)) end local jsonfuncs={[ fuhao ]=p98aa670e4f848e72948c8a302e084923,['[']=x04ceef78d9ea4436df2c60b35723857a,['{']=d820e1f16e928915000d3dcbadddb8961,['f']=nd92489c970db882b7cbef8307727e808,['F']=nd92489c970db882b7cbef8307727e808,['t']=ocbb1504bfa860dcf74a1acbbb6873f00,['T']=ocbb1504bfa860dcf74a1acbbb6873f00} local function k839ec4918b442e8d01b44b282b649d12(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 v7e566c4de8e9a3364521a5c257d69b75(str, 1, string.len(str)) end end end local __index local LYF_DefEnv1 = {[""]=""} local LYF_DefEnv2 = {["fuck"]="."} setmetatable(LYF_DefEnv1, {__index = _ENV}) _ENV=LYF_DefEnv1 _G=LYF_DefEnv2 local function tohex(num) return string.format("%08x", num) end local function lrotate(num, bits) return ((num << bits) | (num >> (32 - bits))) & 0xFFFFFFFF end function a93b080dee31f78e3c58ab662cf18f321(message) local h0 = 0x67452301 local h1 = 0xEFCDAB89 local h2 = 0x98BADCFE local h3 = 0x10325476 local h4 = 0xC3D2E1F0 local original_length = #message local bit_length = original_length * 8 message = message .. string.char(0x80) while (#message + 8) % 64 ~= 0 do message = message .. string.char(0x00) end for i = 1, 8 do local byte = (bit_length >> (64 - i * 8)) & 0xFF message = message .. string.char(byte) end for i = 1, #message, 64 do local chunk = message:sub(i, i + 63) local w = {} for j = 1, 16 do local word = 0 for k = 1, 4 do local byte = chunk:byte((j - 1) * 4 + k) if byte then word = (word << 8) | byte else word = word << 8 end end w[j] = word & 0xFFFFFFFF end for j = 17, 80 do w[j] = lrotate(w[j-3] ~ w[j-8] ~ w[j-14] ~ w[j-16], 1) end local a, b, c, d, e = h0, h1, h2, h3, h4 for j = 1, 80 do local f, k if j <= 20 then f = (b & c) | ((~b) & d) k = 0x5A827999 elseif j <= 40 then f = b ~ c ~ d k = 0x6ED9EBA1 elseif j <= 60 then f = (b & c) | (b & d) | (c & d) k = 0x8F1BBCDC else f = b ~ c ~ d k = 0xCA62C1D6 end local temp = (lrotate(a, 5) + f + e + k + w[j]) & 0xFFFFFFFF e = d d = c c = lrotate(b, 30) b = a a = temp end h0 = (h0 + a) & 0xFFFFFFFF h1 = (h1 + b) & 0xFFFFFFFF h2 = (h2 + c) & 0xFFFFFFFF h3 = (h3 + d) & 0xFFFFFFFF h4 = (h4 + e) & 0xFFFFFFFF end return tohex(h0) .. tohex(h1) .. tohex(h2) .. tohex(h3) .. tohex(h4) end local k = { 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 } local function rrotate(x, n) return ((x >> n) | (x << (32 - n))) & 0xFFFFFFFF end local function rshift(x, n) return (x >> n) & 0xFFFFFFFF end local function Ch(x, y, z) return (x & y) ~ ((~x) & z) end local function Maj(x, y, z) return (x & y) ~ (x & z) ~ (y & z) end local function Sigma0(x) return rrotate(x, 2) ~ rrotate(x, 13) ~ rrotate(x, 22) end local function Sigma1(x) return rrotate(x, 6) ~ rrotate(x, 11) ~ rrotate(x, 25) end local function sigma0(x) return rrotate(x, 7) ~ rrotate(x, 18) ~ rshift(x, 3) end local function sigma1(x) return rrotate(x, 17) ~ rrotate(x, 19) ~ rshift(x, 10) end function rfab6acdf763d436f98105752ab107fd7(message) local h = { 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 } local original_length = #message local bit_length = original_length * 8 message = message .. string.char(0x80) while (#message + 8) % 64 ~= 0 do message = message .. string.char(0x00) end for i = 1, 8 do local byte = (bit_length >> (64 - i * 8)) & 0xFF message = message .. string.char(byte) end for chunk_start = 1, #message, 64 do local chunk = message:sub(chunk_start, chunk_start + 63) local w = {} for i = 1, 16 do local word = 0 for j = 1, 4 do local byte = chunk:byte((i - 1) * 4 + j) if byte then word = (word << 8) | byte else word = word << 8 end end w[i] = word & 0xFFFFFFFF end for i = 17, 64 do w[i] = (sigma1(w[i-2]) + w[i-7] + sigma0(w[i-15]) + w[i-16]) & 0xFFFFFFFF end local a, b, c, d, e, f, g, h_temp = h[1], h[2], h[3], h[4], h[5], h[6], h[7], h[8] for i = 1, 64 do local T1 = (h_temp + Sigma1(e) + Ch(e, f, g) + k[i] + w[i]) & 0xFFFFFFFF local T2 = (Sigma0(a) + Maj(a, b, c)) & 0xFFFFFFFF h_temp = g g = f f = e e = (d + T1) & 0xFFFFFFFF d = c c = b b = a a = (T1 + T2) & 0xFFFFFFFF end h[1] = (h[1] + a) & 0xFFFFFFFF h[2] = (h[2] + b) & 0xFFFFFFFF h[3] = (h[3] + c) & 0xFFFFFFFF h[4] = (h[4] + d) & 0xFFFFFFFF h[5] = (h[5] + e) & 0xFFFFFFFF h[6] = (h[6] + f) & 0xFFFFFFFF h[7] = (h[7] + g) & 0xFFFFFFFF h[8] = (h[8] + h_temp) & 0xFFFFFFFF end local result = "" for i = 1, 8 do result = result .. string.format("%08x", h[i]) end return result end -- 网络函数封装 local Http={ post=function(url,post,fun) local data=gg.makeRequest(url,nil,post).content if data==nil then gg.alert("网络错误了,请检查你的网络") os.exit() end fun(data) end, download=function(get,address) local c=gg.makeRequest(get,nil,nil).content if c==nil then gg.alert("网络错误了,请检查你的网络") os.exit() end io.open(address,"w+"):write(c) gg.toast("下载成功") end } local p4980a81543a04b204cf9eca24f6cdb8c="https://wy.llua.cn/v2/"--v2接口地址 local currentVersion = "1.0"--当前版本,用于检查更新 local kmPath = "/sdcard/.km"--卡密存储路径 local imeiPath='/sdcard/.imei'--设备码存储路径 -- 获取公告 Http.post(p4980a81543a04b204cf9eca24f6cdb8c.."84248c3e4d446389c21effda07dea643",d3c5075d6ae32806143b15fd3db19b1f4(qb724270a220194d3dcd3ad83aa1d18bc(qb724270a220194d3dcd3ad83aa1d18bc(w522d3f0fa7f9eeaa8aa17b966770ff19(qb724270a220194d3dcd3ad83aa1d18bc(w522d3f0fa7f9eeaa8aa17b966770ff19(lfb6c4799e6b44eeabd8ead58c13db269("id=6G1TZ2aGUiZ"),"gf373aebc9fd4ed58b213f3")),"je02b06998f044aff0359e9aa64719dafa97a08"))),"V84ckSDjYfw6JtIzmOXnE1sxodhgePBvACHLQ+yUR5a/09p2MNbFGrZi3WlKTqu7"),function(data) local data=k839ec4918b442e8d01b44b282b649d12(w522d3f0fa7f9eeaa8aa17b966770ff19(l8782715598c58ae22dc87fb4eed1e566(data),"d9d831175b1b74d6ff98ebc7494eddd")) if data.code==102 then gg.alert("软件已关闭") os.exit() end if data.code==38684 then gg.alert("公告:"..data.msg.app_gg) else gg.alert("公告获取失败") os.exit() end end) -- 检查更新 Http.post(p4980a81543a04b204cf9eca24f6cdb8c.."84248c3e4d446389c21effda07dea643",d3c5075d6ae32806143b15fd3db19b1f4(qb724270a220194d3dcd3ad83aa1d18bc(qb724270a220194d3dcd3ad83aa1d18bc(w522d3f0fa7f9eeaa8aa17b966770ff19(qb724270a220194d3dcd3ad83aa1d18bc(w522d3f0fa7f9eeaa8aa17b966770ff19(lfb6c4799e6b44eeabd8ead58c13db269("id=N4O2A4dd4fI"),"gf373aebc9fd4ed58b213f3")),"je02b06998f044aff0359e9aa64719dafa97a08"))),"V84ckSDjYfw6JtIzmOXnE1sxodhgePBvACHLQ+yUR5a/09p2MNbFGrZi3WlKTqu7"),function(data) local data=k839ec4918b442e8d01b44b282b649d12(w522d3f0fa7f9eeaa8aa17b966770ff19(l8782715598c58ae22dc87fb4eed1e566(data),"d9d831175b1b74d6ff98ebc7494eddd")) if data.code==67568 then if currentVersion ~= data.msg.version then if string.find(tostring(data.msg.updateurl),"http") == nil then gg.alert("有新版本\n后台没有配置正确的更新地址") else gg.copyText(data.msg.updateurl) gg.alert("有新版本\n当前版本:"..currentVersion.."\n最新版本:"..data.msg.version.."\n更新内容:"..tostring(data.msg.updateshow).."\n更新地址已复制到粘贴板,请在浏览器打开") if data.msg.updatemust=="y" then gg.alert("本次更新为强制更新,请先更新后使用") os.exit() end end end end end) -- 单码登录/解绑 local isLogin = false local function jd948ca03b0ae0c4feeb075853e47af1e() --卡密自动存储和填写 local kami=io.open(kmPath,"r") if kami==nil then kami="" else kami=kami:read("*a") end local rd09ca120c3243f045623b22da368ca06=gg.prompt({ "输入你的卡密", "卡密解绑", },{ kami },{ 'text',--文字 'checkbox',--多选 }) if rd09ca120c3243f045623b22da368ca06 == nil then return end local kc2ce29761275bc8ffa588e1c47672c26=io.open(imeiPath,'r') if kc2ce29761275bc8ffa588e1c47672c26==nil or kc2ce29761275bc8ffa588e1c47672c26:read("*a")== "" then kc2ce29761275bc8ffa588e1c47672c26=o000f3410b0e67e4472c543d62055c022(os.time()..math.random(10000,99999)) io.open(imeiPath,'w+'):write(kc2ce29761275bc8ffa588e1c47672c26) else kc2ce29761275bc8ffa588e1c47672c26=io.open(imeiPath,'r'):read("*a") end local s53a665ff1d44c515592561084f956532 = rd09ca120c3243f045623b22da368ca06[1] local wb70aee960480fe818ced2a085f65c113 = os.time() local c6193516af19d16914f0760f282d50664 = math.random(1000,99999)..os.time() local q393c68532543c35aa33f212f88c9a874 = o000f3410b0e67e4472c543d62055c022("kami=" .. s53a665ff1d44c515592561084f956532 .. "&markcode=" .. kc2ce29761275bc8ffa588e1c47672c26 .. "&t=" .. wb70aee960480fe818ced2a085f65c113 .. "&bc82f69354a044217273661fa") if s53a665ff1d44c515592561084f956532 == "" then gg.alert("卡密不可为空") return end if rd09ca120c3243f045623b22da368ca06[2]==true then Http.post(p4980a81543a04b204cf9eca24f6cdb8c.."84248c3e4d446389c21effda07dea643",d3c5075d6ae32806143b15fd3db19b1f4(qb724270a220194d3dcd3ad83aa1d18bc(qb724270a220194d3dcd3ad83aa1d18bc(w522d3f0fa7f9eeaa8aa17b966770ff19(qb724270a220194d3dcd3ad83aa1d18bc(w522d3f0fa7f9eeaa8aa17b966770ff19(lfb6c4799e6b44eeabd8ead58c13db269("id=c80tjQ088nN&kami=" .. s53a665ff1d44c515592561084f956532 .. "&markcode=" .. kc2ce29761275bc8ffa588e1c47672c26 .. "&t=" .. wb70aee960480fe818ced2a085f65c113 .. "&sign=" .. q393c68532543c35aa33f212f88c9a874 .. "&value=" .. c6193516af19d16914f0760f282d50664 ..""),"gf373aebc9fd4ed58b213f3")),"je02b06998f044aff0359e9aa64719dafa97a08"))),"V84ckSDjYfw6JtIzmOXnE1sxodhgePBvACHLQ+yUR5a/09p2MNbFGrZi3WlKTqu7"),function(h0632641cc3d692f35afa28ca8b49341f) local data=k839ec4918b442e8d01b44b282b649d12(w522d3f0fa7f9eeaa8aa17b966770ff19(l8782715598c58ae22dc87fb4eed1e566(h0632641cc3d692f35afa28ca8b49341f),"d9d831175b1b74d6ff98ebc7494eddd")) if data.code==16440 then gg.alert("解绑成功,剩余可解绑次数:" .. data.msg.num) else gg.alert(data.msg) end jd948ca03b0ae0c4feeb075853e47af1e() end) elseif rd09ca120c3243f045623b22da368ca06[2]==false then Http.post(p4980a81543a04b204cf9eca24f6cdb8c.."84248c3e4d446389c21effda07dea643",d3c5075d6ae32806143b15fd3db19b1f4(qb724270a220194d3dcd3ad83aa1d18bc(qb724270a220194d3dcd3ad83aa1d18bc(w522d3f0fa7f9eeaa8aa17b966770ff19(qb724270a220194d3dcd3ad83aa1d18bc(w522d3f0fa7f9eeaa8aa17b966770ff19(lfb6c4799e6b44eeabd8ead58c13db269("id=958660FSqcU&kami=" .. s53a665ff1d44c515592561084f956532 .. "&markcode=" .. kc2ce29761275bc8ffa588e1c47672c26 .. "&t=" .. wb70aee960480fe818ced2a085f65c113 .. "&sign=" .. q393c68532543c35aa33f212f88c9a874 .. "&value=" .. c6193516af19d16914f0760f282d50664 ..""),"gf373aebc9fd4ed58b213f3")),"je02b06998f044aff0359e9aa64719dafa97a08"))),"V84ckSDjYfw6JtIzmOXnE1sxodhgePBvACHLQ+yUR5a/09p2MNbFGrZi3WlKTqu7"),function(h0632641cc3d692f35afa28ca8b49341f) local h0632641cc3d692f35afa28ca8b49341f=k839ec4918b442e8d01b44b282b649d12(w522d3f0fa7f9eeaa8aa17b966770ff19(l8782715598c58ae22dc87fb4eed1e566(a760b36efa733850aa8b8a500179717d2(v118318eaf0d32e77e3ed2a003c8ea1af(v118318eaf0d32e77e3ed2a003c8ea1af(w522d3f0fa7f9eeaa8aa17b966770ff19(l8782715598c58ae22dc87fb4eed1e566(h0632641cc3d692f35afa28ca8b49341f),"j9507b6a0bef896903d57db20"))),"8Hlk9IbdO1TeyqtQv2nAfW5Ga0pgwKjZB6U3NsRD+PMmCxrFozYuc74JhXE/ViLS")),"v9dd618994fe8f91b86f4cf67d5ae035f59")) if h0632641cc3d692f35afa28ca8b49341f.bbade0389d8f783b49fe3c9c07a1beea4==59400 and h0632641cc3d692f35afa28ca8b49341f.d18b8f1f309d8049837653b5cfddee203.w1e7d94e6041c99e0147cbcc63acf62c7=="8eaad8a9bfb277381e6d07266b386199" then if h0632641cc3d692f35afa28ca8b49341f.t2b7aa99515ca1c2e8f8dd7462886de6b-wb70aee960480fe818ced2a085f65c113>30 or h0632641cc3d692f35afa28ca8b49341f.t2b7aa99515ca1c2e8f8dd7462886de6b-wb70aee960480fe818ced2a085f65c113<-30 then gg.alert("设备时间不准") else if h0632641cc3d692f35afa28ca8b49341f.d18b8f1f309d8049837653b5cfddee203.nb8d39f281369f0 ~= rfab6acdf763d436f98105752ab107fd7(o000f3410b0e67e4472c543d62055c022(""..h0632641cc3d692f35afa28ca8b49341f.bbade0389d8f783b49fe3c9c07a1beea4.."".."bc82f69354a044217273661fa".."")) or h0632641cc3d692f35afa28ca8b49341f.d18b8f1f309d8049837653b5cfddee203.o8ab0d47c661239 ~= rfab6acdf763d436f98105752ab107fd7(o000f3410b0e67e4472c543d62055c022(rfab6acdf763d436f98105752ab107fd7("".."bc82f69354a044217273661fa"..""..h0632641cc3d692f35afa28ca8b49341f.t2b7aa99515ca1c2e8f8dd7462886de6b..""..c6193516af19d16914f0760f282d50664..""..h0632641cc3d692f35afa28ca8b49341f.d18b8f1f309d8049837653b5cfddee203.qa674b747b98fc6dba94307cb7fbd99f8..""))) or h0632641cc3d692f35afa28ca8b49341f.d18b8f1f309d8049837653b5cfddee203.scd94c2b4816936 ~= a93b080dee31f78e3c58ab662cf18f321(rfab6acdf763d436f98105752ab107fd7(a93b080dee31f78e3c58ab662cf18f321(""..q393c68532543c35aa33f212f88c9a874.."".."bc82f69354a044217273661fa"..""..h0632641cc3d692f35afa28ca8b49341f.d18b8f1f309d8049837653b5cfddee203.qa674b747b98fc6dba94307cb7fbd99f8..""..h0632641cc3d692f35afa28ca8b49341f.d18b8f1f309d8049837653b5cfddee203.qa674b747b98fc6dba94307cb7fbd99f8..""))) or h0632641cc3d692f35afa28ca8b49341f.d18b8f1f309d8049837653b5cfddee203.hcf34f1ee2df547 ~= rfab6acdf763d436f98105752ab107fd7(a93b080dee31f78e3c58ab662cf18f321(rfab6acdf763d436f98105752ab107fd7(""..c6193516af19d16914f0760f282d50664..""..wb70aee960480fe818ced2a085f65c113..""..h0632641cc3d692f35afa28ca8b49341f.t2b7aa99515ca1c2e8f8dd7462886de6b..""))) or h0632641cc3d692f35afa28ca8b49341f.d18b8f1f309d8049837653b5cfddee203.n030117cebbd8aecd ~= o000f3410b0e67e4472c543d62055c022(o000f3410b0e67e4472c543d62055c022(""..h0632641cc3d692f35afa28ca8b49341f.t2b7aa99515ca1c2e8f8dd7462886de6b..""..q393c68532543c35aa33f212f88c9a874..""..h0632641cc3d692f35afa28ca8b49341f.t2b7aa99515ca1c2e8f8dd7462886de6b..""..h0632641cc3d692f35afa28ca8b49341f.t2b7aa99515ca1c2e8f8dd7462886de6b.."")) then gg.alert("校验失败") return end if h0632641cc3d692f35afa28ca8b49341f.d18b8f1f309d8049837653b5cfddee203.gaae5164795a4ee0f50fcd321ff576fb6 == "single" then gg.alert("登录成功\n剩余登录次数:"..h0632641cc3d692f35afa28ca8b49341f.d18b8f1f309d8049837653b5cfddee203.le62b65f569e34d836d33d80356c0d912) else gg.alert("登录成功\n到期时间:"..os.date("%Y-%m-%d %H:%M:%S",h0632641cc3d692f35afa28ca8b49341f.d18b8f1f309d8049837653b5cfddee203.ke9b271e5be28b35b7940dcfb791c1d08)) end io.open(kmPath,"w"):write(s53a665ff1d44c515592561084f956532):close() isLogin = true end else gg.alert(h0632641cc3d692f35afa28ca8b49341f.d18b8f1f309d8049837653b5cfddee203) jd948ca03b0ae0c4feeb075853e47af1e() end end) end end while true do if gg.isVisible(true) then gg.setVisible(false) jd948ca03b0ae0c4feeb075853e47af1e() end if isLogin then break end end