---功能前置写这里↓下边UI配置区调用 get=gg.getTargetInfo() if get.label=='迷你世界' then else gg.alert("提示:当前进程为"..get.label..",辅助只能选择迷你进程才能开启成功,请切换进程后再开启")os.exit()end function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do 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 xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) xgsl = xgsl + 1 end end function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "\n开启失败") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "\n开启失败") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. 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 xgxc(szpy, qmxg) xgjg = true end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "\n开启成功\n注入" .. xgsl .. "\n条数据") else gg.toast(qmnb[2]["name"] .. "\n开启失败") end end end end lde={} lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults function so(a,b,c) local csn=gg.getRanges() lde.srg(a[3]) lde.crs() lde.sbr(a[2],a[4]) local js=gg.getResultCount() local count=lde.gre(js) lde.crs() if #count~=0 then local lode,lope,lobe={},{},{} for p=1,#b do lode[p]={} for i=1,#count do lode[p][i]={} lode[p][i].address=count[i].address+b[p][2] if not b[p][3] then b[p][3]=a[4] end lode[p][i].flags=b[p][3] end lode[p]=gg.getValues(lode[p]) db=bv(b[p][1],"~") if not db[2] then db[2]=db[1] end for i=1,#lode[p] do if tonumber(lode[p][i].value)>=tonumber(db[1]) and tonumber(lode[p][i].value)<=tonumber(db[2]) then lope[#lope+1]={} lope[#lope]=count[i] end end if #lope==0 then lde.srg(csn) if p>11 then p=11 end return a[1].."开启失败" end count=lope lope={} end for i=1,#c do for n=1,#count do lope[#lope+1]={} lope[#lope].address=count[n].address+c[i][2] if not c[i][3] then c[i][3]=a[4] end lope[#lope].flags=c[i][3] if c[i][1] then lope[#lope].value=c[i][1] else lope[#lope].value=gg.getValues(lope)[#lope].value end if c[i][4] then lobe[#lobe+1]={} lobe[#lobe]=lope[#lope] table.remove(lope,#lope) end if c[i][4]==1 then lobe[#lobe].freeze=true else if c[i][4]==2 then lobe[#lobe].freeze=false end end if c[i][5] then lobe[#lobe].name=c[i][5] end end end gg.setValues(lope) gg.addListItems(lobe) lde.srg(csn) return a[1].."开启成功" else lde.srg(csn) return a[1].."开启失败" end end lde,mnsj={},{Dj="0.01",dv={},lz="/sdcard/.zbb",r={}} lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults function lde.qb()table.remove(bc,#bc)table.remove(bc,#bc)end function bv(a,b) if not b then b=","end if not tostring(a):find(b)then return{a}end local tab={}local i=0 while true do j=string.find(a,b,i+1) if not j then table.insert(tab,a:sub(i+1,#a)) break end table.insert(tab,a:sub(i+1,j-1)) i=j end return tab end function so(a,b,c) local csn=gg.getRanges() gg.setVisible(false) lde.srg(a[3]) lde.crs() lde.sbr(a[2],a[4]) local js=gg.getResultCount() local count=lde.gre(js) lde.crs() if #count~=0 then local lode,lope,lobe={},{},{} for p=1,#b do lode[p]={} for i=1,#count do lode[p][i]={} lode[p][i].address=count[i].address+b[p][2] if not b[p][3]then b[p][3]=a[4]end lode[p][i].flags=b[p][3]end lode[p]=gg.getValues(lode[p]) db=bv(b[p][1],"~") if not db[2]then db[2]=db[1]end for i=1,#lode[p] do if tonumber(lode[p][i].value)>=tonumber(db[1]) and tonumber(lode[p][i].value)<=tonumber(db[2]) then lope[#lope+1]={} lope[#lope]=count[i] end end if #lope==0 then lde.srg(csn)if p>11 then p=11 end return "开启失败" end count=lope lope={}end for i=1,#c do for n=1,#count do lope[#lope+1]={} lope[#lope].address=count[n].address+c[i][2] if not c[i][3]then c[i][3]=a[4]end lope[#lope].flags=c[i][3] if c[i][1] then lope[#lope].value=c[i][1] else lope[#lope].value=gg.getValues(lope)[#lope].value end if c[i][4] then lobe[#lobe+1]={} lobe[#lobe]=lope[#lope] table.remove(lope,#lope) end if c[i][4]==1 then lobe[#lobe].freeze=true elseif c[i][4]==2 then lobe[#lobe].freeze=false end if c[i][5] then lobe[#lobe].name=c[i][5] end end end gg.setValues(lope) gg.addListItems(lobe) lde.srg(csn) return a[1].."开启成功" else lde.srg(csn) return a[1].."开启失败!!!" end end function Address(adds,offset,chang,value,flags,freeze,save,name)local add=gg.getRangesList(adds)[1]["start"]+offset local data={{["address"]=add,["value"]=value,["flags"]=flags,["freeze"]=freeze}}if chang==true then gg.setValues(data)end if freeze or save ==true then gg.addListItems(data)end if name~="false" then gg.toast("🛡["..name.."]已注入🛡")end end function S_Pointer(t_So, t_Offset, _bit)local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end 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 then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end function editData(qmnb,qmxg)gg.setVisible(false)gg.clearResults()qmnbv=qmnb[3]["value"]or qmnb[3][1]qmnbt=qmnb[3]["type"]or qmnb[3][2]qmnbn=qmnb[2]["name"]or qmnb[2][1]gg.setRanges(qmnb[1]["memory"]or qmnb[1][1])gg.searchNumber(qmnbv,qmnbt)gg.refineNumber(qmnbv,qmnbt)sz=gg.getResultCount()if sz==0 then gg.toast(qmnbn.."开启失败")else sl=gg.getResults(999999)for i=1,sz do pdsz=true for v=4,#qmnb do if pdsz==true then pysz={{}}pysz[1].address=sl[i].address+(qmnb[v]["offset"]or qmnb[v][2])pysz[1].flags=qmnb[v]["type"]or qmnb[v][3]szpy=gg.getValues(pysz)tzszpd=tostring(qmnb[v]["lv"]or qmnb[v][1]):gsub(",","")pyszpd=tostring(szpy[1].value):gsub(",","")if tzszpd==pyszpd then pdjg=true pdsz=true else pdjg=false pdsz=false end end end if pdjg==true then szpy=sl[i].address for x=1,#qmxg do xgsz=qmxg[x]["value"]or qmxg[x][1]xgpy=szpy+(qmxg[x]["offset"]or qmxg[x][2])xglx=qmxg[x]["type"]or qmxg[x][3]xgdj=qmxg[x]["freeze"]or qmxg[x][4]xg={{address=xgpy,flags=xglx,value=xgsz}}if xgdj==true then xg[1].freeze=xgdj gg.addListItems(xg)else gg.setValues(xg)end end xgjg=true end end if xgjg==true then gg.toast(qmnbn.."开启成功\n用时:"..os.clock()-time.."秒")else gg.toast(qmnbn.."开启失败")end end end D=gg.TYPE_DWORD E=gg.TYPE_DOUBLE F=gg.TYPE_FLOAT W=gg.TYPE_WORD B=gg.TYPE_BYTE X=gg.TYPE_XOR Q=gg.TYPE_QWORD function SearchWrite(Search, Write, Type)gg.clearResults()gg.setVisible(false)gg.searchNumber(Search[1][1], Type)local count = gg.getResultCount()local result = gg.getResults(count)gg.clearResults()local data = {}local base = Search[1][2]if (count > 0) then for i, v in ipairs(result) do v.isUseful = true end for k=2, #Search do local tmp = {}local offset = Search[k][2] - base local num = Search[k][1]for i, v in ipairs(result) do tmp[#tmp+1] = {} tmp[#tmp].address = v.address + offset tmp[#tmp].flags = v.flags 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 gg.toast("已搜索到"..#data.."条数据")local t = {}local base = Search[1][2]for i=1, #data do for k, w in ipairs(Write) do offset = w[2] - base t[#t+1] = {} t[#t].address = data[i] + offset t[#t].flags = Type t[#t].value = w[1] if (w[3] == true) then local item = {} item[#item+1] = t[#t] item[#item].freeze = true gg.addListItems(item) end end end gg.setValues(t)else gg.toast("not found", false)return false end else gg.toast("Not Found")return false end end function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do 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 xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) xgsl = xgsl + 1 end end function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "\n开启失败") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "\n开启失败") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. 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 xgxc(szpy, qmxg) xgjg = true end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "\n开启成功\n注入" .. xgsl .. "\n条数据") else gg.toast(qmnb[2]["name"] .. "\n开启失败") end end end end function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function PS() end function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function AppSearch(SSNR,XGNR,BCNR,notWrite)gg.clearResults()gg.setRanges(SSNR["M"])gg.searchNumber(SSNR[1]["mv"],SSNR[1]["lx"],false,gg.SIGN_EQUAL,(SSNR[1]["addr"] or nil),(SSNR[1]["toAddr"] or nil))jg=gg.getResults(100000)local base=(SSNR[1]["offs"] or 0)local data={}if #jg==0 then gg.toast("功能名:"..(SSNR.name or "无").."\n".."修改失败\n"..(SSNR["error"] or ""))gg.loadResults(recover)return nil end for i=1,#jg do jg[i].Useful=true end for k=2,#SSNR do if not SSNR[k] then break end local content={} local offset=SSNR[k]["offs"]-base local value=SSNR[k]["sv"] local type=SSNR[k]["lx"] local to=(SSNR[k]["to"] or value) local num={}if totonumber(to) then jg[num[i]].Useful=false end end end for j=1,#jg do if jg[j].Useful==true then data[#data+1]=jg[j].address end end if #data==0 then gg.toast("功能名:"..(SSNR.name or "无").."\n".."修改失败\n"..(SSNR["error"] or ""))gg.loadResults(recover)return nil end if notWrite==true then gg.loadResults(recover)return data end if XGNR then local write={} for i=1,#data do for j=1,#XGNR do write[#write+1]={}write[#write].address=data[i]+(XGNR[j][2]-base)write[#write].flags=XGNR[j][3]write[#write].value=XGNR[j][1]write[#write].freeze=XGNR[j][4]write[#write].name=XGNR[j][5] or nil if write[#write].freeze==true then gg.addListItems({[1]=write[#write]})else gg.setValues({[1]=write[#write]})end if XGNR[j][6]==true then gg.addListItems({[1]=write[#write]})end end end end if BCNR then local bc={}for j=1,#data do for i=1,#BCNR do bc[#bc+1]={} bc[#bc].address=data[j]+(BCNR[i][1]-base) bc[#bc].flags=BCNR[i][2]bc[#bc].name=BCNR[i][3]end end gg.addListItems(bc)end gg.toast("功能名:"..(SSNR.name or "无").."\n".."修改成功") gg.loadResults(recover)end lde,mnsj={},{Dj="0.01",dv={},lz="/sdcard/.zbb",r={}} lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults function lde.qb()table.remove(bc,#bc)table.remove(bc,#bc)end function bv(a,b) if not b then b=","end if not tostring(a):find(b)then return{a}end local tab={}local i=0 while true do j=string.find(a,b,i+1) if not j then table.insert(tab,a:sub(i+1,#a)) break end table.insert(tab,a:sub(i+1,j-1)) i=j end return tab end function so(a,b,c) local csn=gg.getRanges() gg.setVisible(false) lde.srg(a[3]) lde.crs() lde.sbr(a[2],a[4]) local js=gg.getResultCount() local count=lde.gre(js) lde.crs() if #count~=0 then local lode,lope,lobe={},{},{} for p=1,#b do lode[p]={} for i=1,#count do lode[p][i]={} lode[p][i].address=count[i].address+b[p][2] if not b[p][3]then b[p][3]=a[4]end lode[p][i].flags=b[p][3]end lode[p]=gg.getValues(lode[p]) db=bv(b[p][1],"~") if not db[2]then db[2]=db[1]end for i=1,#lode[p] do if tonumber(lode[p][i].value)>=tonumber(db[1]) and tonumber(lode[p][i].value)<=tonumber(db[2]) then lope[#lope+1]={} lope[#lope]=count[i] end end if #lope==0 then lde.srg(csn)if p>11 then p=11 end return "开启失败" end count=lope lope={}end for i=1,#c do for n=1,#count do lope[#lope+1]={} lope[#lope].address=count[n].address+c[i][2] if not c[i][3]then c[i][3]=a[4]end lope[#lope].flags=c[i][3] if c[i][1] then lope[#lope].value=c[i][1] else lope[#lope].value=gg.getValues(lope)[#lope].value end if c[i][4] then lobe[#lobe+1]={} lobe[#lobe]=lope[#lope] table.remove(lope,#lope) end if c[i][4]==1 then lobe[#lobe].freeze=true elseif c[i][4]==2 then lobe[#lobe].freeze=false end if c[i][5] then lobe[#lobe].name=c[i][5] end end end gg.setValues(lope) gg.addListItems(lobe) lde.srg(csn) return a[1].."开启成功" else lde.srg(csn) return a[1].."开启失败!!!" end end function fastsearch(name,offset,i)local re=gg.getRangesList(name) local x64=gg.getTargetInfo().x64 local va={[true]=32,[false]=4} if re[i or 1]then local addr=re[i or 1].start+offset[1]for i=2,#offset do addr=gg.getValues({{address=addr,flags=va[x64]}}) if not x64 then addr[1].value=addr[1].value&0xFFFFFFFF end addr=addr[1].value+offset[i] end return addr end end function gg.edits(addr,Table,name) local Table1={{},{}} for k,v in ipairs(Table) do local value={address=addr+v[3],value=v[1],flags=v[2],freeze=v[4]} if v[4] then Table1[2][#Table1[2]+1]=value else Table1[1][#Table1[1]+1]=value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) gg.toast((name or "") .. "开启成功, 共修改"..#Table.."个值")end j={}xgz={}ZY='Main'gg.clearResults()sj={}xgz={} function search(ss,lx,nc,dz1,dz2)if ss~=nil then if lx~=nil then if nc==nil then nc=32 end gg.setRanges(nc)if dz1==nil then dz1="-1" end if dz2==nil then dz1="0" end gg.searchNumber(ss,lx,false,gg.SIGN_EQUAL,dz1,dz2)sl=gg.getResultCount()if sl~=0 then sj=gg.getResults(sl)gg.toast("搜索到 "..sl.." 个结果")gg.clearResults()else end else end else end end function py1(value,lx,py)if #sj~=nil then z1={} z2={}for i=1,#sj do z1[1]={}z1[1].address=sj[i].address+py z1[1].flags=lx z1=gg.getValues(z1) if z1[1].value==value then z2[#z2+1]={} z2[#z2]=sj[i] end end sj=z2 z1={} z2={}else end end function py2(value,lx,py)if #sj~=nil then z1={} z2={}for i=1,#sj do z1[1]={} z1[1].address=sj[i].address+py z1[1].flags=lx z1=gg.getValues(z1)if z1[1].value~=value then z2[#z2+1]={}z2[#z2]=sj[i]end end sj=z2 z1={} z2={}else end end function xg1(value,lx,py,dj) if #sj~=nil then z={}for i=1,#sj do z[i]={} z[i].address=sj[i].address+py z[i].flags=lx z[i].value=value if dj==true then z[i].freeze=true end end if dj==true then gg.addListItems(z)else gg.clearList()gg.setValues(z)end else end end function xg2(bz,value,lx,py,dj)if #bz~=nil then z={}for i=1,#bz do z[i]={} z[i].address=bz[i].address+py z[i].flags=lx z[i].value=value if dj==true then z[i].freeze=true end end if dj==true then gg.addListItems(z)else gg.clearList()gg.setValues(z)end gg.toast("共修改 "..#z.." 个数据")else end end function bc(bz)if sj~=nil then _ENV[bz]=sj else end end function Fs3Fs4(Fs1, Fs2, Fs3, Fs4, Fs5) gg.clearResults() gg.setRanges(Fs2) gg.setVisible(false) gg.searchNumber(Fs3[1][1], Fs3[1][3]) local count = gg.getResultCount() local result = gg.getResults(count) gg.clearResults() local data = {} local base = Fs3[1][2] if (count > 0) then for i, v in ipairs(result) do v.isUseful = true end for k=2, #Fs3 do local tmp = {} local offset = Fs3[k][2] - base local num = Fs3[k][1] for i, v in ipairs(result) do tmp[#tmp+1] = {} tmp[#tmp].address = v.address + offset tmp[#tmp].flags = Fs3[k][3] 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 gg.toast(Fs1..'\n搜索到{'..#data..'}条数据') local t = {} local base = Fs3[1][2] if Fs5 == '' and Fs5 > 0 and Fs5 < #data then Fs5 = Fs5 else Fs5 = #data end for i=1, Fs5 do for k, w in ipairs(Fs4) do offset = w[2] - base t[#t+1] = {} t[#t].address = data[i] + offset t[#t].flags = w[3] t[#t].value = w[1] if (w[4] == true) then local item = {} item[#item+1] = t[#t] item[#item].freeze = true gg.addListItems(item) end end end gg.setValues(t) gg.toast(Fs1..'️\n已修改{'..#t..'}条数据') else gg.toast(Fs1..'\n数据搜索失败', false) return false end else gg.toast(Fs1..'\n数据修改失败', false) return false end end local il2cppStart = 0 for k, v in pairs(gg.getRangesList('libil2cpp.so$')) do if (v.state == 'Xa') then il2cppStart = v['start']break end end --数 据 冻 结 控 制 gg.clearResults()A=gg.TYPE_AUTO D=gg.TYPE_DWORD F=gg.TYPE_FLOAT E=gg.TYPE_DOUBLE w=gg.TYPE_WORD B=gg.TYPE_BYTE Q=gg.TYPE_QWORD X=gg.TYPE_XOR function gg.modify(A,B,C,D,E,F,G,H,I)gg.clearResults()gg.setRanges(G)gg.searchNumber(A, B, false, gg.SIGN_EQUAL, 0, -1)gg.searchNumber(A, B, false, gg.SIGN_EQUAL, 0, -1)gg.searchNumber(A, B, false, gg.SIGN_EQUAL, 0, -1)gg.getResults(100)local GG=gg.getResultCount()if GG >= 1000 then gg.clearList()gg.clearResults()gg.alert("当前搜索内存数量:"..GG.."\n超过临界数量\n为防止游戏崩溃已自动结束操作")goto load end gg.editAll(C, D,E)gg.toast(H.."开启成功,共修改"..GG.."条数据")gg.clearList()gg.clearResults()if I == nil then I=""end pcall(load(I))::load:: pcall(load(F))gg.clearList()gg.clearResults()end --数 据 冻 结 控 制 gg.clearResults()A=gg.TYPE_AUTO D=gg.TYPE_DWORD F=gg.TYPE_FLOAT E=gg.TYPE_DOUBLE w=gg.TYPE_WORD B=gg.TYPE_BYTE Q=gg.TYPE_QWORD X=gg.TYPE_XOR function gg.modify(A,B,C,D,E,F,G,H,I)gg.clearResults()gg.setRanges(G)gg.searchNumber(A, B, false, gg.SIGN_EQUAL, 0, -1)gg.searchNumber(A, B, false, gg.SIGN_EQUAL, 0, -1)gg.searchNumber(A, B, false, gg.SIGN_EQUAL, 0, -1)gg.getResults(10)local GG=gg.getResultCount()if GG >= 1000 then gg.clearList()gg.clearResults()gg.alert("当前搜索内存数量:"..GG.."\n超过临界数量\n为防止游戏崩溃已自动结束操作")goto load end gg.editAll(C, D,E)gg.toast(H.."开启成功,共修改"..GG.."条数据")gg.clearList()gg.clearResults()if I == nil then I=""end pcall(load(I))::load:: pcall(load(F))gg.clearList()gg.clearResults()end function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do 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 xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] xgdj = qmxg[x]["freeze"] if xgdj == nil or xgdj == "" then gg.setValues({[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 xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败!!!") gg.clearResults() else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败!!!") gg.clearResults() else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. 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 xgxc(szpy, qmxg) end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "开启成功") gg.clearResults() else gg.toast(qmnb[2]["name"] .. "开启失败!!!") gg.clearResults() end end end end function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x167ba0fe) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end 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 then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address print(string.char(231,190,164,58).._Q) end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end --反ace recover=gg.getResults(100000) function AppSearch(SSNR,XGNR,BCNR,notWrite) gg.clearResults() gg.setRanges(SSNR["M"]) gg.searchNumber(SSNR[1]["mv"],SSNR[1]["lx"],false,gg.SIGN_EQUAL,(SSNR[1]["addr"] or nil),(SSNR[1]["toAddr"] or nil)) jg=gg.getResults(100000) local base=(SSNR[1]["offs"] or 0) local data={} if #jg==0 then gg.alert("功能名:"..(SSNR.name or "无").."\n".."修改失败\n"..(SSNR["error"] or "")) gg.loadResults(recover) return nil end for i=1,#jg do jg[i].Useful=true end for k=2,#SSNR do if not SSNR[k] then break end local content={} local offset=SSNR[k]["offs"]-base local value=SSNR[k]["sv"] local type=SSNR[k]["lx"] local to=(SSNR[k]["to"] or value) local num={} if totonumber(to) then jg[num[i]].Useful=false end end end for j=1,#jg do if jg[j].Useful==true then data[#data+1]=jg[j].address end end if #data==0 then gg.alert("功能名:"..(SSNR.name or "无").."\n".."修改失败\n"..(SSNR["error"] or "")) gg.loadResults(recover) return nil end if notWrite==true then gg.loadResults(recover) return data end if XGNR then local write={} for i=1,#data do for j=1,#XGNR do write[#write+1]={} write[#write].address=data[i]+(XGNR[j][2]-base) write[#write].flags=XGNR[j][3] write[#write].value=XGNR[j][1] write[#write].freeze=XGNR[j][4] write[#write].name=XGNR[j][5] or nil if write[#write].freeze==true then gg.addListItems({[1]=write[#write]}) else gg.setValues({[1]=write[#write]}) end if XGNR[j][6]==true then gg.addListItems({[1]=write[#write]}) end end end end if BCNR then local bc={} for j=1,#data do for i=1,#BCNR do bc[#bc+1]={} bc[#bc].address=data[j]+(BCNR[i][1]-base) bc[#bc].flags=BCNR[i][2] bc[#bc].name=BCNR[i][3] end end gg.addListItems(bc) end gg.toast("功能名:"..(SSNR.name or "无").."\n".."修改成功") gg.loadResults(recover) end recover=gg.getResults(100000) function AppSearch(SSNR,XGNR,BCNR,notWrite) gg.clearResults() gg.setRanges(SSNR["M"]) gg.searchNumber(SSNR[1]["mv"],SSNR[1]["lx"],false,gg.SIGN_EQUAL,(SSNR[1]["addr"] or nil),(SSNR[1]["toAddr"] or nil)) jg=gg.getResults(100000) local base=(SSNR[1]["offs"] or 0) local data={} if #jg==0 then gg.toast("功能名:"..(SSNR.name or "无").."\n".."修改失败\n"..(SSNR["error"] or "")) gg.loadResults(recover) return nil end for i=1,#jg do jg[i].Useful=true end for k=2,#SSNR do if not SSNR[k] then break end local content={} local offset=SSNR[k]["offs"]-base local value=SSNR[k]["sv"] local type=SSNR[k]["lx"] local to=(SSNR[k]["to"] or value) local num={} if totonumber(to) then jg[num[i]].Useful=false end end --↑ end for j=1,#jg do if jg[j].Useful==true then data[#data+1]=jg[j].address end end if #data==0 then gg.toast("功能名:"..(SSNR.name or "无").."\n".."修改失败\n"..(SSNR["error"] or "")) gg.loadResults(recover) return nil end if notWrite==true then gg.loadResults(recover) return data end if XGNR then local write={} for i=1,#data do for j=1,#XGNR do write[#write+1]={} write[#write].address=data[i]+(XGNR[j][2]-base) write[#write].flags=XGNR[j][3] write[#write].value=XGNR[j][1] write[#write].freeze=XGNR[j][4] write[#write].name=XGNR[j][5] or nil if write[#write].freeze==true then gg.addListItems({[1]=write[#write]}) else gg.setValues({[1]=write[#write]}) end if XGNR[j][6]==true then gg.addListItems({[1]=write[#write]}) end end end end if BCNR then local bc={} for j=1,#data do for i=1,#BCNR do bc[#bc+1]={} bc[#bc].address=data[j]+(BCNR[i][1]-base) bc[#bc].flags=BCNR[i][2] bc[#bc].name=BCNR[i][3] end end gg.addListItems(bc) end gg.toast("功能名:"..(SSNR.name or "无").."\n".."开启成功") gg.loadResults(recover) end function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do 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 xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] xgdj = qmxg[x]["freeze"] if xgdj == nil or xgdj == "" then gg.setValues({[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 xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败!!!") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败!!!") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. 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 xgxc(szpy, qmxg) end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "开启成功,改" .. xgsl .. "条代码") else gg.toast(qmnb[2]["name"] .. "开启失败!!!") end end end end function SearchWrite(tb1, tb2, dataType, Name) local lt1={} local lt2={} local mm1={["主特征码"] = tb1[1][1],["类型"] = dataType } table.insert(lt1,1,mm1) for i=2 , #tb1 do local mm2={["副特征码"] = tb1[i][1],["偏移"] = tb1[i][2]} table.insert(lt1,i,mm2) end for i=1 , #tb2 do if tb2[i][2]~=nil then local mm3={["修改"] = tb2[i][1],["偏移"] = tb2[i][2]} table.insert(lt2,i,mm3) else local mm3={["修改"] = false,["偏移"] = tb2[i][1]} table.insert(lt2,i,mm3) end end LongTao(lt1, lt2 ) end function LongTao(Search, Write) gg.clearResults() gg.setVisible(false) lx=Search[1]["类型"] gg.searchNumber(Search[1]["主特征码"], lx) local count = gg.getResultCount() local result = gg.getResults(count) gg.clearResults() local data = {} if (count > 0) then gg.toast("共搜索 "..count.." 条数据") 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]["类型"]~= nil then lx =Search[k]["类型"] else lx = Search[1]["类型"] 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["类型"] ~= nil then lx = w["类型"] else lx = Search[1]["类型"] 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) gg.toast("共偏移η"..#t.." 条代码ΔΘ") else gg.toast("未定位到代码!") return false end else gg.toast("未定位到代码!") return false end end 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 gg.clearResults() gg.setRanges(memory) gg.searchNumber(array[1].lv .. "~" .. array[1].hv, datatype[1]) else gg.clearResults() gg.setRanges(memory) gg.searchNumber(array[1].lv, datatype[1]) end if gg.getResultCount() == 0 then return false else local tab = {} local data = gg.getResults(gg.getResultCount()) gg.clearResults() for i = 1, #data do data[i].isok = 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 if tonumber(t[z].value) < tonumber(array[i].lv) or tonumber(t[z].value) > tonumber(array[i].hv) then data[z].isok = false end else if tostring(t[z].value) ~= tostring(array[i].lv) then data[z].isok = false end end end end for i = 1, #data do if data[i].isok then tab[#tab + 1] = data[i].address end end if #tab > 0 then return true, tab else return 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 else return 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 return gg.addListItems(t) else return gg.setValues(t) end else return false end end function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function PS() end function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end lde,mnsj={},{Dj="0.01",dv={},lz="/sdcard/.zbb",r={}} lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults function lde.qb()table.remove(bc,#bc)table.remove(bc,#bc)end function bv(a,b) if not b then b=","end if not tostring(a):find(b)then return{a}end local tab={}local i=0 while true do j=string.find(a,b,i+1) if not j then table.insert(tab,a:sub(i+1,#a)) break end table.insert(tab,a:sub(i+1,j-1)) i=j end return tab end function so(a,b,c) local csn=gg.getRanges() gg.setVisible(false) lde.srg(a[3]) lde.crs() lde.sbr(a[2],a[4]) local js=gg.getResultCount() local count=lde.gre(js) lde.crs() if #count~=0 then local lode,lope,lobe={},{},{} for p=1,#b do lode[p]={} for i=1,#count do lode[p][i]={} lode[p][i].address=count[i].address+b[p][2] if not b[p][3]then b[p][3]=a[4]end lode[p][i].flags=b[p][3]end lode[p]=gg.getValues(lode[p]) db=bv(b[p][1],"~") if not db[2]then db[2]=db[1]end for i=1,#lode[p] do if tonumber(lode[p][i].value)>=tonumber(db[1]) and tonumber(lode[p][i].value)<=tonumber(db[2]) then lope[#lope+1]={} lope[#lope]=count[i] end end if #lope==0 then lde.srg(csn)if p>11 then p=11 end return "开启失败!!!" end count=lope lope={}end for i=1,#c do for n=1,#count do lope[#lope+1]={} lope[#lope].address=count[n].address+c[i][2] if not c[i][3]then c[i][3]=a[4]end lope[#lope].flags=c[i][3] if c[i][1] then lope[#lope].value=c[i][1] else lope[#lope].value=gg.getValues(lope)[#lope].value end if c[i][4] then lobe[#lobe+1]={} lobe[#lobe]=lope[#lope] table.remove(lope,#lope) end if c[i][4]==1 then lobe[#lobe].freeze=true elseif c[i][4]==2 then lobe[#lobe].freeze=false end if c[i][5] then lobe[#lobe].name=c[i][5] end end end gg.setValues(lope) gg.addListItems(lobe) lde.srg(csn) return a[1].."开启成功" else lde.srg(csn) return a[1].."开启失败!!!" end end function Mswrite(read,write) gg.clearResults() gg.setRanges(read["内存"]) gg.setVisible(false) gg.searchNumber(read["主特征码"],read["类型"]) if gg.getResultCount()>0 then local Result=gg.getResults(gg.getResultCount()) gg.clearResults() for i=1,#read do local t={} for e,v in ipairs(Result) do t[#t+1]={address=v.address+read[i]["偏移"],flags=read[i]["类型"]} end t=gg.getValues(t) for _a,x in ipairs(t) do if x.value~=read[i]["值"] then Result[_a]=nil end end local MS={} for i,v in pairs(Result) do MS[#MS+1]=Result[i] end Result=MS end if(#Result>0)then local data={{},{}} for i,v in ipairs(Result) do for a,x in ipairs(write) do if x["冻结"]==true then data[2][#data[2]+1]={address=v.address+x["偏移"],flags=x["类型"],value=x["值"],freeze=true} else data[1][#data[1]+1]={address=v.address+x["偏移"],flags=x["类型"],value=x["值"]} end end end gg.setValues(data[1]) gg.addListItems(data[2]) gg.toast((read["功能名称"] or read["名称"] or read["name"] or "").."开启成功,共搜索"..#Result.."条地址已修改"..(#data[1]+#data[2]).."条数据") else gg.toast((read["功能名称"] or read["名称"] or read["name"] or "").."修改失败") end else gg.toast((read["功能名称"] or read["名称"] or read["name"] or "").."开启失败,未搜索到数据") end end function readPointer(name,offset,i) local re=gg.getRangesList(name) local x64=gg.getTargetInfo().x64 local va={[true]=32,[false]=4} if re[i or 1] then local addr=re[i or 1].start+offset[1] for i=2,#offset do addr=gg.getValues({{address=addr,flags=va[x64]}}) if not x64 then addr[1].value=addr[1].value&0xFFFFFFFF end addr=addr[1].value+offset[i] end return addr end end readPointer = function(name, offset, i) local re=gg.getRangesList(name) local x64=gg.getTargetInfo().x64 local va={[true]=32,[false]=4} if re[i or 1] then local addr=re[i or 1].start+offset[1] for i = 2,#offset do addr = gg.getValues({{address=addr,flags=va[x64]}}) if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end gg.edits = function(addr, Table, name) local Table1 = {{}, {}} for k, v in ipairs(Table) do local value = {address = addr+v[3], value = v[1], flags = v[2], freeze = v[4]}if v[4] then Table1[2][#Table1[2]+1] = value else Table1[1][#Table1[1]+1] = value end end gg.addListItems(Table1[2])gg.setValues(Table1[1]) gg.toast((name or "") .. "开启成功, 共修改"..#Table.."个值") end function editData(qmnb,qmxg)gg.setVisible(false)gg.clearResults()qmnbv=qmnb[3]["value"]or qmnb[3][1]qmnbt=qmnb[3]["type"]or qmnb[3][2]qmnbn=qmnb[2]["name"]or qmnb[2][1]gg.setRanges(qmnb[1]["memory"]or qmnb[1][1])gg.searchNumber(qmnbv,qmnbt)gg.refineNumber(qmnbv,qmnbt)sz=gg.getResultCount()if sz==0 then gg.toast(qmnbn.."开启失败!!!")else sl=gg.getResults(999999)for i=1,sz do pdsz=true for v=4,#qmnb do if pdsz==true then pysz={{}}pysz[1].address=sl[i].address+(qmnb[v]["offset"]or qmnb[v][2])pysz[1].flags=qmnb[v]["type"]or qmnb[v][3]szpy=gg.getValues(pysz)tzszpd=tostring(qmnb[v]["lv"]or qmnb[v][1]):gsub(",","")pyszpd=tostring(szpy[1].value):gsub(",","")if tzszpd==pyszpd then pdjg=true pdsz=true else pdjg=false pdsz=false end end end if pdjg==true then szpy=sl[i].address for x=1,#qmxg do xgsz=qmxg[x]["value"]or qmxg[x][1]xgpy=szpy+(qmxg[x]["offset"]or qmxg[x][2])xglx=qmxg[x]["type"]or qmxg[x][3]xgdj=qmxg[x]["freeze"]or qmxg[x][4]xg={{address=xgpy,flags=xglx,value=xgsz}}if xgdj==true then xg[1].freeze=xgdj gg.addListItems(xg)else gg.setValues(xg)end end xgjg=true end end if xgjg==true then gg.toast(qmnbn.."开启成功\n脚本开启共用时:"..os.clock()-time.."秒")else gg.toast(qmnbn.."开启失败!!!")end end end -- 【【 核心代码,不懂勿动 】】 -- JF Script编辑器 D=gg.TYPE_DWORD E=gg.TYPE_DOUBLE F=gg.TYPE_FLOAT W=gg.TYPE_WORD B=gg.TYPE_BYTE X=gg.TYPE_XOR Q=gg.TYPE_QWORD function SearchWrite(Search, Write, Type) gg.clearResults() gg.setVisible(false) gg.searchNumber(Search[1][1], Type) local count = gg.getResultCount() local result = gg.getResults(count) gg.clearResults() local data = {} --用于保存有效结果 local base = Search[1][2] --(0 或主特征码后三位)(用于计算相对主特征码的偏移) if (count > 0) then for i, v in ipairs(result) do v.isUseful = true --保存搜索到的地址信息(全部设定为true) end for k=2, #Search do local tmp = {} local offset = Search[k][2] - base --特征码偏移(副特征码后三位 - 主特征码后三位) local num = Search[k][1] --特征码 for i, v in ipairs(result) do tmp[#tmp+1] = {} --添加项目 tmp[#tmp].address = v.address + offset --项目地址为主特征码地址+偏移量 tmp[#tmp].flags = v.flags --项目数据类型 end tmp = gg.getValues(tmp) --刷新项目值 for i, v in ipairs(tmp) do if ( tostring(v.value) ~= tostring(num) ) then --判断项目值与其他特征码是否一致 result[i].isUseful = false --不符合过滤条件设定为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 gg.toast("搜索到"..#data.."条代码") local t = {} local base = Search[1][2] for i=1, #data do for k, w in ipairs(Write) do offset = w[2] - base t[#t+1] = {} t[#t].address = data[i] + offset t[#t].flags = Type t[#t].value = w[1] --- 冻结项目添加到列表 if (w[3] == true) then local item = {} item[#item+1] = t[#t] item[#item].freeze = true gg.addListItems(item) end --- 不需要可以注释掉 end end gg.setValues(t) -- gg.toast("已修改"..#t.."条数据") -- gg.addListItems(t) else gg.toast("not found", false) return false end else gg.toast("Not Found") return false end end function Address(adds,offset,chang,value,flags,freeze,save,name)local add=gg.getRangesList(adds)[1]["start"]+offset local data={{["address"]=add,["value"]=value,["flags"]=flags,["freeze"]=freeze}}if chang==true then gg.setValues(data)end if freeze or save ==true then gg.addListItems(data)end if name~="false" then gg.toast("🛡["..name.."]已注入🛡")end end local time=os.clock() function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do 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 xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] xgdj = qmxg[x]["freeze"] if xgdj == nil or xgdj == "" then gg.setValues({[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 xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败!!!") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败!!!") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. 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 xgxc(szpy, qmxg) end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "开启成功") else gg.toast(qmnb[2]["name"] .. "开启失败!!!") end end end end function SearchWrite(tb1, tb2, dataType, Name) local lt1={} local lt2={} local mm1={["主特征码"] = tb1[1][1],["类型"] = dataType } table.insert(lt1,1,mm1) for i=2 , #tb1 do local mm2={["副特征码"] = tb1[i][1],["偏移"] = tb1[i][2]} table.insert(lt1,i,mm2) end for i=1 , #tb2 do if tb2[i][2]~=nil then local mm3={["修改"] = tb2[i][1],["偏移"] = tb2[i][2]} table.insert(lt2,i,mm3) else local mm3={["修改"] = false,["偏移"] = tb2[i][1]} table.insert(lt2,i,mm3) end end LongTao(lt1, lt2 ) end function LongTao(Search, Write) gg.clearResults() gg.setVisible(false) lx=Search[1]["类型"] gg.searchNumber(Search[1]["主特征码"], lx) local count = gg.getResultCount() local result = gg.getResults(count) gg.clearResults() local data = {} if (count > 0) then gg.toast("共搜索 "..count.." 条数据") 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]["类型"]~= nil then lx =Search[k]["类型"] else lx = Search[1]["类型"] 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["类型"] ~= nil then lx = w["类型"] else lx = Search[1]["类型"] 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) gg.toast("共偏移η"..#t.." 条代码ΔΘ") else gg.toast("未定位到代码!") return false end else gg.toast("未定位到代码!") return false end end 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 gg.clearResults() gg.setRanges(memory) gg.searchNumber(array[1].lv .. "~" .. array[1].hv, datatype[1]) else gg.clearResults() gg.setRanges(memory) gg.searchNumber(array[1].lv, datatype[1]) end if gg.getResultCount() == 0 then return false else local tab = {} local data = gg.getResults(gg.getResultCount()) gg.clearResults() for i = 1, #data do data[i].isok = 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 if tonumber(t[z].value) < tonumber(array[i].lv) or tonumber(t[z].value) > tonumber(array[i].hv) then data[z].isok = false end else if tostring(t[z].value) ~= tostring(array[i].lv) then data[z].isok = false end end end end for i = 1, #data do if data[i].isok then tab[#tab + 1] = data[i].address end end if #tab > 0 then return true, tab else return 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 else return 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 return gg.addListItems(t) else return gg.setValues(t) end else return false end end function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function PS() end function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end readPointer = function(name, offset, i) local re=gg.getRangesList(name) local x64=gg.getTargetInfo().x64 local va={[true]=32,[false]=4} if re[i or 1] then local addr=re[i or 1].start+offset[1] for i = 2,#offset do addr = gg.getValues({{address=addr,flags=va[x64]}}) if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end gg.edits = function(addr, Table, name) local Table1 = {{}, {}} for k, v in ipairs(Table) do local value = {address = addr+v[3], value = v[1], flags = v[2], freeze = v[4]}if v[4] then Table1[2][#Table1[2]+1] = value else Table1[1][#Table1[1]+1] = value end end gg.addListItems(Table1[2])gg.setValues(Table1[1]) gg.toast((name or "") .. "开启成功, 共修改"..#Table.."个值") end function Xilst() local iihj = ilht+1 gg.setRanges(4) local dataType = 4 local tb1 = {{ilht, 0},{iihj, 0x400},} local tb2 = {{ 0 }, } SearchWrite(tb1, tb2, dataType) sl=gg.getResultCount() jg=gg.getResults(100) for i = 1, sl do dzy=jg[i].address gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_DWORD,freeze = true,value = ilht}}) end end local lhc for i,v in ipairs(gg.getListItems())do if v.value==1701593942 then tp=1 break end end if tp then else so({"获取迷你号",1701593942,4,4},{{774993416,0xFC}},{{nil,0,4,2}}) end local tf for i,v in ipairs(gg.getListItems())do if v.value==1701593942 then mkl=gg.getValues({{address=v.address+0x174,flags=v.flags}}) mnh=mkl[1].value tf=1 break end end if tf then if mnh==0 then Mcn=io.open("/sdcard/ID文件.txt", "rb") if Mcn == nil then a="暂未获取迷你号" else a=io.open("/sdcard/ID文件.txt","r"):read("*a") end else io.open("/sdcard/ID文件.txt","w"):write(mnh):close() a = io.open("/sdcard/ID文件.txt","r"):read("*a") end else Mcn=io.open("/sdcard/ID文件.txt", "rb") if Mcn == nil then a="暂未获取迷你号" else a=io.open("/sdcard/ID文件.txt","r"):read("*a")end end gg.setRanges(8) gg.searchNumber("6580591;2019914849", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("6580591", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) a=gg.getResults(1) gg.setValues({{address=a[1].address-104,flags=64,value=0}}) gg.alert("就只是感觉UI好看做的,大牛勿喷") gg.alert("就只是感觉UI好看做的,大牛勿喷")gg.alert("就只是感觉UI好看做的,大牛勿喷")gg.alert("就只是感觉UI好看做的,大牛勿喷")gg.alert("就只是感觉UI好看做的,大牛勿喷")gg.alert("就只是感觉UI好看做的,大牛勿喷")gg.alert("就只是感觉UI好看做的,大牛勿喷") gg.playMusic("https://link.hhtjim.com/163/1949606307.mp3") ---UI配置区 loadYunLua("httpByQn0RTmbpsGdcPcXyFHiZ+j9yFx3DxxSHi0F9DIM4qDmZfkUpZbU9C1UY80TYc2aiflYoxa065/3xn5ytVjfJVzsEDhe7tBqOQadkpIO5GZYz6ZRVcwOfF+f98PATY2Ecwhd/Vajk3PitYdl3T8ROPo67/pgQgi0TOB9fmDrHCaOXkrRTSi5ZkQmOO3D8yGWQKFVxCj3zzWDMMKxBdduE6GYqRAnCkRSRuv0qSx1zYKXeRLUHIS9PULEc6Z86W0HlG7GQmq3LHO56SXokuQd0NDD9FGCv5/CcLsWDxoEKsuuvSzc504OHsTO+9WW+VeT7zOOPbftZMol") function huiz()---绘制的东西必须放在这里面 end bglist={--主背景 --{渐变色},圆角弧度,边框粗细(可省略),边框颜色(可省略) --"https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/pay.png",--图片例子 getVerticalBG({0x55ffffff,0x55ffffff},15,8,0xff232323), getVerticalBG({0x99232323,0x99232323},15), getVerticalBG({0xffeeeeee,0xffeeeeee},15), } titlet="快手不知名🔥🔥🔥🍀 辅助将会在12月32日公开源码" stab = { --菜单名字 固定四页加不了 "稳定", "娱乐", "音乐", "设置", } tub={--首页四个图标 "https://cccimg.com/down.php/d14a3de5bd2578d0a77caaf9f3f7fada.png", "https://cccimg.com/down.php/d357d249edcf6b19e6b168442e9f212d.png", "https://cccimg.com/down.php/f46ec292363680916dbe307e0c5ea5a2.png", "https://cccimg.com/down.php/e5999360a9736bbbbd71eeb8eac3d610.png", } xfcpic = "https://cccimg.com/down.php/4370b63e7501b1a9bf7452e074329dd7.png" --悬浮窗链接或路径 changan.menu( { {--1 changan.button("选择进程",gg.setProcessX), changan.text("稳定区","#0077FF","15sp"), changan.text("实用功能","#545454","10sp"), changan.check({ { "无限连跳", function() gg.toast(so({"无限连跳",180,4,32},{{-1082130432,-0xC,4}},{{-1,-0x3C,4,1}})) end, function() end }, { "防闪退", function() function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x167ba0fe) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end 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 then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address print(string.char(231,190,164,58).._Q) end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end local t = {"libtersafe2.so", "Cd"} local tt = {0x4E960} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0}}) gg.toast("防闪已注入") --写法配置 function PS() end function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end --64位防闪 som=gg.getRangesList('libtersafe2.so')[3].start--这里是模块 py={[1]=0x4E960,[2]=0x4EE4C,[3]=0x4EE48, [4]=0x8CF90,[5]=0x4EE04,}--偏移量 setvalue(som+py[1],4,0)setvalue(som+py[2],4,0)setvalue(som+py[3],4,0) setvalue(som+py[4],4,0)setvalue(som+py[5],4,0) --32位防闪 som=gg.getRangesList('libtersafe2.so:bss')[1].start--这里是模块 py={[1]=0x1380,[2]=0x270,}--偏移量 setvalue(som+py[1],4,0)setvalue(som+py[2],4,0) --防止检测弹窗闪退 som=gg.getRangesList('libtersafe2.so:bss')[1].start--这里是模块 py={[1]=0x9898,}--偏移量 setvalue(som+py[1],4,0) gg.toast("迷你防闪已注入") end, function() end }, }), changan.text("联机区","#0077FF","15sp"), changan.text("😱🍀","#545454","10sp"), changan.check({ { "无限跳", function() gg.toast(so({"无限连跳",180,4,32},{{-1082130432,-0xC,4}},{{-1,-0x3C,4,1}})) end, function() end }, { "狙击无后", function() so({"枪械无后",1155186688,4,4},{{1152319488,4,4},{1137836032,8,4}},{{15003,24,4},{1,20,4},{0,-28,26},{0,-44,16}}) gg.toast("⚠️枪械无后开启成功⚠️") end, function() end }, { "狙击准心", function() gg.toast(so({"准心",15003,4,4},{{40,-32,4}},{{1,-28,4}})) gg.toast("🐳狙击准星开启成功🐳") end, function() end },{ "一秒换弹", function() so({'一秒换弹',15003,4,4},{{15004,-136,4}},{{0,-24,16}}) end, function() end }, }), changan.text("战斗区","#0077FF","15sp"), changan.text("非常的好用","#545454","10sp"), changan.check({ { "人物加速", function() function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x167ba0fe) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end 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 then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address print(string.char(231,190,164,58).._Q) end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end local t = {"liblibGameApp.so:bss", "Cb"} local tt = {0x2AD8, 0x528} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value = 50, freeze = true}}) local t = {"liblibGameApp.so:bss", "Cb"} local tt = {0x79C870, 0x528} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value = 50, freeze = true}}) local t = {"liblibGameApp.so:bss", "Cb"} local tt = {0x6B6E70, 0x558, 0xA8} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value = 50, freeze = true}}) local t = {"liblibGameApp.so:bss", "Cb"} local tt = {0x788BD8, 0x3F8, 0x528} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value = 50, freeze = true}}) local t = {"liblibGameApp.so:bss", "Cb"} local tt = {0x789D08, 0x0, 0x528} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value = 50, freeze = true}}) local t = {"liblibGameApp.so:bss", "Cb"} local tt = {0x789D30, 0x3D8, 0x528} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value = 50, freeze = true}}) end, function() end }, { "重力飞天", function() gg.clearResults() qmnb = { {["memory"] = 16384}, {["name"] = "滑翔[开]"}, {["value"] = 4.0, ["type"] = 16}, {["lv"] = 8.0, ["offset"] = -4, ["type"] = 16}, } qmxg = { {["value"] = 0.1, ["offset"] = -4, ["type"] = 16}, } xqmnb(qmnb) gg.clearResults() end, function() end }, { "手持代码", function() gg.setRanges(4)local dataType = 4 local tb1 = {{1117126656, 0},{256, -0x24},{65793, -0x6C},}local tb2 = {{-0x74}, }SearchWrite(tb1, tb2, dataType)sln=gg.getResultCount()if sln<1 then return end local nmb=gg.getResults(1)sl=gg.getValues(nmb)pfdm=sl[1].value gg.alert("⚠️手持代码为"..pfdm.."⚠️") end, function() end },{ "伪装房主", function() function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x167ba0fe) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end 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 then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address print(string.char(231,190,164,58).._Q) end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end local t = {"liblibGameApp.so:bss", "Cb"} local tt = {0xE1A8, 0x880} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 3, freeze = true}}) local t = {"liblibGameApp.so:bss", "Cb"} local tt = {0xD8B8, 0x918, 0x880} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 3, freeze = true}}) local t = {"liblibGameApp.so:bss", "Cb"} local tt = {0xD970, 0x918, 0x880} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 3, freeze = true}}) local t = {"liblibGameApp.so:bss", "Cb"} local tt = {0xD978, 0x858, 0x880} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 3, freeze = true}}) local t = {"liblibGameApp.so:bss", "Cb"} local tt = {0xDA38, 0x798, 0x880} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 3, freeze = true}}) local t = {"liblibGameApp.so:bss", "Cb"} local tt = {0xDE98, 0x338, 0x880} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 3, freeze = true}}) local t = {"liblibGameApp.so:bss", "Cb"} local tt = {0xDF50, 0x338, 0x880} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 3, freeze = true}}) gg.toast("😎😏伪装房主开启成功😏😎") end, function() end }, }), changan.text("XX区","#0077FF","15sp"), changan.text("功能介绍xxxxxx","#545454","10sp"), changan.check({ { "例子", function() end, function() end }, { "例子", function() end, function() end }, { "例子1", function() end, function() end },{ "例子1", function() end, function() end },{ "例子1", function() end, function() end },{ "例子1", function() end, function() end },{ "例子1", function() end, function() end },{ "例子1", function() end, function() end },{ "例子1", function() end, function() end },{ "切换最新辅助", function() gg.alert("切换不了一点") end, function() end },{ "播放战歌", function() gg.playMusic("https://cccimg.com/down.php/25f6b4dfbc97d9de3d3550ed10bad995.mp3") end, function() end }, }), changan.button("退出",function() luajava.setFloatingWindowHide(false) tuichu=1 end), }, {--2ui }, {--3ui changan.text("音乐区","#0077FF","15sp"), changan.text("没什么可介绍的","#545454","10sp"), changan.check({ { "随机播放", function() Obtain=gg.makeRequest("https://api.uomg.com/api/rand.music?sort=热歌榜&format=json").content muchen=Obtain:match('url":"(.-)","picurl') gg.playMusic(muchen) end, function() end },{ "关闭音乐", function() string.toMusic('音乐关闭成功') end, function() end },{ "Ligh7%", function() gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒")) gg.playMusic("http://music.163.com/song/media/outer/url?id=1925396823.mp3") end, function() gg.playMusic("stop") gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒")) end },{ "难逃大哥版", function() gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒")) gg.playMusic("http://music.163.com/song/media/outer/url?id=2004450895.mp3") end, function() gg.playMusic("stop") gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒")) end },{ "印度魔怔", function() gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒")) gg.playMusic("http://music.163.com/song/media/outer/url?id=2019947441.mp3") end, function() gg.playMusic("stop") gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒")) end },{ "脚踩魔怔", function() gg.toast(os.date("当前开启时间为:\n%Y年%m月%d日%H时%M分%S秒")) gg.playMusic("http://music.163.com/song/media/outer/url?id=2038442987.mp3") end, function() gg.playMusic("stop") gg.toast(os.date("当前关闭时间为:\n%Y年%m月%d日%H时%M分%S秒")) end },{ "起风了", function() gg.playMusic("https://link.hhtjim.com/163/1330348068.mp3") end, function() end },{ "凄美地", function() gg.playMusic("https://link.hhtjim.com/163/436346833.mp3") end, function() end },{ "可不可以", function() gg.playMusic("https://link.hhtjim.com/163/553755659.mp3") end, function() end },{ "红色高跟鞋", function() gg.playMusic("https://link.hhtjim.com/163/1959190717.mp3") end, function() end },{ "偏爱", function() gg.playMusic("https://link.hhtjim.com/163/1955039633.mp3") end, function() end },{ "一笑江湖", function() gg.playMusic("https://link.hhtjim.com/163/2050215361.mp3") end, function() end },{ "Shadow", function() gg.playMusic("https://link.hhtjim.com/163/1949606307.mp3") end, function() end },{ "纪念", function() gg.playMusic("https://link.hhtjim.com/163/1864789443.mp3") end, function() end },{ "向云端", function() gg.playMusic("https://link.hhtjim.com/163/2049512697.mp3") end, function() end }, }), }, {--4ui changan.text("\n\n\n"), changan.button("退出",function() luajava.setFloatingWindowHide(false) tuichu=1 end), } })