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
--请求

---[=[上面不要乱动]=]-------------------------------------------------------------------------------------------------------------------

a_xl={
"http://cdn3.simpleauth.cn/",
"http://cdn4.simpleauth.cn/",
"http://cdn5.simpleauth.cn/",
"http://cdn2.simpleauth.cn/",
"https://cdn1.simpleauth.cn/",
"http://simpleauth.cn/",

}
function a_C()
--a_mi={"线路①","线路②","线路③","线路④","线路⑤","线路⑥"}
--a_xh=gg.choice(a_mi,nil,"选择要使用的快速线路")--单选功能
--if a_xh==nil then
--a_C()
--else
--xxxxxxx=a_xl[a_xh]
xxxxxxx=a_xl[6]
--end
end
a_C()



function MAIN_C()
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_APPID="12042"
--APPID

local xxxxxxx_APPKEY="jvjCnc8xqJJLJ0nL"
--APPKEY

local xxxxxxx_RC4_key="SS52l9523aeE59E5"
--是否 RC4 加密[key 密钥]


local xxxbanb="2.0"
--1.0

local xxxQQ=""
--作者QQ


local xxxxxxx_RC4=true
--是否 RC4 加密[false=关 true=开]
--选择 RC4加密-2 否则会乱码
--打开 签名放DATA里:打开


AMI_YDO="/sdcard/Android/"
--卡密 设备码 路径

----------------------------------------------------------------------------------------------------------------------

if xxxxxxx_APPID=="" or xxxxxxx_RC4_key=="" or xxxxxxx_APPKEY=="" then
  gg.alert("对接数据,空...")--对话框
  os.exit()
end

----------------------------------------------------------------------------------------------------------------------

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

text=string.gsub(Notice,":",'=')
text=text:gsub('"=','=')
text=text:gsub('{"','{')
text=text:gsub(',"',',')
load("Notice="..text)()

if Notice.code == 200 then
gg.alert(Notice.msg.app_gg)--对话框
else
gg.alert(Notice.msg)--对话框
end
----------------------------------上面是公告------------------------------------------------------------------------------------

file=ultra(xxxxxxx_to_configure.."&app="..xxxxxxx_APPID,"")
No=file:match('"code":(.-),')
if No ~= nil then
  No=file:match('"msg":"(.-)",')
  if No==nil then
    xxxxxxx_RC4=false--判定是否关闭
   else
    gg.alert("外链接接口："..No)--对话框
    os.exit()
  end
end

if xxxxxxx_RC4==true then
  file=RC4(file,xxxxxxx_RC4_key,false)
end

text=string.gsub(file,":",'=')
text=text:gsub("https=",'https:')
text=text:gsub("http=",'http:')
text=text:gsub('"=','=')
text=text:gsub(',"',',')
text=text:gsub('{"','{')

load("file="..text)()

if file.code == 200 then
if file.msg.version == xxxbanb then
gg.toast("最新版")--提示
else
YU=gg.alert("发现新版本，请更新！:\n"..file.msg.app_update_show,"确定")--对话框

if file.msg.app_update_must == 'y' then
gg.alert("作者开启强制更新！","复制链接")--对话框
print(" 复制下载 :\n"..file.msg.app_update_url)--打印
gg.copyText(file.msg.app_update_url)
os.exit()
else
gg.alert("尽快更新版本！")
print(" 复制下载 :\n"..file.msg.app_update_url)--打印
gg.copyText(file.msg.app_update_url)
end

end
else
gg.alert(file.msg)--对话框
os.exit() 
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(AMI_YDO.."/km","w"):write("")--写
else

if (tinme-os.time())>500 or (tinme-os.time())<-500 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(AMI_YDO.."/km","w"):write(km)--写
kll=gg.alert("\n登入成功:\n\n[到期时间]\n"..vip1,"确定","返回")--提示--获取到期时间
if kll==2 then
io.open(AMI_YDO.."/lko","w"):write("false")--写
oqvqo(xxxxxxx)
end

--登入成功后的动作----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


if gg.alert("本脚本由星星开发，使用时如有漏洞，及时反馈qq号2018920820\n封号提示(必看)\n\n1.消消乐一般不会检测辅助，封号只是看异常分数，只要分数不离谱，是不会被封号的。所以控制好分数，上一次全国排行，封号几率增加90%！\n\n2.不要去追最新还关卡的前几名！这个特别重要！刚更新出来的新关卡不要用辅助去刷，会被官方特别关注，辅助刷的分数容易被查！建议3950+关卡暂时不用辅助刷\n\n3.用辅助刷精英关卡时，控制在6小时内不要超过35关，超过了有很大几率被封号！普通关卡数也别超常，都会检测！\n\n4.建议：不要都三星，不要100%过关，不要和真实数据差太多，比如这把精灵布局不好，根本过不去就不要强行过，也不要关关强行刷三星，否则都会被检测！","  我已知晓  ","  挑战官方！ ") ~=1 then  print("那你别用辅助了！")os.exit() end gg.alert("做个好演员，别刷太多分，别剩太多步数！！\n最近检测严重，一定要让自己的数据看起来正常，数据太假会被封号的！")

exit=os.exit
function os.exit()
  gg.clearList()--清楚保存
  gg.clearResults()--清楚搜索
  exit()
end

gg.clearList()--清楚保存
gg.clearResults()--清楚搜索


function split(szFullString, szSeparator)

  local nFindStartIndex = 1
  local nSplitIndex = 1
  local nSplitArray = {}

  while true do
    gg.setVisible(false)
    local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex)

    if not nFindLastIndex then

      nSplitArray[nSplitIndex] =string.sub(szFullString, nFindStartIndex, string.len(szFullString))

      break
    end
    nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1)

    nFindStartIndex = nFindLastIndex + string.len(szSeparator)

    nSplitIndex = nSplitIndex + 1

  end
  return nSplitArray
end
-------------------------------------------------------------------------------------------------------------------------------
function j(szpy, qmxg)
  for i, v in ipairs(qmxg) do
    xgpy= szpy + v["偏移"]
    xglx = v["类型"]
    xgsz = v["修改征码"]
    xgdj = v["是否冻结"]
    if xgdj == nil or xgdj == "" then
      gg.addListItems({[1]={address = xgpy, flags = xglx, value = xgsz}})
     else
      gg.addListItems({[1]= {address = xgpy, flags = xglx,freeze = xgdj, value = xgsz}})
    end

    xgsl = xgsl + 1
    xgjg = true
  end

end
-------------------------------------------------------------------------------------------------------------------------------
function xsBOOS(qmnb,qmxg)
  gg.setVisible(false)
  gg.clearResults()
  gg.setRanges(qmnb[1]["内存范围"])
  gg.setVisible(false)
  gg.searchNumber(qmnb[3]["联合搜索"],qmnb[3]["类型"],qmnb[3]["是否加密搜索"])
  if gg.getResultCount() == 0 then
    gg.toast(qmnb[2]["功能名字"] .. "开启失败")
   else
    h=gg.getResults(gg.getResultCount())--值数量
    --gg.toast("\n一共搜索到[ "..(#h).." ]个数值")

    gg.searchNumber(qmnb[4]["主特征码"], qmnb[4]["类型"])
    gg.refineNumber(qmnb[4]["主特征码"], qmnb[4]["类型"])
    gg.refineNumber(qmnb[4]["主特征码"], qmnb[4]["类型"])
    gg.refineNumber(qmnb[4]["主特征码"], qmnb[4]["类型"])

    if gg.getResults(gg.getResultCount()) == 0 then
      gg.toast(qmnb[2]["功能名字"] .. "开启失败")
     else
     gg.setVisible(false)
      sl = gg.getResults(999999)
      sz = gg.getResultCount()
      xgsl = 0
      if sz > 999999 then
        sz = 999999
      end

      for i = 1, sz do
        gg.setVisible(false)
        pdsz = true
        for v = 5, #(qmnb) do

          if pdsz == true then
            pysz = {}
            pysz[1]= {}

            pysz[1].address= sl[i].address + qmnb[v]["偏移"]

            pysz[1].flags= qmnb[v]["类型"]

            szpy = gg.getValues(pysz)

            pdpd = qmnb[v]["副特征"] .. ";" .. szpy[1].value

            szpd= split(pdpd, ";")

            tzszpd= szpd[1]

            pyszpd = szpd[2]

            if tzszpd == pyszpd then
              pdjg = true
              pdsz = true else
              pdjg = false
              pdsz = false end end end
        if pdjg == true then
          szpy= sl[i].address
          j(szpy,qmxg)
        end
      end
      if xgjg == true then
        --gg.sleep(1200)--延迟
        gg.toast("\n"..qmnb[2]["功能名字"] .. "\n开启成功\n共修改 [" ..xgsl.. "] 条数据")
        gg.clearResults()
       else
        gg.toast(qmnb[2]["功能名字"] .. "开启失败")
        gg.clearResults()
      end
    end
  end
end









henga="[ 已关闭 ]"
shua="[ 已关闭 ]"
baoa="[ 已关闭 ]"
molia="[ 已关闭 ]"
baoa_f=false
henga_f=false
shua_f=false
molia_f=false

henga_x="[ 已关闭 ]"
shua_x="[ 已关闭 ]"
baoa_x="[ 已关闭 ]"
molia_x="[ 已关闭 ]"
baoa_x_f=false
henga_x_f=false
shua_x_f=false
molia_x_f=false

num = 0

function main_old()
  main_a=gg.choice({
    ">>>>>>[初始化]<<<<<<",
    "全屏横向消除"..henga,
    "全屏竖向消除"..shua,
    "全屏轰炸消除"..baoa,
    "全屏彩魔力鸟"..molia,
    "一键关闭",
    "\n返 回 上 页"
  },nil,"星星辅助-支持官方最新1.97版本！\n开心消消乐〔安全版〕\n\n先初始化[就可以嗨了]\n")--单选功能



  if main_a == 1 then
    csh()
  end
  if main_a == 2 then
    main_aa3()--横消
  end
  if main_a == 3 then
    main_aa4()--竖消
  end
  if main_a == 4 then
    main_aa()--爆炸
  end
  if main_a == 5 then
    main_aa2()--彩魔力鸟
  end  
  if main_a == 6 then
    main_aa5()
  end
	if main_a == 7 then
	  main_aa5()
    main_home()
  end
  gg.setVisible(false)
end



function main_new()
  main_a=gg.choice({
    ">>>>>>[初始化]<<<<<<",
    "全屏轰炸消除"..baoa,
    "小轰炸消除"..baoa_x,
    "小彩魔力鸟"..molia_x,
    "一键关闭",
    "\n返 回 上 页"
  },nil,"星星辅助-支持官方最新1.97版本！\n开心消消乐〔安全版〕\n\n先初始化[就可以嗨了]\n")--单选功能



  if main_a == 1 then
    csh()
  end
  if main_a == 2 then
    main_aa()--爆炸
  end
  if main_a == 3 then
    main_aa1()--小爆炸
  end
  if main_a == 4 then
    main_aa21()--小魔力
  end
  if main_a == 5 then
    main_aa5()
  end
  if main_a == 6 then
    main_aa5()
    main_home()
  end
  gg.setVisible(false)
end


function main_home()
  main_a=gg.choice({
    "全屏特效功能区",
    "全部功能",
    "常用功能区",
  },nil,"星星辅助-支持官方最新1.97版本！\n点击下面的选项，即可进入对应的功能区\n\n")--单选功能



  if main_a == 1 then
    num = 1
    main_old()
  end
  if main_a == 2 then
    num = 2
    main_all()
  end
  if main_a == 3 then
    num = 3
    main_new()
  end
	
  gg.setVisible(false)
end



function main_all()
  main_a=gg.choice({
    ">>>>>>[初始化]<<<<<<",
    "全屏横向消除"..henga,
    "全屏竖向消除"..shua,
    "全屏轰炸消除"..baoa,
    "全屏彩魔力鸟"..molia,
    "小横向消除"..henga_x,
    "小竖向消除"..shua_x,
    "小轰炸消除"..baoa_x,
    "小彩魔力鸟"..molia_x,
    "一键关闭",
    "\n返 回 上 页"
  },nil,"星星辅助-支持官方最新1.97版本！\n开心消消乐〔安全版〕\n\n先初始化[就可以嗨了]\n")--单选功能



  if main_a == 1 then
    csh()
  end
  if main_a == 2 then
    main_aa3()--横消
  end
  if main_a == 6 then
    main_aa31()--小横消
  end
  if main_a == 3 then
    main_aa4()--竖消
  end
  if main_a == 7 then
    main_aa41()--小竖消
  end
  if main_a == 4 then
    main_aa()--爆炸
  end
  if main_a == 8 then
    main_aa1()--小爆炸
  end
  if main_a == 5 then
    main_aa2()--彩魔力鸟
  end  
  if main_a == 9 then
    main_aa21()--小魔力
  end
  if main_a == 10 then
    main_aa5()
  end
	if main_a == 11 then
	  main_aa5()
    main_home()
  end
  gg.setVisible(false)
end





----------------------------------------------------------------------------------------------------------------------
local ca={}--配
local cv={}--改
----------------------------------------------------------------------------------------------------------------------
function csh()
  if #ca==0 or #cv==0 then
    
gg.setRanges(32)
gg.setVisible(false)
gg.searchNumber(";1.94")--搜索
gg.setVisible(false)
gg.refineNumber(";1.94")--改善
gg.setVisible(false)
gg.getResults(9999)--值数量
gg.setVisible(false)
gg.editAll("99999",4)--修改

gg.clearList()--清楚保存
gg.clearResults()--清楚搜索 


  xs={

    {["内存范围"] = 32},

    {["功能名字"] ="第一步"},

    {["联合搜索"] ="256;32;1024::",["类型"] =4},--内存块过滤

    {["主特征码"] ="256", ["类型"] = 4},

    {["副特征"] = "32", ["偏移"] = 24, ["类型"] =4},

    {["副特征"] = "1024", ["偏移"] = 264, ["类型"] =4},

		--{["副特征"] = "0", ["偏移"] = -116, ["类型"] =4},
		
		--{["副特征"] = "512", ["偏移"] = -72, ["类型"] =4},
  }


  xs2={



    {
      --1080877056
      ["偏移"] = -116,
      ["类型"] = 4,
      ["是否冻结"]=""},


    {
      --1080098816",
      ["偏移"] = -188,
      ["类型"] = 4,
      ["是否冻结"]=""},

    {
      --1081303040",
      ["偏移"] = -20,
      ["类型"] = 4,
      ["是否冻结"]=""},

    {
      --1081524224
      ["偏移"] = 244,
      ["类型"] = 4,
      ["是否冻结"]=""},



  }




  xsBOOS(xs,xs2)


  t=gg.getListItems()
  for i, v in ipairs(t) do
    ca[i]={['address']=v.address,['value']=v.value,['flags']=v.flags}
  end

  ----------------------------------------------------------------------------------------------------------------------
  gg.clearList()--清楚保存
  gg.clearResults()--清楚搜索

  xst={

    {["内存范围"] = 32},

    {["功能名字"] ="第二步"},

    {["联合搜索"] ="91;6;-1;0;0;0;0::",["类型"] =4},--内存块过滤

    {["主特征码"] ="91", ["类型"] = 4},

    {["副特征"] = "6", ["偏移"] = 28, ["类型"] =4},

    {["副特征"] = "-1", ["偏移"] = 40, ["类型"] =4},

    {["副特征"] = "0", ["偏移"] = 44, ["类型"] =4},

    {["副特征"] = "0", ["偏移"] = 52, ["类型"] =4},


  }

  xst2={
    {
      ["偏移"] = 48,
      ["类型"] = 4,
      ["是否冻结"]=""
      },
      
      {
      ["偏移"] = 56,
      ["类型"] = 4,
      ["是否冻结"]=""
      },
      
      {
      ["偏移"] = 64,
      ["类型"] = 4,
      ["是否冻结"]=""
      },
      
      {
      ["偏移"] = 72,
      ["类型"] = 4,
      ["是否冻结"]=""
      },
      
  }


  ---------------------------------------------------------------------------------------------------------------------
  xsBOOS(xst,xst2)


  t=gg.getListItems()
  cv[1]=t[1]

  gg.clearList()--清楚保存
  gg.clearResults()--清楚搜索
  
  else
    gg.alert("已经初始化完成，开启下面的功能交换精灵即可")--对话框
    if num == 1 then
	    main_old()
	  end
	  if num == 2 then
	    main_all()
	  end
	  if num == 3 then
	    main_new()
	  end
  end
  
end


-- ca=配寄存器
--cv--改寄存器

function yu(a,b,c)
  gg.setValues({[1]={
      address=a,
      flags=b,
      value=c
    }})
end




function main_aa()
  if #ca==0 or #cv==0 then
    gg.alert("请先初始化")--对话框
    if num == 1 then
	    main_old()
	  end
	  if num == 2 then
	    main_all()
	  end
	  if num == 3 then
	    main_new()
	  end
	  return
  end
  if baoa_f==false then
  main_aa5()
	  yu(cv[1].address,cv[1].flags,0)
	  yu(ca[3].address,ca[3].flags,0)
	  gg.setVisible(false)
	  gg.toast("轰炸消除[成功]")--提示
	  baoa="[ 已开启 ]"
	  baoa_f=true
	  while baoa_f do
	    if gg.isVisible(true) then
	      gg.setVisible(false)
	      if num == 1 then
			    main_old()
			  end
			  if num == 2 then
			    main_all()
			  end
			  if num == 3 then
			    main_new()
			  end
	    end
	  end
  else
  	yu(cv[1].address,cv[1].flags,cv[1].value)
    yu(ca[3].address,ca[3].flags,ca[3].value)
    gg.toast("轰炸消除[关闭]")--提示
    baoa="[ 已关闭 ]"
    baoa_f=false
  end
  
end

function main_aa1()
  if #ca==0 or #cv==0 then
    gg.alert("请先初始化")--对话框
    if num == 1 then
	    main_old()
	  end
	  if num == 2 then
	    main_all()
	  end
	  if num == 3 then
	    main_new()
	  end
	  return
  end
  if baoa_x_f==false then
  main_aa5()
	  yu(cv[1].address,cv[1].flags,1072693248)
	  yu(ca[3].address,ca[3].flags,1072693248)
	  gg.setVisible(false)
	  gg.toast("小轰炸消除[成功]")--提示
	  baoa_x="[ 已开启 ]"
	  baoa_x_f=true
	  while baoa_x_f do
	    if gg.isVisible(true) then
	      gg.setVisible(false)
	      if num == 1 then
			    main_old()
			  end
			  if num == 2 then
			    main_all()
			  end
			  if num == 3 then
			    main_new()
			  end
	    end
	  end
  else
  	yu(cv[1].address,cv[1].flags,cv[1].value)
    yu(ca[3].address,ca[3].flags,ca[3].value)
    gg.toast("小轰炸消除[关闭]")--提示
    baoa_x="[ 已关闭 ]"
    baoa_x_f=false
  end
  
end


function main_aa2()
  if #ca==0 or #cv==0 then
    gg.alert("请先初始化")--对话框
    if num == 1 then
	    main_old()
	  end
	  if num == 2 then
	    main_all()
	  end
	  if num == 3 then
	    main_new()
	  end
	  return
  end
  
  if molia_f==false then
  main_aa5()
	  yu(cv[1].address,cv[1].flags,0)
	  yu(ca[4].address,ca[4].flags,0)
	  gg.setVisible(false)
	  gg.toast("彩魔力鸟[成功]")--提示
	  molia="[ 已开启 ]"
	  molia_f=true
	  while molia_f do
	    if gg.isVisible(true) then
	      gg.setVisible(false)
	      if num == 1 then
			    main_old()
			  end
			  if num == 2 then
			    main_all()
			  end
			  if num == 3 then
			    main_new()
			  end
	    end
	  end
  else
  	yu(cv[1].address,cv[1].flags,cv[1].value)
    yu(ca[4].address,ca[4].flags,ca[4].value)
    gg.toast("彩魔力鸟[关闭]")--提示
    molia="[ 已关闭 ]"
    molia_f=false
  end

end


function main_aa21()
  if #ca==0 or #cv==0 then
    gg.alert("请先初始化")--对话框
    if num == 1 then
	    main_old()
	  end
	  if num == 2 then
	    main_all()
	  end
	  if num == 3 then
	    main_new()
	  end
	  return
  end
  
  if molia_x_f==false then
  main_aa5()
	  yu(cv[1].address,cv[1].flags,1072693248)
	  yu(ca[4].address,ca[4].flags,1072693248)
	  gg.setVisible(false)
	  gg.toast("小彩魔力鸟[成功]")--提示
	  molia_x="[ 已开启 ]"
	  molia_x_f=true
	  while molia_x_f do
	    if gg.isVisible(true) then
	      gg.setVisible(false)
	      if num == 1 then
			    main_old()
			  end
			  if num == 2 then
			    main_all()
			  end
			  if num == 3 then
			    main_new()
			  end
	    end
	  end
  else
  	yu(cv[1].address,cv[1].flags,cv[1].value)
    yu(ca[4].address,ca[4].flags,ca[4].value)
    gg.toast("小彩魔力鸟[关闭]")--提示
    molia_x="[ 已关闭 ]"
    molia_x_f=false
  end

end


function main_aa3()
  if #ca==0 or #cv==0 then
    gg.alert("请先初始化")--对话框
    if num == 1 then
	    main_old()
	  end
	  if num == 2 then
	    main_all()
	  end
	  if num == 3 then
	    main_new()
	  end
	  return
  end

	if henga_f==false then
	main_aa5()
	  yu(cv[1].address,cv[1].flags,0)
	  yu(ca[2].address,ca[2].flags,0)
	  gg.setVisible(false)
	  gg.toast("横向消除[成功]")--提示
	  henga="[ 已开启 ]"
	  henga_f=true
	  while henga_f do
	    if gg.isVisible(true) then
	      gg.setVisible(false)
	      if num == 1 then
			    main_old()
			  end
			  if num == 2 then
			    main_all()
			  end
			  if num == 3 then
			    main_new()
			  end
	    end
	  end
  else
  	yu(cv[1].address,cv[1].flags,cv[1].value)
    yu(ca[2].address,ca[2].flags,ca[2].value)
    gg.toast("横向消除[关闭]")--提示
    henga="[ 已关闭 ]"
    henga_f=false
  end


end


function main_aa31()
  if #ca==0 or #cv==0 then
    gg.alert("请先初始化")--对话框
    if num == 1 then
	    main_old()
	  end
	  if num == 2 then
	    main_all()
	  end
	  if num == 3 then
	    main_new()
	  end
	  return
  end

	if henga_x_f==false then
	main_aa5()
	  yu(cv[1].address,cv[1].flags,1072693248)
	  yu(ca[2].address,ca[2].flags,1072693248)
	  gg.setVisible(false)
	  gg.toast("小横向消除[成功]")--提示
	  henga_x="[ 已开启 ]"
	  henga_x_f=true
	  while henga_x_f do
	    if gg.isVisible(true) then
	      gg.setVisible(false)
	      if num == 1 then
			    main_old()
			  end
			  if num == 2 then
			    main_all()
			  end
			  if num == 3 then
			    main_new()
			  end
	    end
	  end
  else
  	yu(cv[1].address,cv[1].flags,cv[1].value)
    yu(ca[2].address,ca[2].flags,ca[2].value)
    gg.toast("小横向消除[关闭]")--提示
    henga_x="[ 已关闭 ]"
    henga_x_f=false
  end


end


function main_aa4()
  if #ca==0 or #cv==0 then
    gg.alert("请先初始化")--对话框
    if num == 1 then
	    main_old()
	  end
	  if num == 2 then
	    main_all()
	  end
	  if num == 3 then
	    main_new()
	  end
	  return
  end
  
  if shua_f==false then
  main_aa5()
	  yu(cv[1].address,cv[1].flags,0)
	  yu(ca[1].address,ca[1].flags,0)
	  gg.setVisible(false)
	  gg.toast("竖向消除[成功]")--提示
	  shua="[ 已开启 ]"
	  shua_f=true
	  while shua_f do
	    if gg.isVisible(true) then
	      gg.setVisible(false)
	      if num == 1 then
			    main_old()
			  end
			  if num == 2 then
			    main_all()
			  end
			  if num == 3 then
			    main_new()
			  end
	    end
	  end
  else
  	yu(cv[1].address,cv[1].flags,cv[1].value)
    yu(ca[1].address,ca[1].flags,ca[1].value)
    gg.toast("竖向消除[关闭]")--提示
    shua="[ 已关闭 ]"
    shua_f=false
  end

end


function main_aa41()
  if #ca==0 or #cv==0 then
    gg.alert("请先初始化")--对话框
    if num == 1 then
	    main_old()
	  end
	  if num == 2 then
	    main_all()
	  end
	  if num == 3 then
	    main_new()
	  end
	  return
  end
  
  if shua_x_f==false then
  main_aa5()
	  yu(cv[1].address,cv[1].flags,1072693248)
	  yu(ca[1].address,ca[1].flags,1072693248)
	  gg.setVisible(false)
	  gg.toast("小竖向消除[成功]")--提示
	  shua_x="[ 已开启 ]"
	  shua_x_f=true
	  while shua_x_f do
	    if gg.isVisible(true) then
	      gg.setVisible(false)
	      if num == 1 then
			    main_old()
			  end
			  if num == 2 then
			    main_all()
			  end
			  if num == 3 then
			    main_new()
			  end
	    end
	  end
  else
  	yu(cv[1].address,cv[1].flags,cv[1].value)
    yu(ca[1].address,ca[1].flags,ca[1].value)
    gg.toast("小竖向消除[关闭]")--提示
    shua_x="[ 已关闭 ]"
    shua_x_f=false
  end

end


function main_aa5()
  if #ca==0 or #cv==0 then
    gg.alert("请先初始化")--对话框
    if num == 1 then
	    main_old()
	  end
	  if num == 2 then
	    main_all()
	  end
	  if num == 3 then
	    main_new()
	  end
	  return
  end

  if shua_f==true then
  	yu(cv[1].address,cv[1].flags,cv[1].value)
    yu(ca[1].address,ca[1].flags,ca[1].value)
    gg.toast("竖向消除[关闭]")--提示
    shua="[ 已关闭 ]"
    shua_f=false
  end
  if henga_f==true then
  	henga="[ 已关闭 ]"
    henga_f=false
    yu(cv[1].address,cv[1].flags,cv[1].value)
    yu(ca[2].address,ca[2].flags,ca[2].value)
    gg.toast("横向消除[关闭]")--提示
  end
  if baoa_f==true then
  	baoa="[ 已关闭 ]"
    baoa_f=false
    yu(cv[1].address,cv[1].flags,cv[1].value)
    yu(ca[3].address,ca[3].flags,ca[3].value)
    gg.toast("轰炸消除[关闭]")--提示 
  end
  if molia_f==true then
  	molia="[ 已关闭 ]"
    molia_f=false
  	yu(cv[1].address,cv[1].flags,cv[1].value)
    yu(ca[4].address,ca[4].flags,ca[4].value)
    gg.toast("彩魔力鸟[关闭]")--提示
  end
  
  if shua_x_f==true then
  	yu(cv[1].address,cv[1].flags,cv[1].value)
    yu(ca[1].address,ca[1].flags,ca[1].value)
    gg.toast("小竖向消除[关闭]")--提示
    shua_x="[ 已关闭 ]"
    shua_x_f=false
  end
  if henga_x_f==true then
  	henga_x="[ 已关闭 ]"
    henga_x_f=false
    yu(cv[1].address,cv[1].flags,cv[1].value)
    yu(ca[2].address,ca[2].flags,ca[2].value)
    gg.toast("小横向消除[关闭]")--提示
  end
  if baoa_x_f==true then
  	baoa_x="[ 已关闭 ]"
    baoa_x_f=false
    yu(cv[1].address,cv[1].flags,cv[1].value)
    yu(ca[3].address,ca[3].flags,ca[3].value)
    gg.toast("小轰炸消除[关闭]")--提示 
  end
  if molia_x_f==true then
  	molia_x="[ 已关闭 ]"
    molia_x_f=false
  	yu(cv[1].address,cv[1].flags,cv[1].value)
    yu(ca[4].address,ca[4].flags,ca[4].value)
    gg.toast("小彩魔力鸟[关闭]")--提示
  end
end




----------加载首页----------
function firstMain()
gg.setVisible(false)
main_home()
end

firstMain()

while true do
	if gg.isVisible(true) then
		gg.setVisible(false)
----------主页页面停留----------
if(num == 0) then main_home()
----------功能页面停留----------
elseif(num == 1) then main_old()
elseif(num == 2) then main_all()
elseif(num == 3) then main_new()
end end end


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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(AMI_YDO.."/km","r"),io.open(AMI_YDO.."/miux","r"),io.open(AMI_YDO.."/lko","r")}

if fien[1]==nil then
io.open(AMI_YDO.."/km","w"):write("")--写
a[1]=io.open(AMI_YDO.."/km","r"):read("*a")--读
else
a[1]=io.open(AMI_YDO.."/km","r"):read("*a")--读
end--fien[1]--卡密

if fien[2]==nil then
io.open(AMI_YDO.."/miux","w"):write(md5(rq))--写
a[2]=io.open(AMI_YDO.."/miux","r"):read("*a")--读
else
a[2]=io.open(AMI_YDO.."/miux","r"):read("*a")--读
end--fien[2]--机器码

fien2=io.open(AMI_YDO.."/miux","r"):read("*a")--读
if fien2=="" then
io.open(AMI_YDO.."/miux","w"):write(md5(rq))--写
fien2=io.open(AMI_YDO.."/miux","r"):read("*a")--读
a[2]=fien2
end

if fien[3]==nil then
io.open(AMI_YDO.."/lko","w"):write("false")--写
a[3]=io.open(AMI_YDO.."/lko","r"):read("*a")--读
else
a[3]=io.open(AMI_YDO.."/lko","r"):read("*a")--读
end--fien[2]--机器码

fien3=io.open(AMI_YDO.."/lko","r"):read("*a")--读
if fien3=="" then
io.open(AMI_YDO.."/lko","w"):write("false")--写
fien3=io.open(AMI_YDO.."/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[本脚本使用："..file.msg.api_total.." 次]\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(AMI_YDO.."/lko","w"):write("true")--写
elseif hak[2]==false then
io.open(AMI_YDO.."/lko","w"):write("false")--写
end

yanzzzzz(hak[1],sbm)
---[=[  ↑ 输入卡密跳转登入卡密  ]=]-------------------------------------------------------------------------------------------------------------------
end

end


while true do
  if gg.isVisible(true) then
  MAIN_C()
  end
end

