do if type(getrlyunyz) ~= 'function' then gg.alert('请使用RLGG执行') os.exit() return end local info = { example_version = '1.0.3', name = '23全防', appid = '28310', appkey = 'rwKo11rravRYjInj', rc4key = 'yIT6I11tzYx6zN5x', version = '1.0', mi_type = '3' } local rlyunyz = getrlyunyz(info) local ret = rlyunyz.start() if not ret or not isTable(ret) or ret.sign ~= '4eb698cd36b9e890c8f88ea362d33087' then os.exit() return end end -- 把以上代码复制到你脚本最前面即可 二三全防=gg.alert([[ 二三全防 更新时间:8月11日 反馈862892807 ]],"进入脚本","Q群","官方QQ群") if QQ == 2 then gg.alert('Q群862892807') gg.copyText("@WLnbYYDS666") string.toMusic('已复制到粘贴板') gg.toast("复制成功") end if QQ == 3 then gg.alert('Q群862892807') gg.copyText("还没有更新") string.toMusic('已复制到粘贴板') gg.toast("复制成功") 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 end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end function PS() end function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) 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"] .. "手机不支持") 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) xgjg = true end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "开启成功,共修改" .. xgsl .. "条ΔΘ") else gg.toast(qmnb[2]["name"] .. "手机不支持") end end 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 Fxs(Search, Write,Neicun,Mingcg,Shuzhiliang) gg.clearResults() gg.setRanges(Neicun) gg.setVisible(false) gg.searchNumber(Search[1][1], Search[1][3]) 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 = Search[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(Mingcg.."搜索到"..#data.."条数据") local t = {} local base = Search[1][2] if Shuzhiliang == "" and Shuzhiliang > 0 and Shuzhiliang < #data then Shuzhiliang=Shuzhiliang else Shuzhiliang=#data end for i=1, Shuzhiliang do for k, w in ipairs(Write) 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(Mingcg.."已修改"..#t.."条数据") gg.addListItems(t) else gg.toast(Mingcg.."手机不支持", false) return false end else gg.toast("搜索失败") return false end 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.."开启成功")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 PS() end function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要67931)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function setvalue(address,flags,value) local CatWill={} CatWill[1]={} CatWill[1].address=address CatWill[1].flags=flags CatWill[1].value=value gg.setValues(CatWill) 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(0x315fdca1) 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 function readAdd(add) t=gg.getValues({[1]={address=add,flags=32}}) add=string.format("%X",t[1].value) if (#add)==16 then add=add:sub(9,16) end if (#add)==1 then add=add.."0000000" else add=string.format("%d","0x"..add) end return add end function getAdd(so,offset,off1) add=gg.getRangesList(so)[1].start add=readAdd(add+offset) return add end function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) 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(123456) 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--动态 function readWrite(Search,Get,Type,Range,Name) gg.clearResults() gg.setRanges(Range) gg.setVisible(false) if Search[1][1]~=false then gg.searchAddress(Search[1][1],0xFFFFFFFF,Search[1][4] or Type,gg.SIGN_EQUAL,Search[1][5] or 1,Search[1][6] or -1) end gg.searchNumber(Search[1][2],Search[1][4] or Type,false,gg.SIGN_EQUAL,Search[1][5] or 1,Search[1][6] or -1) local count=gg.getResultCount() local result=gg.getResults(count) gg.clearResults() local data={} local base=Search[1][3] 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=Search[k][3] or Type end tmp=gg.getValues(tmp) for i,v in ipairs(tmp) do if v.flags==16 or v.flags==64 then values=tostring(v.value):sub(1,6) num=tostring(num):sub(1,6) else values=v.value end if tostring(values)~=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,t_={},{} local base=Search[1][3] for i=1,#data do for k,w in ipairs(Get) do offset=w[2] - base if w[1]==false then t_[#t_+1]={} t_[#t_].address=data[i]+offset t_[#t_].flags=Type th_=(th_) and th_+1 or 1 else t[#t+1]={} t[#t].address=data[i]+offset t[#t].flags=w[3] or Type t[#t].value=w[1] tg_=(tg_) and tg_+1 or 1 if (w[4]==true) then local item={} item[#item+1]=t[#t] item[#item].freeze=w[4] gg.addListItems(item) end end end end tg=(tg_) and "\n已修改"..tg_.."条数据" or "" th=(th_) and "\n已获取"..th_.."条数据" or "" gg.setValues(t) t_=gg.getValues(t_) gg.loadResults(t_) gg.toast("\n"..Name.."搜索成功!\n偏移到"..#data.."条数据"..tg..th) tg_,th_=nil,nil else gg.toast("\n"..Name.."手机不支持",false) return false end else gg.toast(Name.."手机不支持") return false end end 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(Name.."共搜索到"..#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.sleep(500) gg.toast(Name.."开启成功,共修改"..#t.."条数据") else gg.toast(Name.."副特征码错误or脸丑\n或者是已经开启过了") return false end else gg.toast(Name.."主特征码错误or脸丑\n或者是已经开启过了") return false end end 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("手机不支持", false) return false end else gg.toast("很抱歉未找到游戏机制手机不支持") 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"] .. "手机不支持") 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) xgjg = true end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "开启成功,共修改" .. xgsl .. "条ΔΘ") else gg.toast(qmnb[2]["name"] .. "手机不支持") end end end end ------------------------------------------------------------------------------------------------------------------------- function encodes(code) return (code:gsub("..", function(h) return string.char((tonumber(h, 16) + 256 - 13 + 255999744) % 256) end )) end gg.toast("Loading...") do do for _FORV_3_ = 1, 2000 do load("local results = gg.getFile(5000)")() end end end gg.setRanges(16420) local results = gg.getFile() local results = gg.getResults(5000) gg.setValues(results) local results = gg.getFile() 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 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.sleep(500) else return false end else 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"] .. "手机不支持") 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) xgjg = true end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "开启成功,共修改" .. xgsl .. "条数据") else gg.toast(qmnb[2]["name"] .. "手机不支持") end end end end MAIN = 1 function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function WRITEBYTES(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end hzs = {} local hzs = hzs local android = import('android.*') function write(fileName, content) if file.write(fileName, content) == false then gg.alert("请给框架和修改器 文件储存权限\n否则无法正常运行") os.exit() end end function panduan(rec) fille,err = io.open(rec) if fille == nil then return false else return true end end function pdcf(lujing) rec = "/sdcard/23/配置文件/"..lujing fille,err = io.open(rec) if fille == nil then return false else return true end end sleep = gg.sleep function read(fileName) f = assert(io.open(fileName, 'r')) content = f:read("*all") f:close() return content end function wtcf(lujing,neirong) write("/sdcard/23/配置文件/"..lujing,neirong) end function rdcf(lujing) return read("/sdcard/23/配置文件/"..lujing) end function pmusic(x) if audiokg == "开" then tmp1 = 0 gg.playMusic(x) tmp1 = 1 end end if pdcf("audio") ~= true then wtcf("audio","开") end audiokg = rdcf("audio") function camusic(ress) tmp1 = 0 if audiokg == "开" then if panduan("/sdcard/23/音频/"..ress) == true then pmusic("/sdcard/23/音频/"..ress) tmp1 = 1 else download("https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/"..ress ,"/sdcard/23/音频/"..ress) pmusic("/sdcard/23/音频/"..ress) tmp1 = 1 end end end 开 = "开" 关 = "关" function checkimg(tmp) if panduan("/sdcard/23/sz/"..tmp) ~= true then gg.toast("正在下载资源"..tmp.."\n请耐心等待") download("https://pomf2.lain.la/f/"..tmp..".png","/sdcard/23/sz/"..tmp) end end file.getdirs("/sdcard/23/状态读取/") ckimg = { "cxjvs1ab", "gbhqmi6", } for i = 1,#ckimg do jindu = i checkimg(ckimg[i]) end context = app.context window = context:getSystemService("window") -- 获取窗口管理器 function getLayoutParams() LayoutParams = WindowManager.LayoutParams layoutParams = luajava.new(LayoutParams) if (Build.VERSION.SDK_INT >= 26) then -- 设置悬浮窗方式 layoutParams.type = LayoutParams.TYPE_APPLICATION_OVERLAY else layoutParams.type = LayoutParams.TYPE_PHONE end layoutParams.format = PixelFormat.RGBA_8888 -- 设置背景 layoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE -- 焦点设置Finish layoutParams.gravity = Gravity.TOP|Gravity.LEFT -- 重力设置 layoutParams.width = LayoutParams.WRAP_CONTENT -- 布局宽度 layoutParams.height = LayoutParams.WRAP_CONTENT -- 布局高度 return layoutParams end function getj6() jianbian6 = luajava.new(GradientDrawable) jianbian6:setCornerRadius(20) jianbian6:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbian6:setColors({0x33000000,0x33000000}) jianbian6:setStroke(4,"0xdd282F4B")--边框宽度和颜色 return jianbian6 end slctb2 = luajava.loadlayout({ GradientDrawable, color = "#7f7fd5", cornerRadius = 10 }) function getseekgra() jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(20) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors({0x667f7fd5,0x667f7fd5}) jianbians:setStroke(2,"0x44000000")--边框宽度和颜色 return jianbians end slctb=getseekgra() slcta = luajava.loadlayout({ GradientDrawable, color = "#282F4B", cornerRadius = 20 }) slctc = luajava.loadlayout { GradientDrawable, color = "#11ffffff", cornerRadius = 8 } slctd = luajava.loadlayout { GradientDrawable, color = "#55ffffff", cornerRadius = 8 } slcte = luajava.loadlayout { GradientDrawable, color = "#11ffffff", cornerRadius = 12 } slctf = luajava.loadlayout { GradientDrawable, color = "#aa1E1C27", cornerRadius = 12 } function getSelector3() jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(10) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors({0x667f7fd5,0x667f7fd5}) jianbians:setStroke(2,"0x44000000")--边框宽度和颜色 selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, luajava.loadlayout { GradientDrawable, color = "#88000000", cornerRadius = 12 }) -- 点击时候的背景 selector:addState({ -android.R.attr.state_pressed }, jianbians) -- 没点击的背景 return selector end function getSelector() selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, slcta) -- 点击时候的背景 selector:addState({ -android.R.attr.state_pressed }, slctb) -- 没点击的背景 return selector end function getSelector2() selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, slctd) -- 点击时候的背景 selector:addState({ -android.R.attr.state_pressed }, slctc) -- 没点击的背景 return selector end jianbian = luajava.new(GradientDrawable) jianbian:setCornerRadius(30) jianbian:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbian2 = luajava.new(GradientDrawable) jianbian2:setCornerRadius(30) jianbian2:setGradientType(GradientDrawable.LINEAR_GRADIENT) local isswitch YoYoImpl = luajava.getYoYoImpl() hzs.menu = function(sview) if isswitch then return false end isswitch = true cebian ={ LinearLayout, id = "侧边", visibility = "gone", layout_height = "250dp", layout_width = "68dp", orientation = "vertical", background = { GradientDrawable, color = "#00ffffff", cornerRadius = 10 }, } gund= {LinearLayout, orientation="vertical", } for i=1,#stab do gund[#gund+1]={ LinearLayout, id = "jm"..i, layout_height = "28dp", layout_width = "68dp", layout_marginTop = "3dp", layout_marginBottom = "3dp", background=getSelector(), { TextView, gravity="center", text = stab[i][1], layout_height = "28dp", layout_width = "68dp", onClick=function() 切换(i) end }} end cebian[#cebian+1]={ScrollView, layout_height = "190dp", layout_width = "68dp", gund} cebian[#cebian+1]={ ImageView, id = "exit", src = "/sdcard/23/图片/gbhqmi6", layout_width = "40dp", layout_height = "40dp", layout_marginTop = "10dp", layout_marginLeft = "14dp", } cebian=luajava.loadlayout(cebian) for i=1,#stab do _ENV["layout"..i] = luajava.loadlayout({ ScrollView, fillViewport = "true", padding = "10dp", id = "layout"..i, visibility = "gone", layout_width = "250dp", layout_height = "250dp", orientation = "horizontal", { LinearLayout, id = "layoutm"..i, background = getj6(), gravity = "top", layout_width = "210dp", orientation = "vertical", gravity = "center_horizontal", } }) end ckou = { LinearLayout, id = "chuangk", visibility = "gone", layout_width = "wrap_content", layout_height = "match_parent", orientation = "horizontal", cebian, } for i=1,#stab do ckou[#ckou+1]=_ENV["layout"..i] end ckou=luajava.loadlayout(ckou) title = luajava.loadlayout({ TextView, id = "title", textColor="#282F4B", visibility = "gone", text = stab[1][2], gravity = "center", textSize = "24sp", layout_marginLeft = "30dp", layout_width = "fill_parent", }) floatWindow = { LinearLayout, id = "motion", layout_width = "wrap_content", orientation = "vertical", gravity = "center_vertical", layout_height = "wrap_content", { LinearLayout, layout_width = "match_parent", layout_height = "wrap_content", orientation = "horizontal", gravity = "center_vertical", { LinearLayout, layout_width = "48dp", layout_height = "wrap_content", layout_marginLeft = "0dp", layout_marginTop = "6dp", layout_marginBottom = "2dp", gravity = "center", { ImageView, id = "control", background = xfcpic, layout_width = "40dp", layout_height = "40dp", }}, title, }, ckou } local function invoke() local ok local RawX, RawY, x, y mainLayoutParams = getLayoutParams() floatWindow = luajava.loadlayout(floatWindow) local function invoke2() block('start') for k=1,#stab do for i = 1,#sview[k] do _ENV["layoutm"..k]:addView(sview[k][i]) end end window:addView(floatWindow, mainLayoutParams) block('end') end local runnable = luajava.getRunnable(invoke2) local handler = luajava.getHandler() handler:post(runnable) block('join') control.onClick = function() 隐藏() end exit.onClick = function() gg.toast("悬浮窗已退出") window:removeView(floatWindow) luajava.setFloatingWindowHide(false) luajava.newThread(function() os.exit() end):start() bloc("end") end local isMove hanshu = function(v, event) local Action = event:getAction() if Action == MotionEvent.ACTION_DOWN then isMove = false RawX = event:getRawX() RawY = event:getRawY() x = mainLayoutParams.x y = mainLayoutParams.y elseif Action == MotionEvent.ACTION_MOVE then isMove = true mainLayoutParams.x = tonumber(x) + (event:getRawX() - RawX) mainLayoutParams.y = tonumber(y) + (event:getRawY() - RawY) window:updateViewLayout(floatWindow, mainLayoutParams) end end motion.onTouch = hanshu control.onTouch = hanshu exit.onTouch = hanshu for i=1,#stab do _ENV["jm"..i].onTouch = hanshu end end invoke(swib1,swib2) jm1:setBackground(slcta) gg.setVisible(false) luajava.setFloatingWindowHide(true) end corbk = true 当前ui = 1 function 切换(x) 当前ui = x luajava.runUiThread(function() for i=1,#stab do _ENV["jm"..i]:setBackground(slctb) _ENV["layout"..i]:setVisibility(View.GONE) end title:setText(stab[当前ui][2]) _ENV["layout"..当前ui]:setVisibility(View.VISIBLE) _ENV["jm"..当前ui]:setBackground(slcta) YoYoImpl:with("FadeIn"):duration(200):playOn(_ENV["layout"..当前ui]) end) end 显示 = 0 beij = luajava.new(GradientDrawable) beij:setCornerRadius(40) beij:setGradientType(GradientDrawable.LINEAR_GRADIENT) beij:setColors(({0xdd91EAE4,0xaa86A8E7,0xdd7f7fd5})) beij:setStroke(0,"0x44FFffff")--边框宽度和颜色 beij2 = luajava.loadlayout({ GradientDrawable, color = "#001E1C27", cornerRadius = 10 }) function getcolor(cl) cl[1] = tonumber(math.ceil(cl[1]*2.6,0,5)) if cl[1] > 255 then cl[1] = "0xff" else cl[1] = "0x"..string.format("%x",cl[1]) end for i = 1,3 do cl[i+1] = string.format("%x",cl[i+1]) if string.len(cl[i+1]) == 1 then cl[i+1] = "0"..cl[i+1] end end cl = cl[1]..cl[2]..cl[3]..cl[4] return cl end function getrgb(cl) if string.sub(cl,1,1) == "#" then cl = "0x"..string.sub(cl,2,-1) end cl = { tonumber(string.sub(cl,0,4)),tonumber("0x"..string.sub(cl,5,6)),tonumber("0x"..string.sub(cl,7,8))} return cl end function 隐藏() luajava.runUiThread(function() control:setBackground(luajava.getBitmapDrawable("/sdcard/23/图片/cxjvs1ab")) if tonumber(tostring(cebian:getVisibility())) == 8.0 then chuangk:setVisibility(View.VISIBLE) cebian:setVisibility(View.VISIBLE) title:setVisibility(View.VISIBLE) mainLayoutParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL window:updateViewLayout(floatWindow, mainLayoutParams) YoYoImpl:with("SlideInDown"):duration(200):playOn(cebian) _ENV["layout"..当前ui]:setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(800):playOn(_ENV["layout"..当前ui]) floatWindow:setBackground(beij) else luajava.runUiThread(function()mainLayoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE window:updateViewLayout(floatWindow, mainLayoutParams) end) control:setBackground(luajava.getBitmapDrawable("/sdcard/23/图片/cxjvs1ab")) title:setVisibility(View.GONE) floatWindow:setBackground(beij2) chuangk:setVisibility(View.GONE) cebian:setVisibility(View.GONE) _ENV["layout"..当前ui]:setVisibility(View.GONE) end end) end function guid() seed = { 'e','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' } tb = {} for i = 1,32 do table.insert(tb,seed[math.random(1,16)]) end sid = table.concat(tb) return string.format('%s%s%s%s%s', string.sub(sid,1,8), string.sub(sid,10,12), string.sub(sid,21,22)) ..string.format('%s%s%s%s%s', string.sub(sid,1,6), string.sub(sid,21,25) ) end chazhi={} chajv={} function hzs.seek(name,bian,smin,smax,nows) _ENV[bian] =nows thum=getseekgra() thum:setSize(60, 60) smin=tonumber(smin) smax=tonumber(smax) chajv[bian]=smax-smin chazhi[bian]=1-smin if smin==nil then smin=1 smax=10 end truesmin=1 truesmax=truesmin+chajv[bian] if not nows then nows = smin tnows=(smin-nows) else tnows=(nows-smin)+1 end if _ENV[bian] == nil then _ENV[bian] = 1.0 end if not name then name = "未设置" end local names = name..guid() rest = luajava.loadlayout({ LinearLayout, layout_width = 'fill_parent', layout_hight = "fill_parent", { LinearLayout, layout_width = 'fill_parent', layout_hight = "fill_parent", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft = "10dp", layout_marginRight = "10dp", gravity = "center_vertical", background = getseekgra(), { TextView, gravity = "top", text = name..":"..nows, textColor="#FFFFFF", id = luajava.newId(names), layout_width = '70dp', layout_marginLeft = "5dp", layout_marginRight = "0dp", }, { SeekBar, layout_width = '120dp', id=luajava.newId(name.."seekbar"), min = truesmin, max = truesmax, progress=tnows, thumb=thum, progressHeight="10dp", onSeekBarChange = { onProgressChanged = function(SeekBar, var2, var3) if not var3 then return end local resultvar=tonumber(string.sub(var2,0,-3))-chazhi[bian] luajava.runUiThread(function() luajava.getIdValue(names):setText(name..":".. resultvar) end) _ENV[bian] = resultvar end }} }}) return rest end function hzs.switch(name,func1,func2) if type(func1) == "table" then gg.alert("出现错误\n如果你是用的是旧版\n请将开头第一个chagan.switch改成hzs.menu") gg.copyText("") os.exit() end local func = 开关(name,func1,func2) if not name then name = "未设置" end rest = luajava.loadlayout({ LinearLayout, layout_width = 'fill_parent', layout_hight = "fill_parent", { LinearLayout, layout_width = 'fill_parent', layout_hight = "fill_parent", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft = "10dp", layout_marginRight = "10dp", gravity = "center_vertical", background = getseekgra(), { TextView, gravity = "top", text = name, layout_width = '100dp', layout_marginLeft = "10dp", layout_marginRight = "10dp", }, { Switch, gravity = "top", layout_width = 'match_parent', layout_hight = "10dp", switchMinWidth = "20dp", onCheckedChange = function(Switch,var2,var3) if var2 == true then var2 = "开" else var2 = "关" end luajava.newThread(function() func() end):start() end, }} }) return rest end function hzs.edit(name) _ENV[name] = name..guid() if not name then name = "点击输入文字" end rest = luajava.loadlayout({ LinearLayout, layout_width = 'fill_parent', layout_hight = "fill_parent", { LinearLayout, layout_width = 'fill_parent', layout_hight = "fill_parent", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft = "10dp", layout_marginRight = "10dp", gravity = "center_vertical", background = getseekgra(), { EditText, gravity = "top", hint = name, gravity="center", id = luajava.newId(_ENV[name]), layout_width = 'fill', layout_marginLeft = "10dp", layout_marginRight = "10dp", }} }) return rest end function hzs.radio(radio) firadio = { LinearLayout, layout_width = 'fill_parent', layout_hight = "fill_parent", padding="10dp", orientation = "vertical" } if type(radio[1]) == "string" or type(radio[1]) == "number" then firadio[#firadio+1] = { TextView,text = radio[1]} end radios = { RadioGroup,background = getseekgra(), layout_width = 'fill_parent', } for i = 2,#radio do radios[#radios+1] = { RadioButton, layout_width = 'fill_parent', text = radio[i][1], onClick = function() luajava.newThread(function() pcall(radio[i][2]) end):start() end, } end firadio[#firadio+1] = radios return luajava.loadlayout(firadio) end function hzs.check(cklist) rest = { LinearLayout, layout_width = 'match_parent', layout_height = "30dp", gravity = "center" } for i = 1,#cklist do local name = cklist[i][1] local func1 = cklist[i][2] local func2 = cklist[i][3] local nid = cklist[i][4] if type(func1) == "table" then gg.alert("出现错误\n如果你是用的是旧版\n请将开头第一个chagan.switch改成hzs.menu\n23") gg.copyText("23") os.exit() end if not name then name = "未设置" end nid = name..guid() local func = 开关2(nid,func1,func2,nid) rstt = luajava.loadlayout({ LinearLayout, layout_width = 'wrap_content', layout_height = "30dp", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft = "0dp", layout_marginRight = "10dp", gravity = "center_vertical", onClick = function() luajava.newThread(function() func() end):start() end, {ImageView, id = luajava.newId(nid), layout_width = '20dp', layout_height = "20dp", background = "/sdcard/23/图片/check1", },{ TextView, gravity = "top", text = name, textColor="#ffffff", layout_width = 'wrap_content', layout_height = 'wrap_content', layout_marginLeft = "4dp", layout_marginRight = "5dp", }}) rest[#rest+1] = rstt end return luajava.loadlayout(rest) end function hzs.button(txt,func) if not txt then txt = "未设置" end return luajava.loadlayout( { LinearLayout, layout_width = 'fill_parent', layout_hight = "wrap_content", { LinearLayout, layout_width = "fill_parent", gravity = "center_horizontal", layout_marginRight="10dp", layout_marginLeft="10dp", layout_marginTop = "5dp", layout_marginBottom = "5dp", background = getSelector3(), onClick = function() luajava.newThread(function() pcall(func) end):start() end, { TextView, text = txt, textSize = "16sp", layout_width = "wrap_content", }, }}) end function hzs.text(txt,color,size) if not txt then txt = "未设置文字" end if not color then color = "#ffffff" end if not size then size = "18sp" end return luajava.loadlayout( { TextView, text = txt, textSize = size, textColor = color, layout_width = "wrap_content", }) end corb = true function hzs.setedit(name,txt) txt = tostring(txt) luajava.runUiThread(function() luajava.getIdValue(_ENV[name]):setText(txt) end) end function hzs.getedit(name) edit = tostring(luajava.getIdValue(_ENV[name]):getText()) return edit end function 开关(name,func1,func2) if func1 == nil then func1 = "" end if func2 == nil then func2 = "" end if type(func1) == "function" then return function() namers = _ENV[name] if namers ~= "开" then _ENV[name] = "开" pcall(func1) else _ENV[name] = "关" pcall(func2) end end end end function 开关2(name,func1,func2,nid) if func1 == nil then func1 = "" end if func2 == nil then func2 = "" end if type(func1) == "function" then return function() namers = _ENV[name] if namers ~= "开" then luajava.runUiThread(function() luajava.getIdValue(nid):setBackground(luajava.getBitmapDrawable("/sdcard/23/图片/check2")) end) _ENV[name] = "开" func1() else luajava.runUiThread(function() luajava.getIdValue(nid):setBackground(luajava.getBitmapDrawable("/sdcard/23/图片/check1")) end) _ENV[name] = "关" func2() end end end end function PS() end function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要67931)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end local json =json local g = {} g.file = gg.getFile() g.sel = nil gqlb={"请先搜索歌曲",} idb={"1010"} SN,gc=1,nil g.config = gg.getFile():gsub("%lua$", "").."cfg" function bei() g.data = loadfile("-- WSG PRO 1.0.9(109)\n"..g.config) if g.data ~= nil then g.sel = g.data() g.data = nil end if g.sel == nil then g.sel = {"请输入歌曲名","10"} end end bei() --搜索歌曲 function start(name,sl) fw=gg.makeRequest("http://music.163.com/api/search/get?s="..name.."&type=1&offset=0&total=true&limit="..sl) return fw end --歌词 --播放音乐 function play(id,name) gg.toast("正在播放音乐:"..name,true) gg.playMusic("http://music.163.com/song/media/outer/url?id="..id..".mp3") end --停止播放 function stop() gg.toast("正在停止音乐") for i=1,100 do gg.playMusic("stop") gg.playMusic("stop") gg.playMusic("stop") end end ---- function Play(gqlb,idb) SN = gg.choice(gqlb,nil,ts) if SN == nil then XGCK =-1 else sn=gg.choice({"播放歌曲","播放并下载"},nil,"歌曲:"..gqlb[SN]) if sn == nil then end if sn == 1 then play(idb[SN],gqlb[SN]) end if sn == 2 then local XEY=gg.makeRequest("http://music.163.com/song/media/outer/url?id="..idb[SN]..".mp3").content local XEY1=gg.getFile():gsub("[^/]+$","")..gqlb[SN]..".mp3" io.open(XEY1,"w"):write(XEY) gg.alert("提示:\n\n音乐已成功下载位置:\n\n"..XEY1) end XGCK=-1 end end function zjson(jsonr) local str = jsonr -- 匹配Json Key的正则表达式 local pattern = "\"[%w]+\":" string.gsub(str, pattern, function(v) if string.find(str, v) then str = string.gsub(str, v, string.gsub(v, "\"", "")) end end) str = string.gsub(str, ":", "=") str = string.gsub(str, "%[", "{") str = string.gsub(str, "%]", "}") local data = "-- WSG PRO 1.0.9(109)\nreturn " .. str local res = load(data)() return res end function json(con) res=zjson(con) zd=res.result.songCount pd=go3-zd if pd <= 0 then else go3=zd end ts="《"..go1.."》找到"..zd.."首歌曲,当前显示"..go3.."首" gqlb={} idb={} for i=1,go3 do gqlb[i]=res.result.songs[i].name idb[i]=res.result.songs[i].id end --print(idb) end function YY998() Obtain=gg.makeRequest("https://api.uomg.com/api/rand.music?sort=热歌榜&format=json").content muchen=Obtain:match('url":"(.-)","picurl') gg.playMusic(muchen) 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 draw.text('23公益', 100,150)draw.setColor('#00FF7F') draw.text('PS图片:巡查中', 100,210)draw.setColor("#00FF7F")--16色颜色配置 draw.text("开启防时间差不多2分钟左右耐心等待",150,910)draw.setColor("#00dffc")--16色颜色配置 draw.text("",100,1000)draw.setColor("#00dffc")--16色颜色配置 function interruptThread(thread) if thread then pcall(function() thread:interrupt() end) end end string.toMusic('你已成功进入23全能脚本 WL持续为你保驾护航 ') xfcpic="https://pomf2.lain.la/f/cxjvs1ab.png" --悬浮窗链接或路径 stab={--菜单名字,大标题 {"公告","全能版本"}, {"防封","防封专区"}, {"地铁","地铁逃生"}, {"音乐","音乐功能"}, {"美化","美化功能"}, --[[ {"快手","美女视频"}, {"音乐","听个小曲"}]] } hzs.menu( { { hzs.button("⚠️选择游戏⚠️",gg.setProcessX),--同理 hzs.text("Eternal Tear of Sorrow\n谢谢使用23公益\n官方频道@WlnbYYDS666\n未来可期\n彩体有一些手机不可以用,尽量不要开启","#FFFFFF","15sp"), }, ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --第二页 { hzs.button("⚠️选择游戏⚠️",gg.setProcessX),--同理 hzs.text("防封专区","#FFFFFF","20sp"),--空文本可用于换行,sp调整距离 hzs.radio({--单选表可无限添加 " 23",---标题 { "全局离线-开启", function() gg.setRanges(16384) gg.searchNumber("328,671,808", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100000) gg.editAll("10000001", gg.TYPE_DWORD) gg.clearResults() gg.clearResults() gg.setRanges(16384) gg.searchNumber("328,671,808", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100000) gg.editAll("10000001", gg.TYPE_DWORD) gg.clearResults() gg.clearResults() gg.setRanges(16384) gg.searchNumber("328,671,808", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100000) gg.editAll("10000001", gg.TYPE_DWORD) gg.clearResults() gg.clearResults() gg.setRanges(16384) gg.searchNumber("328,671,808", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100000) gg.editAll("10000001", gg.TYPE_DWORD) gg.clearResults() string.toMusic('全局离线开启成功')---语音 end },{ "全局离线-关闭", function() gg.setRanges(16384) gg.searchNumber("10000001", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100000) gg.editAll("328,671,808", gg.TYPE_DWORD) gg.clearResults() gg.setRanges(16384) gg.searchNumber("10000001", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100000) gg.editAll("328,671,808", gg.TYPE_DWORD) gg.clearResults() gg.setRanges(16384) gg.searchNumber("10000001", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100000) gg.editAll("328,671,808", gg.TYPE_DWORD) gg.clearResults() gg.setRanges(16384) gg.searchNumber("10000001", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100000) gg.editAll("328,671,808", gg.TYPE_DWORD) string.toMusic('全局离线关闭成功')---语音 end } }), hzs.switch("LOGO防", function() draw.setColor("#00FFFF") string.toMusic('开启成功') end, function() string.toMusic('无法关闭') end ), hzs.switch("大厅全防①", function() string.toMusic('开启成功') draw.setColor("#00FFFF") end, function() string.toMusic('无法关闭') end ), hzs.switch('配合1防', 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 = {"libanogs.so:bss", "Cb"} local tt = {0x2480} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 17005, freeze = true}}) local t = {"libanogs.so:bss", "Cb"} local tt = {0x2588} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 17005, freeze = true}}) local t = {"libanogs.so:bss", "Cb"} local tt = {0x26B0} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 17005, freeze = true}}) local t = {"libanogs.so:bss", "Cb"} local tt = {0x2458} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 17005, freeze = true}}) string.toMusic('防禁网开启成功') draw.setColor("#00FFFF") end, function() end ), hzs.switch("测试全防", function() draw.setColor("#00FFFF") string.toMusic('开启成功') end, function() end ), hzs.switch("过效验值", function() string.toMusic('开启成功') draw.setColor("#00FFFF") end, function() string.toMusic('无法关闭') end ), }, ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --第三页 { hzs.button("⚠️选择游戏⚠️",gg.setProcessX),--同理 hzs.text("地铁逃生","#FFFFFF","20sp"),--空文本可用于换行,sp调整距离 hzs.switch("枪械无后", function() so=gg.getRangesList('libUE4.so')[1].start py=0x517CCBC setvalue(so+py,16,8.8411673e-21) draw.setColor("#00FFFF") end, function() end ), hzs.switch("枪械防抖", function() so=gg.getRangesList('libUE4.so')[1].start-------战斗 py=0x5D855A0 setvalue(so+py,16,2.19933704e12) draw.setColor("#00FFFF") string.toMusic('开启成功') end, function() end ), hzs.switch("枪械聚点", function() so=gg.getRangesList('libUE4.so')[1].start--聚点 py=0x517815C setvalue(so+py,16,8.47963525e-21) draw.setColor("#00FFFF") string.toMusic('开启成功') end, function() end ), hzs.switch("枪械瞬击", function() so=gg.getRangesList('libUE4.so')[1].start--瞬🐔 py=0x84E8E20 setvalue(so+py,16,8.95671814e-21) draw.setColor("#00FFFF") string.toMusic('开启成功') end, function() end ), hzs.switch("枪械大小", function() local r = gg.prompt({'枪械大小[原值1]'}, {'1.0'}, {'text'}) if r then local t = {"libUE4.so:bss", "Cb"} local tt = {0x3A1D8, 0x0, 0x25E0, 0x580} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = r[1]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x3A1D8, 0x0, 0x25E0, 0x584} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = r[1]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x3A1D8, 0x0, 0x25E0, 0x588} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = r[1]}}) gg.toast("开启成功") end draw.setColor("#00FFFF") string.toMusic('开启成功') end, function() end ), hzs.switch("上帝视角", function() local r = gg.prompt({'上帝视角[推荐1.5]'}, {'1.0'}, {'text'}) if r then so=gg.getRangesList('libUE4.so')[1].start py1=0x3142EB8 end setvalue(so+py1,16,r[1]) draw.setColor("#00FFFF") string.toMusic('开启成功') end, function() end ), hzs.switch("人物除雾", function() so=gg.getRangesList('libUE4.so')[1].start py=0X759BDF4 setvalue(so+py,16,8.95671814e-21) so=gg.getRangesList('libUE4.so')[1].start py=0X759D864 setvalue(so+py,16,8.95671814e-21) so=gg.getRangesList('libUE4.so')[1].start py=0X7A6E088 setvalue(so+py,16,8.95671814e-21) draw.setColor("#00FFFF") string.toMusic('开启成功') end, function() end ), hzs.switch("强锁帧率", function() local r = gg.prompt({'90\n120\n144'}, {''}, {'text'}) if r then local t = {"libUE4.so:bss", "Cb"} local tt = {0x344AF0, 0x10} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = r[1], freeze = true}}) end draw.setColor("#00FFFF") string.toMusic('开启成功') end, function() end ), }, ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --第四页 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ { hzs.text("音乐播放▶️","#FFFFFF","20sp"),--空文本可用于换行,sp调整距离 hzs.switch("红色高跟鞋", function() gg.playMusic("https://link.hhtjim.com/163/1959190717.mp3") end, function() end ), hzs.switch("起风了", function() gg.playMusic("https://link.hhtjim.com/163/1330348068.mp3") end, function() end ), hzs.switch("关闭音乐", function() string.toMusic('音乐关闭成功') end, function() end ),hzs.switch("音乐搜索", function() search = gg.prompt({ "输入要搜索的歌曲\n可加上歌手名字", "设置显示数量(数字)", },g.sel,{ "text", }) if not search then return end gg.saveVariable(search,g.config) bei() go1=search[1] go3=search[2] jg=start(go1,go3) if jg.code == 200 then fh=jg.content fh=json(fh) --print(fh) Play(gqlb,idb) else function inspect() gg.alert("访问网络异常,错误代码:\n\n"..jg.code) end if not pcall(inspect) then print("网络异常,请先连接上网络") os.exit() end end XGCK=-1 end, function() end ), }, ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- { hzs.button("⚠️选择游戏⚠️",gg.setProcessX),--同理 hzs.text("美好","#FFFFFF","20sp"),--空文本可用于换行,sp调整距离 hzs.switch("衣服美化", function() local cfg_file = gg.EXT_FILES_DIR.."/"..gg.getFile():match("[^/]+$").."(🍁.01).lua" local chunk = loadfile(cfg_file) local cfg = nil if chunk ~= nil then cfg = chunk() end if cfg == nil then cfg = {1400129,90} end wannian=gg.prompt({ "上半身初始值1400129\n睡衣1405208 橘龙1406908 恶魔1405341 小黑1406020\n血鸦1405870 冰雪1400782 球衣1405436 小紫1405558\n\n女胖达1405039 男胖达1405151 御灵师1405334 精灵王1406311\n嗜血龙1406897 金克丝1406140 兔女郎1405125 小青蛙1405171\n\n海洋之王1405983 金辉艳后1406475 血渊圣王1406872 逐风勇士1406805\n极辉女帝1406823 幽灵舞姬1406573 恶棍先生1405604 骑龙驯手1406895\n黄木乃伊1405623 白木乃伊1400687 地狱正午1406656 星空女王1406201\n蓝木乃伊1406891 暗星陨落1406878 晨星光耀1406879 可爱鲨鱼1406419\n懒散河童1406894 金鳄狂徒1406499 清心一夏1406146 乖张灵兔1406893\n沙狐剑客1406145 幻梦飞龙1406896\n\n圣金祝福男1406883 小黄龙衣服1406927 大企鹅衣服1405822 温柔仙人掌140602\n圣金祝福女1406882 小绿龙衣服1406926 蓝龙虾衣服1405401 悟空1406939 贝尔塔1406947 悟空赛亚人1406937 贝尔塔赛亚人1406948弗利萨1406938", },cfg,{"text"}) if wannian == nil then else gg.saveVariable(wannian, cfg_file) local t = {"libUE4.so:bss", "Cb"} local tt = {0x3A1D8,0x0,0x340,0x30,0x390,0x118} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = wannian[1]}}) if state then else end end end), hzs.switch("偏爱", function() gg.playMusic("https://link.hhtjim.com/163/1955039633.mp3") end, function() end ), }, }) --倒计时(ret.vip) gg.sleep(2000) bloc = luajava.getBlock() bloc('join')