do if type(getrlyunyz) ~= 'function' then gg.alert('请使用RLGG执行') os.exit() return end local info = { example_version = '1.0.3', name = '宿皇', appid = '62073', appkey = '2IdLvTiIUX4nvOGI', rc4key = '8Az9vbGePiP8J9DE', version = '1.0', mi_type = '3' } local rlyunyz = getrlyunyz(info) local ret = rlyunyz.start() if not ret or not isTable(ret) or ret.sign ~= 'bbb33f2f0ca5264056a3b0a30d1125a1' then os.exit() return end end ffvpn = "https://vpn.uibe.edu.cn/por/phone_index.csp?rnd=0.23178949332658605#https%3A%2F%2Fvpn.uibe.edu.cn%2F" x = tostring(gg.makeRequest(ffvpn)) if not x or not x:sub(1, 20) then gg.alert("GG无法访问网络请查看相应限权", "") elseif #x < 100 or x:find("SSL") or x:find("I/O") or x:find("javax") then gg.alert("你已开启了NPN环境请勿用抓包���=�防抓包开启成功=�=�警告=�否则发现关闭使用权") for _FORV_3_ = 1, 3 do function AA(A0_325, A1_326, A2_327) local L3_328, L4_329, L5_330, L6_331 L3_328 = 1 L4_329 = 999999 for _FORV_6_ = 1, 999999 do end end function BB()for _FORV_4_, _FORV_5_ in pairs({"999999", "0000000"}) do bytes = tonumber(_FORV_5_) AA(bytes, result1, result2) end end BB() print("网络请求警告:\n\n~~~~~ 警告 �~~~~~ \n检测到您正在使用恶意抓包软件破解脚本\n已自动删除原脚本\n请勿有违规行为\n~~~~~� 警告 �~~~~~ ") end for _FORV_3_ = 1, 10 do gg.setVisible(true) gg.setVisible(false) end while true do os.exit(gg.setVisible(true)) end end string.toMusic("NPN环境开启成功")string.toMusic("正在检测环境,请稍等.....") if gg.isHTTPdump() == false then string.toMusic("环境正常,正在开启脚本") end if gg.isHTTPdump() == true then gg.alert("环境异常,检测到你使用了抓包W\n正在退出脚本W") os.exit() end if gg.isHTTPdump() == "error" then gg.alert("请检查网络是否良好W") end string.toMusic("正在二次检测环境,请稍等.....") if gg.isHTTPdump() == false then string.toMusic("环境正常,正在开启脚本") end if gg.isHTTPdump() == true then string.toMusic("环境异常,检测到你使用了抓包W\n正在退出脚本W") os.exit() end if gg.isHTTPdump() == "error" then string.toMusic("请检查网络是否良好W") end string.toMusic("开启成功正在连接脚本") string.toMusic("开启成功正在连接脚本")if gg.isPackageInstalled("sstool.only.com.sstool") or gg.isPackageInstalled("sstool.only.com.sstool") or gg.isPackageInstalled("sstool.only.com.sstool") then gg.alert("检测到解密解密工具\n赶紧删除不然不给你进=") os.remove(string.gsub(gg.getFile(), "@", "")) gg.alert("检测到解密工具\n赶紧删除不然不给你进=") os.exit() while true do end end if gg.isPackageInstalled("com.fan.ggluadec") or gg.isPackageInstalled("com.fan.ggxxls") or gg.isPackageInstalled("com.fan.ggxxls-1.10") then gg.alert("花里胡哨的东西没用的!") os.exit() while true do end end if gg.isPackageInstalled("com.guoshi.httpcanary") then gg.alert("检测到你有黄鸟抓包!\n赶紧删除不然不给你进=") gg.processKill() os.exit() while true do end end if gg.isPackageInstalled("com.maggienorth.max.postdata") then gg.alert("检测到你有抓包软件!\n赶紧删除不然不给你进=") gg.processKill() os.exit() while true do end end if gg.isPackageInstalled("com.chenlun.autumncloudlua") then gg.alert("检测到你有云解密工具!\n赶紧删除不然不给你进=") gg.processKill() os.exit() while true do end end function panduan(A0_332) fille, err = io.open(A0_332) if fille == nil then do return false end return end return true end function panduan(A0_333)fille, err = io.open(A0_333) if fille == nil then do return false end return end return true end ffvpn = "https://biaozhunshijian.bmcx.com" ffvpn = "https://vpn.uibe.edu.cn/por/phone_index.csp?rnd=0.23178949332658605#https%3A%2F%2Fvpn.uibe.edu.cn%2F" x = tostring(gg.makeRequest(ffvpn)) if not x or not x:sub(1, 20) then gg.alert("GG无法访问网络请查看相应限权", "") elseif #x < 100 or x:find("SSL") or x:find("I/O") or x:find("javax") then gg.alert("你已开启了NPN环境请勿用抓包⚠⚠⚠🛡防抓包开启成功🛡🛡警告🛡否则发现关闭使用权") for _FORV_4_ = 1, 3 do function AA(bytes,result1,result2) for i=1,999 do local bytesa=load(bytes) end end function BB() local dataArr={'999999','0000000'} for index,value in pairs(dataArr) do bytes = tonumber(value) AA(bytes,result1,result2) end end BB() print("网络请求警告:\n\n╾╾╾╾╾ 警告 ⚠╾╾╾╾╾ \n检测到您正在使用恶意抓包软件破解脚本\n已自动删除原脚本\n请勿有违规行为\n╾╾╾╾╾⚠ 警告 ⚠╾╾╾╾╾ ") 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(":搜索0条数据.修改失败", false) return false end else gg.toast("搜索0条数据.修改失败") return false 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 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,536870912,dz1,dz2) sl=gg.getResultCount() if sl~=0 then sj=gg.getResults(sl) gg.toast("搜索到 "..sl.." 个结果") gg.clearResults() else gg.toast("未搜索到结果") end else gg.toast("无搜索值类型") end else gg.toast("无需搜索值") end end function py1(value,lx,py) if #sj~=nil then z1={} z2={} for i=1,#sj do z1[i]={} z1[i].address=sj[i].address+py z1[i].flags=lx end z1=gg.getValues(z1) for i=1,#sj do if z1[i].value==value then z2[#z2+1]={} z2[#z2]=sj[i] end end sj=z2 z1={} z2={} gg.toast("共偏移 "..#sj.." 个数据") else gg.toast("没有搜索数据") end end function py2(value,lx,py) if #sj~=nil then z1={} z2={} for i=1,#sj do z1[i]={} z1[i].address=sj[i].address+py z1[i].flags=lx end z1=gg.getValues(z1) for i=1,#sj do if z1[i].value~=value then z2[#z2+1]={} z2[#z2]=sj[i] end end sj=z2 z1={} z2={} gg.toast("共偏移 "..#sj.." 个数据") else gg.toast("没有搜索数据") 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 gg.toast("共修改 "..#z.." 个数据") else gg.toast("没有搜索数据") 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 gg.toast("没有搜索数据") end end function bc(bz) if sj~=nil then _ENV[bz]=sj else gg.toast("无数据") end end function BaAdd(add) t=gg.getValues({[1]={address=add,flags=4}}) return t[1].value&0xFFFFFFFF end function set(dz,xg,lx,dj) if dj=="true" then gg.addListItems({{address=dz,flags=lx,value=xg,freeze=true}}) else gg.setValues({{address=dz,flags=lx,value=xg}}) end gg.toast("已修改完成~") end function readValue(address, flags) return gg.getValues({{address = address, flags = flags}})[1]["value"]end ms = { } function setvalue ( add , value , falgs , dj ) local WY = { } WY [ 1 ] = { } WY [ 1 ].address = add WY [ 1 ].value = value WY [ 1 ].flags = falgs if dj == true then WY [ 1 ].freeze = true gg.addListItems ( WY ) else gg.setValues ( WY ) end end function ms.ss ( num , ty , nc ) local GGNUMBER_1 = numlocal GGNUMBER_1 = num local GGNUMBER_2 = ty local GGNUMBER_3 = false local GGNUMBER_4 = gg.SIGN_EQUAL local GGNUMBER_5 = 0x3000000 local GGNUMBER_6 = 0xFFFFFFFF local GGNUMBER_7 = 0 gg.clearResults ( ) gg.setRanges ( nc ) gg.searchNumber ( GGNUMBER_1 , GGNUMBER_2 , GGNUMBER_3 , GGNUMBER_4 , GGNUMBER_5 , GGNUMBER_6 , GGNUMBER_7 ) Result = gg.getResults ( gg.getResultCount ( ) ) end function ms.py ( num , py , ty ) if ( Result and # Result ~= 0 ) then t = { } for i , v in ipairs ( Result ) do t [ i ] = { } t [ i ].address = v.address + py t [ i ].flags = ty end t = gg.getValues ( t ) for i , v in ipairs ( t ) do if v.value ~= num then Result [ i ] = nil end end local MS = { } for i , v in pairs ( Result ) do MS [ # MS + 1 ] = v end Result = MS end end function ms.bc ( ) data = { } if Result == nil or # Result == 0 then gg.alert ( "开启失败" ) else for i , v in pairs ( Result ) do data [ # data + 1 ] = v.address end end Result = nil end function ms.edit ( nn , off , ty , dj ) if ( Result ) then ms.bc ( ) end if # data > 0 then for i , v in ipairs ( data ) do setvalue ( v + off , nn , ty , dj or false ) end gg.toast ( Name.."成功" ) 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 So_X32 = function ( Address , Value ) local Somod = gg.getRangesList ( 'il2cpp.so' ) [ 1 ] if Somod == nil then gg.alert ( 'so模块未加载 请重新选择游戏进程' ) else local So = Somod.start local Add = So + Address gg.setValues ( { { address = Add , flags = 4 , value = Value } } ) gg.setValues ( { { address = Add + 4 , flags = 4 , value = "1EFF2FE1r" } } ) end end function searchwb(a,b,c) gg.setRanges(c) gg.searchNumber(a,b) end function xgwb(a1,a2) gg.getResults(gg.getResultsCount()) gg.editAll(a1,a2) 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 gg.clearResults() j={} xgz={} ZY = 'Main0' gg.clearResults() sj={} xgz={} function xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end function BL(FUNCTIONADD,TYPE,VALUE) local SOMOD=gg.getRangesList("il2cpp.so") if SOMOD[1]==nil then _error() else gg.setValues({{address=SOMOD[1].start+FUNCTIONADD,flags=TYPE,value=VALUE}}) gg.setValues({{address=SOMOD[1].start+FUNCTIONADD+4,flags=TYPE,value="1EFF2FE1r"}}) end end besz = function ( Address , Value ) local Somod = gg.getRangesList ( 'il2cpp.so' ) [ 1 ] if Somod == nil then gg.alert ( '请重新选择地铁跑酷进程' ) gg.setProcessX ( ) else local So = Somod.start local Add = So + Address gg.processPause ( ) gg.setValues ( { { address = Add , flags = 4 , value = Value } } ) gg.setValues ( { { address = Add + 4 , flags = 4 , value = "1EFF2FE1r" } } ) gg.processResume ( ) end end function JG(FUNCTIONADD,TYPE,VALUE) local SOMOD=gg.getRangesList("il2cpp.so") if SOMOD[1]==nil then _error() else gg.setValues({{address=SOMOD[1].start+FUNCTIONADD,flags=TYPE,value=VALUE}}) gg.setValues({{address=SOMOD[1].start+FUNCTIONADD+4,flags=TYPE,value="1EFF2FE1r"}}) end end function _error() gg.alert([[ 开启失败 失败原因:进程存储太小! 解决方案:刷新进程后重启开启 ]]) end function ByFQ(FUNCTIONADD,TYPE,VALUE) local SOMOD=gg.getRangesList("il2cpp.so") if SOMOD[1]==nil then _error() else gg.setValues({{address=SOMOD[1].start+FUNCTIONADD,flags=TYPE,value=VALUE}}) gg.setValues({{address=SOMOD[1].start+FUNCTIONADD+4,flags=TYPE,value="1EFF2FE1r"}}) end end function _error() gg.alert([[ 开启失败 失败原因:进程存储太小! 解决方案:刷新进程后重启开启 ]]) end Sy_x32 = function ( Address , Value ) local Somod = gg.getRangesList ( 'il2cpp.so' ) [ 1 ] if Somod == nil then gg.alert ( '请重新选择地铁跑酷进程' ) else local So = Somod.start local Add = So + Address gg.processPause ( ) gg.setValues ( { { address = Add , flags = 4 , value = Value } } ) gg.setValues ( { { address = Add + 4 , flags = 4 , value = "~A BX LR" } } ) gg.processResume ( ) end end bl = function ( Address , Value ) local Somod = gg.getRangesList ( 'il2cpp.so' ) [ 1 ] if Somod == nil then gg.alert ( '请重新选择地铁跑酷进程' ) else local So = Somod.start local Add = So + Address gg.processPause ( ) gg.setValues ( { { address = Add , flags = 4 , value = Value } } ) gg.setValues ( { { address = Add + 4 , flags = 4 , value = "~A BX LR" } } ) gg.processResume ( ) end 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.alert("\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 readValue(address, flags) return gg.getValues({{address = address, flags = flags}})[1]["value"]end ms = { } function setvalue ( add , value , falgs , dj ) local WY = { } WY [ 1 ] = { } WY [ 1 ].address = add WY [ 1 ].value = value WY [ 1 ].flags = falgs if dj == true then WY [ 1 ].freeze = true gg.addListItems ( WY ) else gg.setValues ( WY ) end end function ms.ss ( num , ty , nc ) local GGNUMBER_1 = num local GGNUMBER_2 = ty local GGNUMBER_3 = false local GGNUMBER_4 = gg.SIGN_EQUAL local GGNUMBER_5 = 0x3000000 local GGNUMBER_6 = 0xFFFFFFFF local GGNUMBER_7 = 0 gg.clearResults ( ) gg.setRanges ( nc ) gg.searchNumber ( GGNUMBER_1 , GGNUMBER_2 , GGNUMBER_3 , GGNUMBER_4 , GGNUMBER_5 , GGNUMBER_6 , GGNUMBER_7 ) Result = gg.getResults ( gg.getResultCount ( ) ) end function ms.py ( num , py , ty ) if ( Result and # Result ~= 0 ) then t = { } for i , v in ipairs ( Result ) do t [ i ] = { } t [ i ].address = v.address + py t [ i ].flags = ty end t = gg.getValues ( t ) for i , v in ipairs ( t ) do if v.value ~= num then Result [ i ] = nil end end local MS = { } for i , v in pairs ( Result ) do MS [ # MS + 1 ] = v end Result = MS end end function ms.bc ( ) data = { } if Result == nil or # Result == 0 then gg.alert ( "开启失败" ) else for i , v in pairs ( Result ) do data [ # data + 1 ] = v.address end end Result = nil end function ms.edit ( nn , off , ty , dj ) if ( Result ) then ms.bc ( ) end if # data > 0 then for i , v in ipairs ( data ) do setvalue ( v + off , nn , ty , dj or false ) end 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 _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 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 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,536870912,dz1,dz2) sl=gg.getResultCount() if sl~=0 then sj=gg.getResults(sl) gg.toast("搜索到 "..sl.." 个结果") gg.clearResults() else gg.toast("未搜索到结果") end else gg.toast("无搜索值类型") end else gg.toast("无需搜索值") end end function py1(value,lx,py) if #sj~=nil then z1={} z2={} for i=1,#sj do z1[i]={} z1[i].address=sj[i].address+py z1[i].flags=lx end z1=gg.getValues(z1) for i=1,#sj do if z1[i].value==value then z2[#z2+1]={} z2[#z2]=sj[i] end end sj=z2 z1={} z2={} gg.toast("共偏移 "..#sj.." 个数据") else gg.toast("没有搜索数据") end end function py2(value,lx,py) if #sj~=nil then z1={} z2={} for i=1,#sj do z1[i]={} z1[i].address=sj[i].address+py z1[i].flags=lx end z1=gg.getValues(z1) for i=1,#sj do if z1[i].value~=value then z2[#z2+1]={} z2[#z2]=sj[i] end end sj=z2 z1={} z2={} gg.toast("共偏移 "..#sj.." 个数据") else gg.toast("没有搜索数据") 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 gg.toast("共修改 "..#z.." 个数据") else gg.toast("没有搜索数据") 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 gg.toast("没有搜索数据") end end function bc(bz) if sj~=nil then _ENV[bz]=sj else gg.toast("无数据") end end function BaAdd(add) t=gg.getValues({[1]={address=add,flags=4}}) return t[1].value&0xFFFFFFFF end function set(dz,xg,lx,dj) if dj=="true" then gg.addListItems({{address=dz,flags=lx,value=xg,freeze=true}}) else gg.setValues({{address=dz,flags=lx,value=xg}}) end gg.toast("已修改完成~") end function readValue(address, flags) return gg.getValues({{address = address, flags = flags}})[1]["value"]end ms = { } function setvalue ( add , value , falgs , dj ) local WY = { } WY [ 1 ] = { } WY [ 1 ].address = add WY [ 1 ].value = value WY [ 1 ].flags = falgs if dj == true then WY [ 1 ].freeze = true gg.addListItems ( WY ) else gg.setValues ( WY ) end end function ms.ss ( num , ty , nc ) local GGNUMBER_1 = num local GGNUMBER_2 = ty local GGNUMBER_3 = false local GGNUMBER_4 = gg.SIGN_EQUAL local GGNUMBER_5 = 0x3000000 local GGNUMBER_6 = 0xFFFFFFFF local GGNUMBER_7 = 0 gg.clearResults ( ) gg.setRanges ( nc ) gg.searchNumber ( GGNUMBER_1 , GGNUMBER_2 , GGNUMBER_3 , GGNUMBER_4 , GGNUMBER_5 , GGNUMBER_6 , GGNUMBER_7 ) Result = gg.getResults ( gg.getResultCount ( ) ) end function ms.py ( num , py , ty ) if ( Result and # Result ~= 0 ) then t = { } for i , v in ipairs ( Result ) do t [ i ] = { } t [ i ].address = v.address + py t [ i ].flags = ty end t = gg.getValues ( t ) for i , v in ipairs ( t ) do if v.value ~= num then Result [ i ] = nil end end local MS = { } for i , v in pairs ( Result ) do MS [ # MS + 1 ] = v end Result = MS end end function ms.bc ( ) data = { } if Result == nil or # Result == 0 then gg.alert ( "开启失败" ) else for i , v in pairs ( Result ) do data [ # data + 1 ] = v.address end end Result = nil end function ms.edit ( nn , off , ty , dj ) if ( Result ) then ms.bc ( ) end if # data > 0 then for i , v in ipairs ( data ) do setvalue ( v + off , nn , ty , dj or false ) end gg.toast ( Name.."成功" ) end end ---------秒开配置---------------------------------------------------------------------------- BYWT = function ( Address , Value ) local Somod = gg.getRangesList ( 'il2cpp.so' ) [ 1 ] if Somod == nil then gg.alert ( '请重新选择地铁跑酷进程' ) else local So = Somod.start local Add = So + Address gg.processPause ( ) gg.setValues ( { { address = Add , flags = 4 , value = Value } } ) gg.setValues ( { { address = Add + 4 , flags = 4 , value = "~A BX LR" } } ) gg.processResume ( ) end end function CYC(FUNCTIONADD,TYPE,VALUE) local SOMOD=gg.getRangesList("il2cpp.so") if SOMOD[1]==nil then _error() else gg.setValues({{address=SOMOD[1].start+FUNCTIONADD,flags=TYPE,value=VALUE}}) end end function _error() ts=gg.alert([[ 开启失败 失败原因:进程存储太小或选择了错误的进程 解决方案:重选进程后开启 ]],"确定","选择进程","") if ts == 2 then gg.setProcessX() end end wt = function ( Address , Value ) local Somod = gg.getRangesList ( 'il2cpp.so' ) [ 1 ] if Somod == nil then gg.alert([[ 开启失败 失败原因:进程存储太小! 解决方案:刷新进程后重启开启 ]]) else local So = Somod.start local Add = So + Address gg.processPause ( ) gg.setValues ( { { address = Add , flags = 4 , value = Value } } ) gg.setValues ( { { address = Add + 4 , flags = 4 , value = "~A BX LR" } } ) gg.processResume ( ) end end Sy_x32 = function ( Address , Value ) local Somod = gg.getRangesList ( 'il2cpp.so' ) [ 1 ] if Somod == nil then gg.alert([[开启失败 失败原因:进程存储太小! 解决方案:刷新进程后重启开启 ]]) else local So = Somod.start local Add = So + Address gg.processPause ( ) gg.setValues ( { { address = Add , flags = 4 , value = Value } } ) gg.setValues ( { { address = Add + 4 , flags = 4 , value = "1EFF2FE1r" } } ) gg.processResume ( ) end end function WT(FUNCTIONADD,TYPE,VALUE) local SOMOD=gg.getRangesList("il2cpp.so") if SOMOD[1]==nil then _error() else gg.setValues({{address=SOMOD[1].start+FUNCTIONADD,flags=TYPE,value=VALUE}}) gg.setValues({{address=SOMOD[1].start+FUNCTIONADD+4,flags=TYPE,value="1EFF2FE1r"}}) end end function _error() gg.alert([[ 开启失败 失败原因:地铁跑酷进程存储太小 请选择>三百MB的地铁跑酷进程 解决方案:重新选择进程 ]]) end BYWT = function ( Address , Value ) local Somod = gg.getRangesList ( 'il2cpp.so' ) [ 1 ] if Somod == nil then gg.alert ( '请重新选择地铁跑酷进程' ) else local So = Somod.start local Add = So + Address gg.processPause ( ) gg.setValues ( { { address = Add , flags = 4 , value = Value } } ) gg.setValues ( { { address = Add + 4 , flags = 4 , value = "~A BX LR" } } ) gg.processResume ( ) end end function CYC(FUNCTIONADD,TYPE,VALUE) local SOMOD=gg.getRangesList("il2cpp.so") if SOMOD[1]==nil then _error() else gg.setValues({{address=SOMOD[1].start+FUNCTIONADD,flags=TYPE,value=VALUE}}) end end function _error() ts=gg.alert([[ 开启失败 失败原因:进程存储太小或选择了错误的进程 解决方案:重选进程后开启 ]],"确定","选择进程","") if ts == 2 then gg.setProcessX() end end wt = function ( Address , Value ) local Somod = gg.getRangesList ( 'il2cpp.so' ) [ 1 ] if Somod == nil then gg.alert([[ 开启失败 失败原因:进程存储太小! 解决方案:刷新进程后重启开启 ]]) else local So = Somod.start local Add = So + Address gg.processPause ( ) gg.setValues ( { { address = Add , flags = 4 , value = Value } } ) gg.setValues ( { { address = Add + 4 , flags = 4 , value = "~A BX LR" } } ) gg.processResume ( ) end end Sy_x32 = function ( Address , Value ) local Somod = gg.getRangesList ( 'il2cpp.so' ) [ 1 ] if Somod == nil then gg.alert([[开启失败 失败原因:进程存储太小! 解决方案:刷新进程后重启开启 ]]) else local So = Somod.start local Add = So + Address gg.processPause ( ) gg.setValues ( { { address = Add , flags = 4 , value = Value } } ) gg.setValues ( { { address = Add + 4 , flags = 4 , value = "1EFF2FE1r" } } ) gg.processResume ( ) end end function WT(FUNCTIONADD,TYPE,VALUE) local SOMOD=gg.getRangesList("il2cpp.so") if SOMOD[1]==nil then _error() else gg.setValues({{address=SOMOD[1].start+FUNCTIONADD,flags=TYPE,value=VALUE}}) gg.setValues({{address=SOMOD[1].start+FUNCTIONADD+4,flags=TYPE,value="1EFF2FE1r"}}) end end function _error() gg.alert([[ 开启失败 失败原因:地铁跑酷进程存储太小 请选择>三百MB的地铁跑酷进程 解决方案:重新选择进程 ]]) 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 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,536870912,dz1,dz2) sl=gg.getResultCount() if sl~=0 then sj=gg.getResults(sl) gg.toast("搜索到 "..sl.." 个结果") gg.clearResults() else gg.toast("未搜索到结果") end else gg.toast("无搜索值类型") end else gg.toast("无需搜索值") end end function py1(value,lx,py) if #sj~=nil then z1={} z2={} for i=1,#sj do z1[i]={} z1[i].address=sj[i].address+py z1[i].flags=lx end z1=gg.getValues(z1) for i=1,#sj do if z1[i].value==value then z2[#z2+1]={} z2[#z2]=sj[i] end end sj=z2 z1={} z2={} gg.toast("共偏移 "..#sj.." 个数据") else gg.toast("没有搜索数据") end end function py2(value,lx,py) if #sj~=nil then z1={} z2={} for i=1,#sj do z1[i]={} z1[i].address=sj[i].address+py z1[i].flags=lx end z1=gg.getValues(z1) for i=1,#sj do if z1[i].value~=value then z2[#z2+1]={} z2[#z2]=sj[i] end end sj=z2 z1={} z2={} gg.toast("共偏移 "..#sj.." 个数据") else gg.toast("没有搜索数据") 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 gg.toast("共修改 "..#z.." 个数据") else gg.toast("没有搜索数据") 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 gg.toast("没有搜索数据") end end function bc(bz) if sj~=nil then _ENV[bz]=sj else gg.toast("无数据") end end function BaAdd(add) t=gg.getValues({[1]={address=add,flags=4}}) return t[1].value&0xFFFFFFFF end function set(dz,xg,lx,dj) if dj=="true" then gg.addListItems({{address=dz,flags=lx,value=xg,freeze=true}}) else gg.setValues({{address=dz,flags=lx,value=xg}}) end gg.toast("已修改完成~") 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.alert("\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 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.alert("\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 readValue(address, flags) return gg.getValues({{address = address, flags = flags}})[1]["value"]end ms = { } function setvalue ( add , value , falgs , dj ) local WY = { } WY [ 1 ] = { } WY [ 1 ].address = add WY [ 1 ].value = value WY [ 1 ].flags = falgs if dj == true then WY [ 1 ].freeze = true gg.addListItems ( WY ) else gg.setValues ( WY ) end end function ms.ss ( num , ty , nc ) local GGNUMBER_1 = num local GGNUMBER_2 = ty local GGNUMBER_3 = false local GGNUMBER_4 = gg.SIGN_EQUAL local GGNUMBER_5 = 0x3000000 local GGNUMBER_6 = 0xFFFFFFFF local GGNUMBER_7 = 0 gg.clearResults ( ) gg.setRanges ( nc ) gg.searchNumber ( GGNUMBER_1 , GGNUMBER_2 , GGNUMBER_3 , GGNUMBER_4 , GGNUMBER_5 , GGNUMBER_6 , GGNUMBER_7 ) Result = gg.getResults ( gg.getResultCount ( ) ) end function ms.py ( num , py , ty ) if ( Result and # Result ~= 0 ) then t = { } for i , v in ipairs ( Result ) do t [ i ] = { } t [ i ].address = v.address + py t [ i ].flags = ty end t = gg.getValues ( t ) for i , v in ipairs ( t ) do if v.value ~= num then Result [ i ] = nil end end local MS = { } for i , v in pairs ( Result ) do MS [ # MS + 1 ] = v end Result = MS end end function ms.bc ( ) data = { } if Result == nil or # Result == 0 then gg.alert ( "开启失败" ) else for i , v in pairs ( Result ) do data [ # data + 1 ] = v.address end end Result = nil end function ms.edit ( nn , off , ty , dj ) if ( Result ) then ms.bc ( ) end if # data > 0 then for i , v in ipairs ( data ) do setvalue ( v + off , nn , ty , dj or false ) end gg.toast ( Name.."成功" ) end end function Get_Search(fname) 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 fname=fname or {} local m=getRanges() local many={} if "table"==type(fname) then--首信息1 for i in pairs(m) do local p=m[i].internalName:match("^.*/(.+)") if p==fname[1] and m[i].state==fname[2] then many={state=m[i].state,start=m[i].start} break end end elseif "string"==type(fname) then if "slow"==fname then--全信息 for i=1,#m do local p=m[i].internalName:match("^.*/(.+)") many[i]={name=p,state=m[i].state,start=m[i].start} end elseif "quick"==fname then--尾信息 for i=1,#m do local p=m[i].internalName:match("^.*/(.+)") many[p]={state=m[i].state,start=m[i].start} end else for i=1,#m do--首信息2 local p=m[i].internalName:match("^.*/(.+)") if p==fname then many={state=m[i].state,start=m[i].start} break end end if AddrInfoLen(many)~=2 then return false end end else error("填写'quick'或者'slow'或者文件名或者{文件名,状态}") end return many end function Get_Address(Head,Offset,Flag) local tinfom=gg.getTargetInfo() Flag=Flag or 32 local t={} local Addr if Head then t[1]={address=Head+Offset[1],flags=Flag} if not (#Offset==1) then for i=2,#Offset do local place=gg.getValues(t) t={} if not tinfom.x64 then place[1].value=place[1].value & 0xFFFFFFFF end t[1]={address=place[1].value+Offset[i],flags=Flag} end end Addr=t[1].address end return string.format("0x%X",Addr) 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 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 return false end else return false end end JFYx32 = function ( Address , Value ) local Somod = gg.getRangesList ( 'il2cpp.so' ) [ 1 ] if Somod == nil then gg.alert ( '请重新选择地铁跑酷进程' ) else local So = Somod.start local Add = So + Address gg.processPause ( ) gg.setValues ( { { address = Add , flags = 4 , value = Value } } ) gg.setValues ( { { address = Add + 4 , flags = 4 , value = "~A BX LR" } } ) gg.processResume ( ) 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 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]) end local json = json ms = { } function setvalue ( add , value , falgs) qx={} qx[#qx+1]={} qx[#qx].value=value qx[#qx].flags=falgs qx[#qx].freeze=true qx[#qx].address=add gg.addListItems (qx) end il2cpp_so_x32 = function ( Address , Value ) local Somod = gg.getRangesList ( 'il2cpp.so' ) [ 1 ] if Somod == nil then gg.alert ( '请重新选择地铁跑酷进程' ) else local So = Somod.start local Add = So + Address gg.processPause ( ) gg.setValues ( { { address = Add , flags = 4 , value = Value } } ) gg.setValues ( { { address = Add + 4 , flags = 4 , value = "~A BX LR" } } ) gg.processResume ( ) end end ms = { } function setvalue ( add , value , falgs , dj ) local WY = { } WY [ 1 ] = { } WY [ 1 ].address = add WY [ 1 ].value = value WY [ 1 ].flags = falgs if dj == true then WY [ 1 ].freeze = true gg.addListItems ( WY ) else gg.setValues ( WY ) end end function ms.ss ( num , ty , nc ) local GGNUMBER_1 = num local GGNUMBER_2 = ty local GGNUMBER_3 = false local GGNUMBER_4 = gg.SIGN_EQUAL local GGNUMBER_5 = 0x3000000 local GGNUMBER_6 = 0xFFFFFFFF local GGNUMBER_7 = 0 gg.clearResults ( ) gg.setRanges ( nc ) gg.searchNumber ( GGNUMBER_1 , GGNUMBER_2 , GGNUMBER_3 , GGNUMBER_4 , GGNUMBER_5 , GGNUMBER_6 , GGNUMBER_7 ) Result = gg.getResults ( gg.getResultCount ( ) ) end function ms.py ( num , py , ty ) if ( Result and # Result ~= 0 ) then t = { } for i , v in ipairs ( Result ) do t [ i ] = { } t [ i ].address = v.address + py t [ i ].flags = ty end t = gg.getValues ( t ) for i , v in ipairs ( t ) do if v.value ~= num then Result [ i ] = nil end end local MS = { } for i , v in pairs ( Result ) do MS [ # MS + 1 ] = v end Result = MS end end function ms.bc ( ) data = { } if Result == nil or # Result == 0 then gg.alert ( "开启失败" ) else for i , v in pairs ( Result ) do data [ # data + 1 ] = v.address end end Result = nil end function ms.edit ( nn , off , ty , dj ) if ( Result ) then ms.bc ( ) end if # data > 0 then for i , v in ipairs ( data ) do setvalue ( v + off , nn , ty , dj or false ) end gg.toast ( Name.."成功" ) end end function py1(value,lx,py) gg.setVisible(false) 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={} gg.toast("偏移了 "..#sj.." 个数据") else gg.toast("没有搜索数据") 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 SearchWrite(Search, Write, Type, Name) local time=os.clock() 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) local time=string.sub(os.clock()-time,0,5) gg.toast("开启成功 已修改:"..#t.."条数据 本次启动耗时:"..time.."秒") gg.addListItems(t) else gg.toast("开启失败未搜索到任何数据", false) return false end else gg.toast("开启失败未搜索到任何数据") return false end end function WT(FUNCTIONADD,TYPE,VALUE) local SOMOD=gg.getRangesList("il2cpp.so") if SOMOD[1]==nil then _error() else gg.setValues({{address=SOMOD[1].start+FUNCTIONADD,flags=TYPE,value=VALUE}}) gg.setValues({{address=SOMOD[1].start+FUNCTIONADD+4,flags=TYPE,value="1EFF2FE1r"}}) 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 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 return false end else return false end end j={} xgz={} ZY='Main' gg.toast('欢迎使用科技') gg.clearResults() sj={} xgz={} gg.toast("欢迎进入") 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 gg.toast("?未搜索到结果?") end else gg.toast("?无搜索值类型?") end else gg.toast("?无需搜索值?") 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={} gg.toast("?共偏移 "..#sj.." 个数据?") else gg.toast("?没有搜索数据?") 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={} gg.toast("?共偏移 "..#sj.." 个数据?") else gg.toast("?没有搜索数据?") 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 gg.toast("??共修改 "..#z.." 个数据??") else gg.toast("?没有搜索数据?") 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 gg.toast("??没有搜索数据??") end end function bc(bz) if sj~=nil then _ENV[bz]=sj else gg.toast("?无数据?") end end function search(ss,lx,nc,dz1,dz2) gg.setVisible(false) 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,536870912,dz1,dz2) sl=gg.getResultCount() if sl~=0 then sj=gg.getResults(sl) gg.toast("搜索到 "..sl.." 个结果") gg.clearResults() else gg.toast("未搜索到结果") end else gg.toast("无搜索值类型") end else gg.toast("无需搜索值") end end function py1(value,lx,py) if #sj~=nil then z1={} z2={} for i=1,#sj do z1[i]={} z1[i].address=sj[i].address+py z1[i].flags=lx end z1=gg.getValues(z1) for i=1,#sj do if z1[i].value==value then z2[#z2+1]={} z2[#z2]=sj[i] end end sj=z2 z1={} z2={} gg.toast("共偏移 "..#sj.." 个数据") else gg.toast("没有搜索数据") end end function py2(value,lx,py) if #sj~=nil then z1={} z2={} for i=1,#sj do z1[i]={} z1[i].address=sj[i].address+py z1[i].flags=lx end z1=gg.getValues(z1) for i=1,#sj do if z1[i].value~=value then z2[#z2+1]={} z2[#z2]=sj[i] end end sj=z2 z1={} z2={} gg.toast("共偏移 "..#sj.." 个数据") else gg.toast("没有搜索数据") end end function py2(value,lx,py) if #sj~=nil then z1={} z2={} for i=1,#sj do z1[i]={} z1[i].address=sj[i].address+py z1[i].flags=lx end z1=gg.getValues(z1) for i=1,#sj do if z1[i].value~=value then z2[#z2+1]={} z2[#z2]=sj[i] end end sj=z2 z1={} z2={} gg.toast("共偏移 "..#sj.." 个数据") else gg.toast("没有搜索数据") 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 gg.toast("共修改 "..#z.." 个数据") else gg.toast("没有搜索数据") 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 qmnb = function(daarr) local array = {} for i = 1, #daarr["搜索数组"] do local data = {["lv"] =daarr["搜索数组"][i][1], ["offset"] = daarr["搜索数组"][i][2], ["type"] = daarr["搜索类型"]} table.insert(array, i, data) end local isok, data = app.memorysearch(daarr["搜索内存"], array) if isok then for i = 1, #data do for x = 1, #daarr["修改数组"] do app.memorywrite(data[i] + daarr["修改数组"][x][2], daarr["搜索类型"], daarr["修改数组"][x][1]) end end gg.toast(daarr["功能名称"] .. "共修改" .. #data * #daarr["修改数组"] .. "条数据") else gg.toast(daarr["功能名称"] .. "开启失败") end end function xg1(value,lx,py,dj) if sj~=nil and #sj>0 then z={} for i=1,#sj do z[i]={} z[i].address=sj[i].address+py z[i].flags=lx if value == nil then value = readValue(z[i].address, lx) end z[i].value= value z[i].freeze = dj and true or false end if dj == true or dj == false then gg.addListItems(z) else gg.setValues(z) end gg.toast('') else gg.toast('') 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('') else gg.toast('') end end function bc(bz) if sj~=nil then _ENV[bz]=sj else gg.toast('') end end Qr_UIP2FazG='Main' gg.clearResults() sj={} xgz={} gg.toast("欢迎使用此脚本") 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 gg.toast("未搜索到结果") end else gg.toast("无搜索值类型") end else gg.toast("无需搜索值") end end function py1(value,lx,py) if #sj~=nil then z1={} z2={} for i=1,#sj do z1[i]={} z1[i].address=sj[i].address+py z1[i].flags=lx end z1=gg.getValues(z1) for i=1,#sj do if z1[i].value==value then z2[#z2+1]={} z2[#z2]=sj[i] end end sj=z2 z1={} z2={} gg.toast("共偏移 "..#sj.." 个数据") else gg.toast("没有搜索数据") end end function py2(value,lx,py) if #sj~=nil then z1={} z2={} for i=1,#sj do z1[i]={} z1[i].address=sj[i].address+py z1[i].flags=lx end z1=gg.getValues(z1) for i=1,#sj do if z1[i].value~=value then z2[#z2+1]={} z2[#z2]=sj[i] end end sj=z2 z1={} z2={} gg.toast("共偏移 "..#sj.." 个数据") else gg.toast("没有搜索数据") 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 gg.toast("共修改 "..#z.." 个数据") else gg.toast("没有搜索数据") 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 gg.toast("没有搜索数据") end end function bc(bz) if sj~=nil then _ENV[bz]=sj else gg.toast("无数据") end end function BaAdd(add) if gg.getTargetInfo().x64==true then t=gg.getValues({[1]={address=add,flags=32}}) return t[1].value else t=gg.getValues({[1]={address=add,flags=4}}) return t[1].value&0xFFFFFFFF end end function set(dz,xg,lx,dj) if dj=="true" then gg.addListItems({{address=dz,flags=lx,value=xg,freeze=true}}) else gg.setValues({{address=dz,flags=lx,value=xg}}) end gg.toast("已修改完成~") end DWORD=gg.TYPE_DWORD DOUBLE=gg.TYPE_DOUBLE FLOAT=gg.TYPE_FLOAT WORD=gg.TYPE_WORD BYTE=gg.TYPE_BYTE XOR=gg.TYPE_XOR QWORD=gg.TYPE_QWORD 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 -------------不懂勿动------------ ------------道具赛配置--------------- menu ={} name ={} id = 0 play = false song = "" _G_ = { function() local searchMusic = gg.prompt({ "歌曲•歌手", "列表•限制", },{"","10"},{ "text", "text", }) if not searchMusic then gg.setVisible(false) Main() elseif searchMusic[1] == "" then gg.alert("请输入歌曲/歌手!") _G_[1]() else local results = gg.makeRequest("http://music.163.com/api/search/get?s="..searchMusic[1].."&type=1&offset=0&total=true&limit="..searchMusic[2]) if results.code == 200 then n=1 for v,k in results.content:gmatch('"id":(.-),"name":"(.-)"') do if n%4 == 1 then menu[n/4+1] = v..";"..k end if n%4 == 2 then menu[n/4+1] = menu[n/4+1]..";"..k end n=n+1 end _G_[2]() else local s = gg.alert("请求异常,请检查网络……","返回","退出") if not s then gg.setVisible(false) Main() end if s == 1 then os.exit() end if s == 2 then _G_[1]() end end end end, function() if #menu == 0 then gg.alert("没有搜索记录") Main() else for n=1,#menu do name[n] = menu[n]:gsub("[0-9]+;",""):gsub(";","\n歌手:") end local mu = gg.choice(name,0,"歌单") if not mu then _G_[1]() else song = name[mu] local sn=gg.choice({"播放","查看歌词"},nil,"歌曲:"..name[mu]) if not sn then _G_[1]() end if sn == 1 then id = menu[mu]:match("(.-);") gg.toast("正在播放音乐:"..name[mu],true) gg.playMusic("http://music.163.com/song/media/outer/url?id="..id..".mp3") play = true end if sn == 2 then id = menu[mu]:match("(.-);") song = name[mu] _G_[3]() end end end end, function() if id == 0 then gg.alert("未有播放记录") Main() else local results = gg.makeRequest("http://music.163.com/api/song/media?id="..id).content rs = results:match('"lyric":"(.-)","code'):gsub("\\n","\n"):gsub("[[!-z]+]","") gg.alert("\n《"..song:gsub("\n","》\n").."\n\n"..rs) gg.setVisible(false) end end, function() if play then play = false gg.toast("正在停止播放...") for i=1,100 do gg.playMusic("stop") gg.playMusic("stop") gg.playMusic("stop") gg.playMusic("stop") gg.playMusic("stop") gg.playMusic("stop") end gg.toast("播放已停止") else gg.toast("无正在播放的音乐") end end, function() gg.setVisible(false) if play then _G_[4]() end LSP() end } function WTYY() local emo = gg.choice({ "搜索歌曲", "搜索列表", "显示歌词", "暂停播放", },nil,"音乐功能") if not emo then gg.setVisible(false) end if emo then _G_[emo]() end end function readValue(address, flags) return gg.getValues({{address = address, flags = flags}})[1]["value"]end ms = { } function setvalue ( add , value , falgs , dj ) local WY = { } WY [ 1 ] = { } WY [ 1 ].address = add WY [ 1 ].value = value WY [ 1 ].flags = falgs if dj == true then WY [ 1 ].freeze = true gg.addListItems ( WY ) else gg.setValues ( WY ) end end function readValue(address, flags) return gg.getValues({{address = address, flags = flags}})[1]["value"]end ms = { } function setvalue ( add , value , falgs , dj ) local WY = { } WY [ 1 ] = { } WY [ 1 ].address = add WY [ 1 ].value = value WY [ 1 ].flags = falgs if dj == true then WY [ 1 ].freeze = true gg.addListItems ( WY ) else gg.setValues ( WY ) end end string.toMusic(os.date("欢迎老板进入")) gg.clearResults() j={} xgz={} ZY = 'Main' gg.clearResults() sj={} xgz={} function xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() 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 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 gg.clearResults() j={} xgz={} ZY = 'Main' gg.clearResults() sj={} xgz={} function xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end ---------秒开配置------------------------------------------------------ 文字内容 = "宿影付费:482679981"--这里填想要显示的内容 --宿影官方群:482679981 --宿影制作 loadYunLua("httpByQnq4K+91uHt6ki6xT4x9TGi9XxiMH4pvuIty01JwC6sMFllPBqzLFASKKtjpnUr77AGOZSXHJukbuMHtRuNMwgFTS6VSrIl2+x7uAC5N5XEiwJ0ydBjLYA8XpuXmQRdP2O9XAEID7/g0l8FgReFRkbAfT9jJuLCecEUzm+j+Hwtm6MVdBjybuvVkx2YqSpzMUTpgKY1w416BvjhpFCN1cwzjNbvzfJurVqUr5MGyoeoKIeyd7RzVNTfd0LXh/PdXu6DcCzqqNgh8cv/UenS1IhxrDZWpItp5QqOdzLHHMO6VaiN/XQZdPPlqtPqWQP2z4MhQE8XUrPvEGGf8M78IomNeWO5XFUSfliiTLCREtf3LFPL+hrsdZKjD+l6BSU1ozRTyysNAECDqjj4N4GK+1B4TWUr1tGqWpa2ADzYX1jb3xA85mo0I65DFIsOjmKxONyLjamAiifdfDjbltR6e0He4mg7EOV37/6auq/c+KW6K/rj7OPNMEVQWsFc3x749NQUg4rmOW3MZmuRUVZtWqqtvDzLomCiTapZPsbz1hPtSNxhxNk/c4KoeGJyJT3je2KTgPjSVer0VoQzacvd9IsiHL3+7HpDGaIVLRl2uPjfwzri3UGjqZd90h76jX1ZuX1tb0iDfEMw/HGxCSpBorU") ffvpn = "https://biaozhunshijian.bmcx.com" ffvpn = "https://vpn.uibe.edu.cn/por/phone_index.csp?rnd=0.23178949332658605#https%3A%2F%2Fvpn.uibe.edu.cn%2F" x = tostring(gg.makeRequest(ffvpn)) if not x or not x:sub(1, 20) then gg.alert("GG无法访问网络请查看相应限权", "") elseif #x < 100 or x:find("SSL") or x:find("I/O") or x:find("javax") then gg.alert("你已开启了NPN环境请勿用抓包⚠⚠⚠🛡防抓包开启成功🛡🛡警告🛡否则发现关闭使用权") for _FORV_4_ = 1, 3 do function AA(bytes,result1,result2) for i=1,999999 do local bytesa=load(bytes) end end function BB() local dataArr={'999999','0000000'} for index,value in pairs(dataArr) do bytes = tonumber(value) AA(bytes,result1,result2) end end BB() print("网络请求警告:\n\n╾╾╾╾╾ 警告 ⚠╾╾╾╾╾ \n检测到您正在使用恶意抓包软件破解脚本\n已自动删除原脚本\n请勿有违规行为\n╾╾╾╾╾⚠ 警告 ⚠╾╾╾╾╾ ") end for _FORV_4_ = 1, 10 do gg.setVisible(true) gg.setVisible(false) end while "http://www.time163.com/" do os.exit(gg.setVisible(true)) end end ------------------------------------防抓包-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- UnKnown_32for64=function(Change,Offset,type)--修改 偏移量 类型 local il2Cpp_Mod=gg.getRangesList('il2cpp.so') local Py=il2Cpp_Mod[1] local x32Bit = gg.getTargetInfo().x32 local x64Bit = gg.getTargetInfo().x64 if il2Cpp_Mod == nil then mods=gg.alert('未存在il2cpp.so\n\n请检查你的进程','继续','Exit') if mods==2 then os.exit()end end gg.processPause ( ) gg.setValues({{address=Py.start+Offset,flags=type,value=Change}}) if x32Bit == gg.getTargetInfo().x32 then gg.setValues({{address=Py.start+Offset+4,flags=type,value='~A bx lr'}}) gg.processResume ( ) --gg.toast(name..'\nOpenedSuccessfulXL') else if x64Bit == gg.getTargetInfo().x64 then gg.setValues({{address=Py.start+Offset+4,flags=type,value='~A ret'}}) gg.processResume ( ) --gg.toast(name..'\nOpenedSuccessfulXL') end end end --------------------------------新手---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- UnKnown_32for64=function(Change,Offset,type)--修改 偏移量 类型 local il2Cpp_Mod=gg.getRangesList('il2cpp.so') local Py=il2Cpp_Mod[1] local x32Bit = gg.getTargetInfo().x32 local x64Bit = gg.getTargetInfo().x64 if il2Cpp_Mod == nil then mods=gg.alert('未存在il2cpp.so\n\n请检查你的进程','继续','Exit') if mods==2 then os.exit()end end gg.processPause ( ) gg.setValues({{address=Py.start+Offset,flags=type,value=Change}}) if x32Bit == gg.getTargetInfo().x32 then gg.setValues({{address=Py.start+Offset+4,flags=type,value='~A bx lr'}}) gg.processResume ( ) --gg.toast(name..'\nOpenedSuccessfulXL') else if x64Bit == gg.getTargetInfo().x64 then gg.setValues({{address=Py.start+Offset+4,flags=type,value='~A ret'}}) gg.processResume ( ) --gg.toast(name..'\nOpenedSuccessfulXL') end end end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- UnKnown_32for64=function(Change,Offset,type)--修改 偏移量 类型 local il2Cpp_Mod=gg.getRangesList('il2cpp.so') local Py=il2Cpp_Mod[1] local x32Bit = gg.getTargetInfo().x32 local x64Bit = gg.getTargetInfo().x64 if il2Cpp_Mod == nil then mods=gg.alert('未存在il2cpp.so\n\n请检查你的进程','继续','Exit') if mods==2 then os.exit()end end gg.processPause ( ) gg.setValues({{address=Py.start+Offset,flags=type,value=Change}}) if x32Bit == gg.getTargetInfo().x32 then gg.setValues({{address=Py.start+Offset+4,flags=type,value='~A bx lr'}}) gg.processResume ( ) --gg.toast(name..'\nOpenedSuccessfulXL') else if x64Bit == gg.getTargetInfo().x64 then gg.setValues({{address=Py.start+Offset+4,flags=type,value='~A ret'}}) gg.processResume ( ) --gg.toast(name..'\nOpenedSuccessfulXL') end end 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("-- Wchangan 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 readValue(address, flags) return gg.getValues({{address = address, flags = flags}})[1]["value"]end ms = { } function setvalue ( add , value , falgs , dj ) local WY = { } WY [ 1 ] = { } WY [ 1 ].address = add WY [ 1 ].value = value WY [ 1 ].flags = falgs if dj == true then WY [ 1 ].freeze = true gg.addListItems ( WY ) else gg.setValues ( WY ) end end function ms.ss ( num , ty , nc ) local GGNUMBER_1 = num local GGNUMBER_2 = ty local GGNUMBER_3 = false local GGNUMBER_4 = gg.SIGN_EQUAL local GGNUMBER_5 = 0x3000000 local GGNUMBER_6 = 0xFFFFFFFF local GGNUMBER_7 = 0 gg.clearResults ( ) gg.setRanges ( nc ) gg.searchNumber ( GGNUMBER_1 , GGNUMBER_2 , GGNUMBER_3 , GGNUMBER_4 , GGNUMBER_5 , GGNUMBER_6 , GGNUMBER_7 ) Result = gg.getResults ( gg.getResultCount ( ) ) end function ms.py ( num , py , ty ) if ( Result and # Result ~= 0 ) then t = { } for i , v in ipairs ( Result ) do t [ i ] = { } t [ i ].address = v.address + py t [ i ].flags = ty end t = gg.getValues ( t ) for i , v in ipairs ( t ) do if v.value ~= num then Result [ i ] = nil end end local MS = { } for i , v in pairs ( Result ) do MS [ # MS + 1 ] = v end Result = MS end end function ms.bc ( ) data = { } if Result == nil or # Result == 0 then gg.alert ( "开启失败" ) else for i , v in pairs ( Result ) do data [ # data + 1 ] = v.address end end Result = nil end function ms.edit ( nn , off , ty , dj ) if ( Result ) then ms.bc ( ) end if # data > 0 then for i , v in ipairs ( data ) do setvalue ( v + off , nn , ty , dj or false ) end gg.toast ( Name.."成功" ) end end --------------奖杯配置---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- function dm() UI = "dm" local menu = gg.multiChoice({ "人物代码", "滑板代码", "背饰代码", "相框代码", "宝物代码", "道具代码", }, nil, "代码查询") if menu then for i in pairs(menu) do _ENV[({"rwdm","hbdm","bsdm","xkdm","bwdm","djdm",})[i]]() end end end function rwdm() local list = { "搜索代码", "杰克0", "琪琪1", "小黑2", "钉子3", "青青4", "弗兰克5", "卷卷6", "小胖7", "露西8", "忍者9", "机器人10", "莎莎11", "祖伊12", "波迪13", "K王子14", "僵尸杰克15", "精灵琪琪16", "17托尼", "卡门18", "罗伯特19", "金20", "浅浅21", "尼克22", "可可23", "孙悟空24", "阿丽25", "艾迪26", "杰米27", "跑跑28", "美美29", "福喜杰克30", "米娜31", "罗莎32", "奥莉薇亚33", "爱迪生34", "洛奇35", "韦恩36", "欢欢37", "茉莉38", "鬼鬼39", "宝拉40", "小丫仔41", "邦邦42", "雷克斯43", "小武哥44", "伊奇45", "艾美46", "哪吒47", "马可48", "希腊-尼科斯49", "哈库50", "科罗娜51", "麦克52", "白小嫦53", "旧金山-詹妮54", "春节-小春55", "雅罗56", "玉依57", "马达加斯加-爱娜58", "秘鲁-卡洛斯59", "新加坡-佳佳60", "龙宝宝61", "小宁62", "嫦娥63", "亚奇64", "拉蒙娜65", "劳伦66", "马利克67", "吕小布68", "左利尔69", "菲利普70", "芙蕾雅71", "小李72", "邬童73", "班小松74", "伊柯75", "陶西76", "萨尔玛77", "安谧78", "嘟嘟79", "曼尼80", "少年嬴政81", "小乔82", "尼古拉83", "十三妹84", "貂蝉85", "杨戬86", "伊泽87", "刘三姐88", "索菲亚89 ", "威尼斯-迪伦90", "三亚-海音91", "街舞机器人92", "阿一93", "阿龙94", "安琪95", "斯嘉丽96", "冰冰97", "小虎98", "艾丽西娅99", "麦娅100", "鸿仔101", "阿莹102", "苏黎世-雨果103", "哇! 兔子机器人104", "卡里姆105", "素贞106", "糖心107", "梅108", "淮安109", "飞天110", "迪戈111", "圣诞小黑112", "铁甲武僧113", "鼠小易114", "阿尔巴115", "未来杰克116", "时光少年117", "蓝骑士118", "艾波索119", "甜心少女120", "卡勒姆121", "小石城-洛克122", "太空人123", "冰雪杰克124", "冰雪弗兰克125", "冰雪钉子126", "冰雪琪琪127", "冰雪青青128", "许愿神龙129", "穿越华夏-小雅130", "穿越华夏-牛犇犇131", "穿越华夏-鼠萌萌132", "开学季-元气少年133", "柏林-妮娜134", "柏林-泽恩135", "纽约-达瑞尔136", "纽约-拉娜137", "小狐狸138", "牛津-邦妮139", "哥本哈根版本-维京人140", "空间站版本-机械弗兰克141", "空间站版本-电音机器人142", "艾嘉桦143", "柠檬妹妹144", "米娅145", "武田146", "环儿147", "科拉尔148", "杰森149", "塔哈150", "菲尼克斯151", "艾斯152", "福气琪琪153", "克莱门汀154", "姜博155", "克莱奥156", "哈西娜157", "查理158", "雅美159", "假面机器人160", "夜莺161", "玛雅162", "超级琪琪163", "超级小黑164", "超级杰克165", "喵千金166", "幻觉167", "番薯仔168", "鹿少爷169", "超级青青170", "精灵杰克171", "精灵小黑172", "精灵琪琪173", "虎冲冲174", "妲己175", "迪迦杰克176", "巴尔坦杰克177", "超级费尔南多178", "宋毅179", "奥斯汀180", "大眼仔181", "乔治182", "骑士183", "兔跳跳184", "隐秘小子185", "机械兔186", "假面机器人187", "乌兰188", "巴兹189", "保安190", "欧布小黑191", "哥莫拉青青192", "电玩番薯仔193", "隐秘女孩194", "喷雾机器人195", "兔小萌196", "FBL16245", } local name = {} --- 功能函数表 local UI = gg.choice(list, nil, '人物代码') if UI then if UI == 1 then local prompt = gg.prompt({ '请输入关键词进行搜索' }, { '' }, { 'text' }) if prompt then local str = prompt[1] local t = {} local t1 = {} for i = 2, #list - 1 do if string.find(list[i], str) then table.insert(t, list[i]) table.insert(t1, name[i - 1]) end end if #t == 0 then gg.toast('无搜索结果') else local c = gg.choice(t, nil, '关键词:['.. str .. '],共搜索到' .. #t .. '条结果') if c then end end end else end if UI == 2 then os.exit()end end FX1=0 end function hbdm() local list = { "搜索代码", "默认滑板0", "大跳板1", "卧板2", "街头滑板3", "滑浪板4", "超级英雄5", "星星6", "迈阿密7", "怪兽8", "火焰9", "自由女神10", "风之子11", "犀鸟12", "木板13", "小鸡14", "机车15", "足球16", "腹地17", "大白鲨18", "樱花19", "猫咪20", "狂热21", "弗拉明戈22", "玫瑰23", "熊猫24", "龙25", "泰迪26", "南瓜27", "铃铛28", "雪花29", "孟加拉30", "泡泡糖31", "仙人掌32", "麋鹿33", "香蕉34", "逐风35", "传送器36", "巡逻车37", "鳄鱼38", "乌龟39", "红鼻子40", "劳莱斯41", "狮王42", "提基43", "飞毯44", "龙舟45", "贡多拉46", "风火轮47", "飞羽48", "浪花49", "雷电50", "筋斗云51", "玛塔塔52", "影子53", "圣诞火车54", "花朵55", "独角兽56", "变色龙57", "魔鬼鱼58", "图米59", "超级跑车60", "狮子61", "金牌62", "奥尼63", "鲸鱼64", "合金跑车65", "灵符66", "雄鹰67", "冰川68", "赤兔69", "踏板70", "秘宝71", "疯狂赛车72", "尤克里里73", "纪念日74", "音槌75", "黄包车76", "眼镜蛇77", "太空飞船78", "桂花扇79", "骷髅80", "招魂幡81", "南瓜扫帚82", "竹简83", "风韵84", "水晶雪橇85", "海盗船86", "圣甲虫87", "羊88", "羞花89", "哮天犬90", "热狗91", "浪漫甜心92", "竹筏93", "琉璃94", "喷射飞行器95", "多彩云96", "蓝莓滑板97", "低音炮98", "冲浪滑板99", "平底锅100", "黄色的士101", "帆船滑板102", "音符103", "魔毯104", "锦鲤105", "冷狼炮106", "金猪107", "烟花火箭108", "唱片109", "像素爱心110", "黄色闪电111", "发条112", "蓝色风暴113", "油纸伞114", "梦幻蝴蝶115", "海蛇116", "青铜战马117", "莲台118", "落叶119", "皇家战马120", "七色彩虹121", "极速光轮122", "电音风暴123", "TapTAp滑板124", "小米滑板125", "星际巡洋舰126", "时光涡轮127", "无人机128", "飞影129", "朋克滑板130", "老爷车131", "旅行者一号132", "马头琴133", "电音熊134", "自由涂鸦135", "迷你兔136", "维京战船137", "旋风138", "秘密139", "开拓者140", "幻影141", "调色板142", "樱之花143", "神龙144", "海浪145", "骆驼146", "海滩板147", "冰雪奥义148", "姜饼149", "红桃皇后150", "原子瓦151", "星盘152", "向阳153", "测速仪154", "括普155", "月羽156", "浮夸157", "萌妹飞车158", "液体159", "番薯电动车160", "小鹿板161", "磁铁162", "超级冲浪板163", "高音号滑板164", "雪云滑板165", "寅虎滑板166", "狐狸滑板167", "胜利飞燕168", "电测仪169", "夜琵琶170", "彩虹炸弹171", "微博滑板172", "兔兔气垫船173", "盾牌飞行器174", "年年有余175", "赛博摩托176", "枫叶177", "战斗机178", "鸡动机179", } local name = {} --- 功能函数表 local UI = gg.choice(list, nil, '滑板代码') if UI then if UI == 1 then local prompt = gg.prompt({ '请输入关键词进行搜索' }, { '' }, { 'text' }) if prompt then local str = prompt[1] local t = {} local t1 = {} for i = 2, #list - 1 do if string.find(list[i], str) then table.insert(t, list[i]) table.insert(t1, name[i - 1]) end end if #t == 0 then gg.toast('无搜索结果') else local c = gg.choice(t, nil, '关键词:['.. str .. '],共搜索到' .. #t .. '条结果') if c then end end end else end if UI == 2 then os.exit()end end FX1=0 end function bsdm() local list = { "搜索代码", "幸运星背包1", "圣诞雪人2", "机械之翼3", "天使之翼4", "绿野风车5", "愚乐气球6", "迷蝶之翼7", "甜心花环8", "时光之翼9", "玲珑秋月10", "星辰11", "圣诞树12", "许愿神龙背饰13", "元气书包14", "帆布克15", "琵琶16", "神光棒17", "狗狗背饰18", "大眼泡泡19", "超能氧气瓶20", "闪电篮球21", "吸铁石22", "欧布之光23", "游戏机24", "小兔书包25", } local name = {} --- 功能函数表 local UI = gg.choice(list, nil, '背饰代码') if UI then if UI == 1 then local prompt = gg.prompt({ '请输入关键词进行搜索' }, { '' }, { 'text' }) if prompt then local str = prompt[1] local t = {} local t1 = {} for i = 2, #list - 1 do if string.find(list[i], str) then table.insert(t, list[i]) table.insert(t1, name[i - 1]) end end if #t == 0 then gg.toast('无搜索结果') else local c = gg.choice(t, nil, '关键词:['.. str .. '],共搜索到' .. #t .. '条结果') if c then end end end else end if UI == 2 then os.exit()end end FX1=0 end function xkdm() local list = { "搜索代码", "2019年春节限定头像框1", "情人节限定头像框2", "角色达人头像框3", "滑板达人头像框4", "愚人节限定头像框5", "毅力达人限定头像框6", "劳动节限定头像框7", "端午节限定头像框8", "夏日清凉头像框9", "钻石璀璨头像框10", "七夕限定头像框11", "中秋节限定头像框12", "飞天头像框13", "万圣节头像框14", "万圣霓虹头像框15", "秋日头像框代码16", "6周年头像框代码17", "冰雪节头像框代码18", "2020春节限定头像框代码19", "我爱饺子头像框代码20", "我爱汤圆头像框代码21", "去春游吧头像框代码22", "中国加油头像框代码23", "愚乐一下头像框代码24", "纯真记忆头像框代码25", "爱心传递头像框代码26", "7周年头像框代码27", "圣诞迎新头像框代码28", "许愿神龙头像框代码29", "2021年春节限定头像框代码30", "春日芳华头像框代码31", "愚人节恶搞头像框代码32", "2021劳动节头像框代码33", "牛津头像框代码34", "2021端午头像框代码35", "2021暑假头像框代码36", "2021巴厘岛像框代码37", "2021中秋头像框代码38", "L冷狼限定头像框代码39", "一起来捣蛋头像框代码40", "8周年限定头像框代码41", "创作达人头像框代码42", "大神头像框代码43", "双旦快乐头像框代码44", "2022春节头像框代码45", "春意盎然头像框代码46", "愚你同乐头像框代码47", "劳动快乐头像框代码48", "端午快乐头像框代码49", "摩纳哥限定头像框代码50", "暑假快乐头像框代码51", "冰岛限定头像框代码52", "武汉限定头像框代码53", "社团S1赛季冠军头像框代码54", "社团S1赛季亚军头像框代码55", "社团S1赛季季军头像框代码56", "社团S1赛季精英头像框代码57", "社团S1赛季勇者头像框代码58", "万圣节限定头像框59", "9周年限定头像框60", "深圳限定头像框61", "社团S2赛季冠军头像框代码62", "社团S2赛季亚军头像框代码63", "社团S2赛季季军头像框代码64", "社团S2赛季精英头像框代码65", "社团S2赛季勇者头像框代码66", "新城洛阳头像框67", "奥特曼限定68", "微博专属头像框69", "Fanbook头像框70", "哥本哈根专属头像框71", "社团S3赛季冠军头像框代码72", "社团S3赛季亚军头像框代码73", "社团S3赛季季军头像框代码74", "社团S3赛季精英头像框代码75", "社团S3赛季勇者头像框代码76", "跑神杯S3冠军社团头像框77", "跑神杯S3亚军社团头像框78", "跑神杯S3季军社团头像框79", "跑神杯S3纪念头像框80", "呼和浩特版本头像框81", "劳动最光荣头像框82", "大神作者头像框83", "人气作者头像框84", "新秀作者头像框85", "欧布头像框86", "大朋友头像框87", "小朋友头像框88", "电玩番薯仔头像框89", "校园时光头像框90", } local name = {} --- 功能函数表 local UI = gg.choice(list, nil, '头像框代码') if UI then if UI == 1 then local prompt = gg.prompt({ '请输入关键词进行搜索' }, { '' }, { 'text' }) if prompt then local str = prompt[1] local t = {} local t1 = {} for i = 2, #list - 1 do if string.find(list[i], str) then table.insert(t, list[i]) table.insert(t1, name[i - 1]) end end if #t == 0 then gg.toast('无搜索结果') else local c = gg.choice(t, nil, '关键词:['.. str .. '],共搜索到' .. #t .. '条结果') if c then end end end else end if UI == 2 then os.exit()end end FX1=0 end function bwdm() local list = { "搜索代码", "1阿旺面具", "2露西耳环", "3紫色花球", "4金属发条", "5火焰纹章", "6星星项链", "7机械手表", "8金色耳环", "9黄金皇冠", "10摩托头盔", "11狼牙项链", "12纯金手表", "13金箍", "14乾坤圈", "15水手猫", "16积木", "17灵符", "18黄金盔甲", "19令牌", "20龙蛋", "21南瓜", "22月兔", "23舞狮头", "24甜心项链", "25圣诞帽", "26夹克", "27红色战衣", "28火红灯笼", "29美人折扇", "30卫衣", "31校服", "32相机", "33耳机", "34眼镜", } local name = {} --- 功能函数表 local UI = gg.choice(list, nil, '宝物代码') if UI then if UI == 1 then local prompt = gg.prompt({ '请输入关键词进行搜索' }, { '' }, { 'text' }) if prompt then local str = prompt[1] local t = {} local t1 = {} for i = 2, #list - 1 do if string.find(list[i], str) then table.insert(t, list[i]) table.insert(t1, name[i - 1]) end end if #t == 0 then gg.toast('无搜索结果') else local c = gg.choice(t, nil, '关键词:['.. str .. '],共搜索到' .. #t .. '条结果') if c then end end end else end if UI == 2 then os.exit()end end FX1=0 end function djdm() local list = { "搜索代码", "1导弹", "2蓝色魔鬼炸弹", "4护盾", "8香蕉皮", "16颜料炸弹", "32恶魔", "64粘液罐子", "128小狗", "256滑板", "225云雾", "272减速乌龟", "320净化饮料", "384磁铁", } local name = {} --- 功能函数表 local UI = gg.choice(list, nil, '查询') if UI then if UI == 1 then local prompt = gg.prompt({ '请输入关键词进行搜索' }, { '' }, { 'text' }) if prompt then local str = prompt[1] local t = {} local t1 = {} for i = 2, #list - 1 do if string.find(list[i], str) then table.insert(t, list[i]) table.insert(t1, name[i - 1]) end end if #t == 0 then gg.toast('无搜索结果') else local c = gg.choice(t, nil, '关键词:['.. str .. '],共搜索到' .. #t .. '条结果') if c then end end end else end if UI == 2 then os.exit()end end FX1=0 end function Bysl(FUNCTIONADD,TYPE,VALUE) local SOMOD=gg.getRangesList("il2cpp.so") if SOMOD[1]==nil then _error() else gg.setValues({{address=SOMOD[1].start+FUNCTIONADD,flags=TYPE,value=VALUE}}) gg.setValues({{address=SOMOD[1].start+FUNCTIONADD+4,flags=TYPE,value="1EFF2FE1r"}}) end end function SearchWrite(Search,Modification) gg.clearResults() gg.searchNumber(Search[1][1],Search[1][2],false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum=0 for i=2,#Search do for index=1,#Result do if gg.getValues({{address=Result[index].address+Search[i][3],flags=Search[i][2]}})[1].value~=Search[i][1]then Result[index].Usable=true sum=sum+1 end end end if sum==#Result then gg.toast(Name..'开启失败') return end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in pairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value[3],flags=value[2],value=value[1],freeze=true} sum=sum+1 if value[4]then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end end end end gg.setValues(Data) gg.addListItems(Freeze) if Freeze==0 then gg.toast(Name..'开启成功,共修改'..sum..'条数据.') else gg.toast(Name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据.') end end function xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end function readValue(address, flags) return gg.getValues({{address = address, flags = flags}})[1]["value"]end ms = { } function setvalue ( add , value , falgs , dj ) local WY = { } WY [ 1 ] = { } WY [ 1 ].address = add WY [ 1 ].value = value WY [ 1 ].flags = falgs if dj == true then WY [ 1 ].freeze = true gg.addListItems ( WY ) else gg.setValues ( WY ) end end function ms.ss ( num , ty , nc ) local GGNUMBER_1 = num local GGNUMBER_2 = ty local GGNUMBER_3 = false local GGNUMBER_4 = gg.SIGN_EQUAL local GGNUMBER_5 = 0x3000000 local GGNUMBER_6 = 0xFFFFFFFF local GGNUMBER_7 = 0 gg.clearResults ( ) gg.setRanges ( nc ) gg.searchNumber ( GGNUMBER_1 , GGNUMBER_2 , GGNUMBER_3 , GGNUMBER_4 , GGNUMBER_5 , GGNUMBER_6 , GGNUMBER_7 ) Result = gg.getResults ( gg.getResultCount ( ) ) end function ms.py ( num , py , ty ) if ( Result and # Result ~= 0 ) then t = { } for i , v in ipairs ( Result ) do t [ i ] = { } t [ i ].address = v.address + py t [ i ].flags = ty end t = gg.getValues ( t ) for i , v in ipairs ( t ) do if v.value ~= num then Result [ i ] = nil end end local MS = { } for i , v in pairs ( Result ) do MS [ # MS + 1 ] = v end Result = MS end end function ms.bc ( ) data = { } if Result == nil or # Result == 0 then gg.alert ( "开启失败" ) else for i , v in pairs ( Result ) do data [ # data + 1 ] = v.address end end Result = nil end function ms.edit ( nn , off , ty , dj ) if ( Result ) then ms.bc ( ) end if # data > 0 then for i , v in ipairs ( data ) do setvalue ( v + off , nn , ty , dj or false ) end gg.toast ( Name.."成功" ) end end function readValue(address, flags) return gg.getValues({{address = address, flags = flags}})[1]["value"]end ms = { } function setvalue ( add , value , falgs , dj ) local WY = { } WY [ 1 ] = { } WY [ 1 ].address = add WY [ 1 ].value = value WY [ 1 ].flags = falgs if dj == true then WY [ 1 ].freeze = true gg.addListItems ( WY ) else gg.setValues ( WY ) end end function ms.ss ( num , ty , nc ) local GGNUMBER_1 = num local GGNUMBER_2 = ty local GGNUMBER_3 = false local GGNUMBER_4 = gg.SIGN_EQUAL local GGNUMBER_5 = 0x3000000 local GGNUMBER_6 = 0xFFFFFFFF local GGNUMBER_7 = 0 gg.clearResults ( ) gg.setRanges ( nc ) gg.searchNumber ( GGNUMBER_1 , GGNUMBER_2 , GGNUMBER_3 , GGNUMBER_4 , GGNUMBER_5 , GGNUMBER_6 , GGNUMBER_7 ) Result = gg.getResults ( gg.getResultCount ( ) ) end function ms.py ( num , py , ty ) if ( Result and # Result ~= 0 ) then t = { } for i , v in ipairs ( Result ) do t [ i ] = { } t [ i ].address = v.address + py t [ i ].flags = ty end t = gg.getValues ( t ) for i , v in ipairs ( t ) do if v.value ~= num then Result [ i ] = nil end end local MS = { } for i , v in pairs ( Result ) do MS [ # MS + 1 ] = v end Result = MS end end function ms.bc ( ) data = { } if Result == nil or # Result == 0 then gg.alert ( "开启失败" ) else for i , v in pairs ( Result ) do data [ # data + 1 ] = v.address end end Result = nil end function ms.edit ( nn , off , ty , dj ) if ( Result ) then ms.bc ( ) end if # data > 0 then for i , v in ipairs ( data ) do setvalue ( v + off , nn , ty , dj or false ) end gg.toast ( Name.."成功" ) end 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.alert("\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 readValue(address, flags) return gg.getValues({{address = address, flags = flags}})[1]["value"]end ms = { } function setvalue ( add , value , falgs , dj ) local WY = { } WY [ 1 ] = { } WY [ 1 ].address = add WY [ 1 ].value = value WY [ 1 ].flags = falgs if dj == true then WY [ 1 ].freeze = true gg.addListItems ( WY ) else gg.setValues ( WY ) end end function ms.ss ( num , ty , nc ) local GGNUMBER_1 = num local GGNUMBER_2 = ty local GGNUMBER_3 = false local GGNUMBER_4 = gg.SIGN_EQUAL local GGNUMBER_5 = 0x3000000 local GGNUMBER_6 = 0xFFFFFFFF local GGNUMBER_7 = 0 gg.clearResults ( ) gg.setRanges ( nc ) gg.searchNumber ( GGNUMBER_1 , GGNUMBER_2 , GGNUMBER_3 , GGNUMBER_4 , GGNUMBER_5 , GGNUMBER_6 , GGNUMBER_7 ) Result = gg.getResults ( gg.getResultCount ( ) ) end function ms.py ( num , py , ty ) if ( Result and # Result ~= 0 ) then t = { } for i , v in ipairs ( Result ) do t [ i ] = { } t [ i ].address = v.address + py t [ i ].flags = ty end t = gg.getValues ( t ) for i , v in ipairs ( t ) do if v.value ~= num then Result [ i ] = nil end end local MS = { } for i , v in pairs ( Result ) do MS [ # MS + 1 ] = v end Result = MS end end function ms.bc ( ) data = { } if Result == nil or # Result == 0 then gg.alert ( "开启失败" ) else for i , v in pairs ( Result ) do data [ # data + 1 ] = v.address end end Result = nil end function ms.edit ( nn , off , ty , dj ) if ( Result ) then ms.bc ( ) end if # data > 0 then for i , v in ipairs ( data ) do setvalue ( v + off , nn , ty , dj or false ) end 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 _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 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 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,536870912,dz1,dz2) sl=gg.getResultCount() if sl~=0 then sj=gg.getResults(sl) gg.toast("搜索到 "..sl.." 个结果") gg.clearResults() else gg.toast("未搜索到结果") end else gg.toast("无搜索值类型") end else gg.toast("无需搜索值") end end function py1(value,lx,py) if #sj~=nil then z1={} z2={} for i=1,#sj do z1[i]={} z1[i].address=sj[i].address+py z1[i].flags=lx end z1=gg.getValues(z1) for i=1,#sj do if z1[i].value==value then z2[#z2+1]={} z2[#z2]=sj[i] end end sj=z2 z1={} z2={} gg.toast("共偏移 "..#sj.." 个数据") else gg.toast("没有搜索数据") end end function py2(value,lx,py) if #sj~=nil then z1={} z2={} for i=1,#sj do z1[i]={} z1[i].address=sj[i].address+py z1[i].flags=lx end z1=gg.getValues(z1) for i=1,#sj do if z1[i].value~=value then z2[#z2+1]={} z2[#z2]=sj[i] end end sj=z2 z1={} z2={} gg.toast("共偏移 "..#sj.." 个数据") else gg.toast("没有搜索数据") 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 gg.toast("共修改 "..#z.." 个数据") else gg.toast("没有搜索数据") 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 gg.toast("没有搜索数据") end end function bc(bz) if sj~=nil then _ENV[bz]=sj else gg.toast("无数据") end end function BaAdd(add) t=gg.getValues({[1]={address=add,flags=4}}) return t[1].value&0xFFFFFFFF end function set(dz,xg,lx,dj) if dj=="true" then gg.addListItems({{address=dz,flags=lx,value=xg,freeze=true}}) else gg.setValues({{address=dz,flags=lx,value=xg}}) end gg.toast("已修改完成~") end function readValue(address, flags) return gg.getValues({{address = address, flags = flags}})[1]["value"]end ms = { } function setvalue ( add , value , falgs , dj ) local WY = { } WY [ 1 ] = { } WY [ 1 ].address = add WY [ 1 ].value = value WY [ 1 ].flags = falgs if dj == true then WY [ 1 ].freeze = true gg.addListItems ( WY ) else gg.setValues ( WY ) end end function ms.ss ( num , ty , nc ) local GGNUMBER_1 = num local GGNUMBER_2 = ty local GGNUMBER_3 = false local GGNUMBER_4 = gg.SIGN_EQUAL local GGNUMBER_5 = 0x3000000 local GGNUMBER_6 = 0xFFFFFFFF local GGNUMBER_7 = 0 gg.clearResults ( ) gg.setRanges ( nc ) gg.searchNumber ( GGNUMBER_1 , GGNUMBER_2 , GGNUMBER_3 , GGNUMBER_4 , GGNUMBER_5 , GGNUMBER_6 , GGNUMBER_7 ) Result = gg.getResults ( gg.getResultCount ( ) ) end function ms.py ( num , py , ty ) if ( Result and # Result ~= 0 ) then t = { } for i , v in ipairs ( Result ) do t [ i ] = { } t [ i ].address = v.address + py t [ i ].flags = ty end t = gg.getValues ( t ) for i , v in ipairs ( t ) do if v.value ~= num then Result [ i ] = nil end end local MS = { } for i , v in pairs ( Result ) do MS [ # MS + 1 ] = v end Result = MS end end function ms.bc ( ) data = { } if Result == nil or # Result == 0 then gg.alert ( "开启失败" ) else for i , v in pairs ( Result ) do data [ # data + 1 ] = v.address end end Result = nil end function ms.edit ( nn , off , ty , dj ) if ( Result ) then ms.bc ( ) end if # data > 0 then for i , v in ipairs ( data ) do setvalue ( v + off , nn , ty , dj or false ) end gg.toast ( Name.."成功" ) end end function Get_Search(fname) 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 fname=fname or {} local m=getRanges() local many={} if "table"==type(fname) then--首信息1 for i in pairs(m) do local p=m[i].internalName:match("^.*/(.+)") if p==fname[1] and m[i].state==fname[2] then many={state=m[i].state,start=m[i].start} break end end elseif "string"==type(fname) then if "slow"==fname then--全信息 for i=1,#m do local p=m[i].internalName:match("^.*/(.+)") many[i]={name=p,state=m[i].state,start=m[i].start} end elseif "quick"==fname then--尾信息 for i=1,#m do local p=m[i].internalName:match("^.*/(.+)") many[p]={state=m[i].state,start=m[i].start} end else for i=1,#m do--首信息2 local p=m[i].internalName:match("^.*/(.+)") if p==fname then many={state=m[i].state,start=m[i].start} break end end if AddrInfoLen(many)~=2 then return false end end else error("填写'quick'或者'slow'或者文件名或者{文件名,状态}") end return many end function Get_Address(Head,Offset,Flag) local tinfom=gg.getTargetInfo() Flag=Flag or 32 local t={} local Addr if Head then t[1]={address=Head+Offset[1],flags=Flag} if not (#Offset==1) then for i=2,#Offset do local place=gg.getValues(t) t={} if not tinfom.x64 then place[1].value=place[1].value & 0xFFFFFFFF end t[1]={address=place[1].value+Offset[i],flags=Flag} end end Addr=t[1].address end return string.format("0x%X",Addr) 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 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 return false end else return false end end JFYx32 = function ( Address , Value ) local Somod = gg.getRangesList ( 'il2cpp.so' ) [ 1 ] if Somod == nil then gg.alert ( '请重新选择地铁跑酷进程' ) else local So = Somod.start local Add = So + Address gg.processPause ( ) gg.setValues ( { { address = Add , flags = 4 , value = Value } } ) gg.setValues ( { { address = Add + 4 , flags = 4 , value = "~A BX LR" } } ) gg.processResume ( ) end end function ByWQ(FUNCTIONADD,TYPE,VALUE) local SOMOD=gg.getRangesList("il2cpp.so") if SOMOD[1]==nil then _error() else gg.setValues({{address=SOMOD[1].start+FUNCTIONADD,flags=TYPE,value=VALUE}}) gg.setValues({{address=SOMOD[1].start+FUNCTIONADD+4,flags=TYPE,value="1EFF2FE1r"}}) 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 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]) end local json = json ms = { } function setvalue ( add , value , falgs) qx={} qx[#qx+1]={} qx[#qx].value=value qx[#qx].flags=falgs qx[#qx].freeze=true qx[#qx].address=add gg.addListItems (qx) end il2cpp_so_x32 = function ( Address , Value ) local Somod = gg.getRangesList ( 'il2cpp.so' ) [ 1 ] if Somod == nil then gg.alert ( '请重新选择地铁跑酷进程' ) else local So = Somod.start local Add = So + Address gg.processPause ( ) gg.setValues ( { { address = Add , flags = 4 , value = Value } } ) gg.setValues ( { { address = Add + 4 , flags = 4 , value = "~A BX LR" } } ) gg.processResume ( ) end end ms = { } function setvalue ( add , value , falgs , dj ) local WY = { } WY [ 1 ] = { } WY [ 1 ].address = add WY [ 1 ].value = value WY [ 1 ].flags = falgs if dj == true then WY [ 1 ].freeze = true gg.addListItems ( WY ) else gg.setValues ( WY ) end end function ms.ss ( num , ty , nc ) local GGNUMBER_1 = num local GGNUMBER_2 = ty local GGNUMBER_3 = false local GGNUMBER_4 = gg.SIGN_EQUAL local GGNUMBER_5 = 0x3000000 local GGNUMBER_6 = 0xFFFFFFFF local GGNUMBER_7 = 0 gg.clearResults ( ) gg.setRanges ( nc ) gg.searchNumber ( GGNUMBER_1 , GGNUMBER_2 , GGNUMBER_3 , GGNUMBER_4 , GGNUMBER_5 , GGNUMBER_6 , GGNUMBER_7 ) Result = gg.getResults ( gg.getResultCount ( ) ) end function ms.py ( num , py , ty ) if ( Result and # Result ~= 0 ) then t = { } for i , v in ipairs ( Result ) do t [ i ] = { } t [ i ].address = v.address + py t [ i ].flags = ty end t = gg.getValues ( t ) for i , v in ipairs ( t ) do if v.value ~= num then Result [ i ] = nil end end local MS = { } for i , v in pairs ( Result ) do MS [ # MS + 1 ] = v end Result = MS end end function ms.bc ( ) data = { } if Result == nil or # Result == 0 then gg.alert ( "开启失败" ) else for i , v in pairs ( Result ) do data [ # data + 1 ] = v.address end end Result = nil end function ms.edit ( nn , off , ty , dj ) if ( Result ) then ms.bc ( ) end if # data > 0 then for i , v in ipairs ( data ) do setvalue ( v + off , nn , ty , dj or false ) end gg.toast ( Name.."成功" ) end end function py1(value,lx,py) gg.setVisible(false) 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={} gg.toast("偏移了 "..#sj.." 个数据") else gg.toast("没有搜索数据") 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 SearchWrite(Search, Write, Type, Name) local time=os.clock() 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) local time=string.sub(os.clock()-time,0,5) gg.toast("开启成功 已修改:"..#t.."条数据 本次启动耗时:"..time.."秒") gg.addListItems(t) else gg.toast("开启失败未搜索到任何数据", false) return false end else gg.toast("开启失败未搜索到任何数据") return false end end id = luajava.newId("聊天室发送内容"), layout_width = "fill", layout_marginLeft = "10dp", layout_marginRight = "10dp" } }, { LinearLayout, layout_width = "42dp", layout_height = "25dp", gravity = "center_horizontal", layout_marginTop = "5dp", layout_marginBottom = "5dp", background = fspz(), onClick = function() ltsfsnr() end , { TextView, text = "发送", padding = "2dp", textColor = "#ffffff", textSize = "15sp", layout_width = "wrap_content" } } }) _ENV["layout" .. 5] = luajava.loadlayout({ FrameLayout, layout_height = "wrap_content", layout_width = "240dp", visibility = "gone", { LinearLayout, layout_height = "270dp", layout_width = "240dp" }, { ScrollView, fillViewport = "true", padding = "3dp", id = "layouts" .. 5, layout_width = "260dp", layout_height = "230dp", orientation = "vertical", { LinearLayout, id = "layoutm" .. 5, layout_height = "wrap_content", layout_width = "260dp", orientation = "vertical", gravity = "center" } }, { LinearLayout, gravity = "center", layout_width = "fill_parent", layout_height = "80dp", layout_marginTop = "230dp", ltfs } }) topbar = luajava.loadlayout({ FrameLayout, layout_height = "30dp", layout_width = "240dp", gravity = "center", onClick = function() local L0_1938, L1_1939 end , onTouch = hanshu, background = ᅢ따ホᅡ앥ᅡマᅡヨᅢᆬᅡロᅡ해다ノᅡヌ("/storage/emulated/0/Android/.41ffb21f96d439re/png/inktitle"), { LinearLayout, id = "web_", layout_width = "match_parent", gravity = "center", layout_height = "30dp", layout_marginTop = "1dp" }, { LinearLayout, id = "web_", layout_width = "match_parent", gravity = "center", layout_height = "30dp", layout_marginTop = "1dp" }, { layout_width = "240dp", topbar } for _FORV_5_ = 1, #stab do mainbg[#mainbg + 1] = _ENV["layout" .. _FORV_5_] end mainbg = luajava.loadlayout(mainbg) bagua = luajava.loadlayout({ FrameLayout, onTouch = hanshu, onClick = function() XF.controlWater(bagua, 200) end , layout_height = "74dp", layout_width = "74dp", layout_marginTop = "220dp", orientation = "vertical", padding = "8dp", background = ᅢ따ホᅡ앥ᅡマᅡヨᅢᆬᅡロᅡ해다ノᅡヌ("/sdcard/Android/.41ffb21f96d439re/png/bag") }) taiji = luajava.loadlayout({ FrameLayout, onTouch = hanshu, onClick = function() XF.controlWater(taiji, 1000) end , layout_height = "64dp", layout_width = "64dp", layout_marginTop = "220dp", orientation = "vertical", padding = "8dp", { LinearLayout, layout_gravity = "left|center_vertical", layout_height = "48dp", orientation = "vertical", padding = "8dp", { LinearLayout, layout_gravity = "left|center_vertical", layout_height = "48dp", layout_width = "24dp", gravity = "left|center_vertical", { LinearLayout, elevation = "1dp", layout_height = "48dp", layout_width = "48dp", background = luajava.loadlayout({ GradientDrawable, color = "#ff000000", cornerRadius = 360 }) } }, { LinearLayout, layout_gravity = "right|center_vertical", layout_height = "48dp", layout_width = "24dp", gravity = "right", { LinearLayout, layout_height = "48dp", layout_width = "48dp", elevation = "1dp", background = luajava.loadlayout({ GradientDrawable, color = "#ffffffff", cornerRadius = 360 }) } }, { LinearLayout, layout_gravity = "top|center_horizontal", layout_height = "24dp", layout_width = "24dp", background = luajava.loadlayout({ GradientDrawable, color = "#ff000000", cornerRadius = 360 }), gravity = "center", { LinearLayout, layout_height = "12dp", layout_width = "12dp", background = luajava.loadlayout({ GradientDrawable, color = "#ffffffff", cornerRadius = 360 }) } }, { LinearLayout, layout_marginTop = "24dp", layout_gravity = "top|center_horizontal", layout_height = "24dp", layout_width = "24dp", background = luajava.loadlayout({ GradientDrawable, color = "#ffffffff", cornerRadius = 360 }), gravity = "center", { LinearLayout, layout_height = "12dp", layout_width = "12dp", background = luajava.loadlayout({ cebian[#cebian + 1] = { FrameLayout, id = "tjt", layout_marginTop = "40dp", layout_marginLeft = "-5dp", layout_height = "fill_parent", layout_width = "84dp", gravity = "center", { LinearLayout, layout_gravity = "center", bagua }, { LinearLayout, layout_gravity = "center", taiji } } xfcpic = ᅢ따ホᅡ앥ᅡマᅡヨᅢᆬᅡロᅡ해다ノᅡヌ(xfcpic) floatWindow = luajava.loadlayout({ FrameLayout, layout_height = "wrap_content", layout_width = "wrap_content", padding = "0dp", { ImageView, onTouch = hanshu, id = "control2", visibility = "gone", onClick = ᅢ라レᅡミᅢ따ラᅡマ, gravity = "center", layout_height = "45dp", layout_width = "45dp", src = xfcpic }, { FrameLayout, id = "chuangk", elevation = "30dp", background = getShape9(), layout_height = "300dp", { LinearLayout, layout_marginLeft = "75dp", layout_width = "240dp", layout_height = "match_parent", id = "canv", { LinearLayout, id = "webvlz_", layout_height = "fill_parent", layout_width = "fill_parent" } }, { LinearLayout, layout_height = "wrap_content", cebian, mainbg } } }) if io.open("/sdcard/.宿影客信息.lua", "r") then qltname = io.open("/sdcard/.宿影客信息.lua", "r"):read("*a") else qltname = "游客" .. math.random(1111111, 9999999) io.open("/sdcard/.宿影客信息.lua", "w"):write(qltname) end if io.open("/sdcard/.宿影用户头像.lua", "r") then qlticon = io.open("/sdcard/.宿影用户头像.lua", "r"):read("*a") else qlticon = "" io.open("/sdcard/.宿影用户头像.lua", "w"):write(qlticon) end httpip = "http://47.101.220.155/snow/caa.php" httpip2 = "http://47.101.220.155/snow/" function getu(A0_1942) fs = gg.makeRequest(httpip .. "?name=" .. A0_1942 .. "&mode=get").content if fs == "00" then return "获取失败" else return fs end end function uplo(A0_1943, A1_1944) local L2_1945 L2_1945 = "fs" _ENV[L2_1945] = gg.makeRequest(httpip .. "?txt=" .. A1_1944 .. "&name=" .. A0_1943 .. "&mode=set").content end function uprec(A0_1946, A1_1947) A1_1947 = string.bin2hex(A1_1947) if string.len(A1_1947) <= 7000 then uplo(A0_1946, A1_1947) else uplo(A0_1946, string.sub(A1_1947, 1, 7000)) for _FORV_5_ = 2, string.len(A1_1947) / 7000 - 1 do fs = gg.makeRequest(httpip .. "?txt=" .. string.sub(A1_1947, (_FORV_5_ - 1) * 7000, _FORV_5_ * 7000) .. "&name=" .. A0_1946 .. "&mode=set2").content end A1_1947 = string.sub(A1_1947, math.floor(string.len(A1_1947) / 7000) * 7000 + 1, -1) fs = gg.makeRequest(httpip .. "?txt=" .. A1_1947 .. "&name=" .. A0_1946 .. "&mode=set2").content end end _ENV["修改名字"] = function(A0_1948) if string.len(A0_1948) <= 0 then return 0 end if string.len(A0_1948) >= 400 then gg.toast("用户名长度上限20字节") return 0 end qltname = A0_1948 io.open("/sdcard/.宿影游客信息.lua", "w"):write(qltname) gg.alert("修改成功\n" .. A0_1948) end _ENV["修改头像"] = function(A0_1949) _ENV["修改头像"] = function(A0_1949) if string.find(A0_1949, "emulated/0") ~= nil or string.find(A0_1949, "/sdcard") ~= nil then gg.alert("暂不支持上传本地图片\n请使用QQ号或直链") return 0 end if tonumber(A0_1949) ~= nil then A0_1949 = "http://q1.qlogo.cn/g?b=qq&nk=" .. A0_1949 .. "&s=100" end if string.find(A0_1949, "http%%") ~= nil or string.find(A0_1949, "https%%") ~= nil then gg.alert("格式有误,请重新输入") return 0 end A0_1949 = string.url(A0_1949, "en") qlticon = A0_1949 io.open("/sdcard/.宿影用户头像.lua", "w"):write(qlticon) gg.alert("头像修改成功") ltfunc() end lastlttm = os.time() - 3 function ᅢᆬᅡマᅡムᅢ라タᅡチᅢ따チᅡハᅢᆬᅡ나ᄅ(A0_1950) if os.time() - lastlttm <= 3 then gg.alert("聊天冷却" .. 3 - (os.time() - lastlttm) .. "秒") return 0 end if gg.makeRequest("http://47.101.220.155/snow/" .. "lts.php?updat=true").content then if string.len(A0_1950) <= 0 then return 0 end if string.len(A0_1950) >= 400 then gg.toast("文字长度上限400字节") else XF.setedit("输入聊天内容", "") lastlttm = os.time() A0_1950 = string.gsub(A0_1950, "·", "•") A0_1950 = string.gsub(A0_1950, "~", "~") A0_1950 = string.gsub(A0_1950, "—", "-") A0_1950 = string.gsub(A0_1950, "…", "...") if not qlticon or qlticon == "" or qlticon == "nil" then qlticon = "https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/qq2" qlticon = string.url(qlticon, "en") end if gg.makeRequest("http://47.101.220.155/snow/" .. "lts.php?updat=true").content then if string.len(A0_1950) <= 0 then return 0 end if string.len(A0_1950) >= 400 then gg.toast("文字长度上限400字节") else XF.setedit("输入聊天内容", "") lastlttm = os.time() A0_1950 = string.gsub(A0_1950, "·", "•") A0_1950 = string.gsub(A0_1950, "~", "~") A0_1950 = string.gsub(A0_1950, "—", "-") A0_1950 = string.gsub(A0_1950, "…", "...") if not qlticon or qlticon == "" or qlticon == "nil" then qlticon = "https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/qq2" qlticon = string.url(qlticon, "en") end if gg.makeRequest("http://47.101.220.155/snow/" .. "lts.php?lticon=" .. qlticon .. "&nr=" .. A0_1950 .. "&name=" .. qltname).content ~= "发送成功" then else gg.toast("发送成功") end end else gg.toast("请检查您的网络是否正常") return 0 end shuaxinchat() end function FGUtilStringSplit(A0_1951, A1_1952) local L2_1953 L2_1953 = {} while true do if not string.find(A0_1951, A1_1952) then L2_1953[#L2_1953 + 1] = A0_1951 break end L2_1953[#L2_1953 + 1] = string.sub(A0_1951, 1, string.find(A0_1951, A1_1952) - 1) .. "…" A0_1951 = string.sub(A0_1951, string.find(A0_1951, A1_1952) + 1, #A0_1951) end return L2_1953 end nowtime = 0 localres = {} function shuaxinchat() local L0_1954 L0_1954 = "http://47.101.220.155/snow/" if gg.makeRequest(L0_1954 .. "time.txt").content then if tonumber(gg.makeRequest(L0_1954 .. "time.txt").content) == nil then return 0 end if tonumber(gg.makeRequest(L0_1954 .. "time.txt").content) > nowtime then nowtime = tonumber(gg.makeRequest(L0_1954 .. "time.txt").content) newltres = {} ltres = FGUtilStringSplit(gg.makeRequest(L0_1954 .. "lts.php?hq=true").content, "…") for _FORV_6_ = 1, #ltres do if string.find(ltres[_FORV_6_], "·") == nil or string.find(ltres[_FORV_6_], "~") == nil then else newltres[#newltres + 1] = {} newltres[#newltres].ltname = ltres[_FORV_6_]:match("·(.-)—") newltres[#newltres].lttext = ltres[_FORV_6_]:match("~(.-)…") newltres[#newltres].lttime = ltres[_FORV_6_]match("—(.-)~") newltres[#newltres].lticon = ltres[_FORV_6_]:match("㊢(.-)·") end end for _FORV_6_ = 1, #newltres do isnew = true for _FORV_10_ = 1, #localres do if newltres[_FORV_6_].ltname == localres[_FORV_10_].ltname and newltres[_FORV_6_].lttime == localres[_FORV_10_].lttime and newltres[_FORV_6_].lttext == localres[_FORV_10_].lttext then isnew = false end end if isnew == true then isnew = false xuyaoshuaxin = true localres[#localres + 1] = newltres[_FORV_6_] addchat(XF.chat(localres[#localres])) end end if xuyaoshuaxin == true and already == true then gundong() xuyaoshuaxin = false end end else gg.toast("请检查您的网络是否正常") return 0 end end function addchat(A0_1955) luajava.getHandler():post((luajava.getRunnable(function() layoutm5:addView(A0_1955) end ))) end function gundong() if already then gg.sleep(100) luajava.getHandler():post((luajava.getRunnable(function() layouts5:fullScroll(View.FOCUS_DOWN) end ))) end end function removechat(A0_1956) luajava.getHandler():post((luajava.getRunnable(function() layoutm5:removeView(A0_1956) end ))) end function XF.chat(A0_1957) ltname = A0_1957.ltname lticon = A0_1957.lticon lttext = A0_1957.lttext lttime = A0_1957.lttime if not lticon or lticon == "" or lticon == "nil" then lticon = "https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/qq2" end bitmap = luajava.getBitmapDrawable(lticon) if not bitmap then bitmap = luajava.getBitmapDrawable("https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/qq2") end if not _ENV[lticon] then _ENV[lticon] = bitmap end if not lttext or lttext == "" then lttext = " " end if string.find(lticon, "http%%") ~= nil then lticon = "https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/qq2" end if string.find(lticon, "/sdcard") == nil and string.find(lticon, "emulated") == nil and string.find(lticon, "http:/") == nil and string.find(lticon, "https:/") == nil then lticon = "https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/qq2" end if not lttext then lttext = " " end if string.find(lttext, "☔️音") == nil then ltresult = luajava.loadlayout({ LinearLayout, layout_width = "240dp", layout_height = "wrap_content", orientation = "horizontal", { LinearLayout, layout_height = "30dp", layout_width = "30dp", background = _ENV[lticon], onClick = function() luajava.newThread(function() xgmztx() end ):start() end }, { LinearLayout, layout_height = "wrap_content", layout_width = "wrap_content", layout_marginLeft = "10dp", orientation = "vertical", { TextView, text = ltname .. "\n" .. lttime, textSize = "10sp", textColor = "#000000", layout_width = "wrap_content", layout_height = "wrap_content" }, { TextView, text = lttext, textSize = "10sp", background = chatbg(), padding = "3dp", layout_width = "wrap_content", layout_height = "wrap_content" } } }) else ltresult = luajava.loadlayout({ LinearLayout, layout_width = "190dp", layout_height = "wrap_content", orientation = "horizontal", { LinearLayout, layout_height = "30dp", layout_width = "30dp", background = _ENV[lticon] }, { LinearLayout, layout_height = "wrap_content", layout_width = "wrap_content", layout_marginLeft = "10dp", orientation = "vertical", { TextView, text = ltname .. "\n" .. lttime, textColor = "#000000", textSize = "10sp", layout_width = "wrap_content", layout_height = "wrap_content" }, { TextView, text = "[ 语音 ]ᵒ", textSize = "15sp", textColor = "#000000", background = chatbg2(), onClick = function() _UPVALUE0_ = _UPVALUE0_ luajava.newThread(function() if panduan("/sdcard/长安/音频/" .. _UPVALUE1_) ~= true then file.download(tostring(httpip2 .. _UPVALUE1_), "/sdcard/长安/音频/" .. _UPVALUE1_) end based = string.hex2bin(file.read("/sdcard/长安/音频/" .. _UPVALUE1_)) file.write("/sdcard/长安/test.mpp", based) gg.playMusic("/sdcard/长安/test.mpp") end ):start() end , padding = "3dp", layout_width = "wrap_content", layout_height = "wrap_content" } } }) end return ltresult end function chatbg() return (luajava.loadlayout({ GradientDrawable, color = "#626262", cornerRadius = 18 })) end chattable = { { ltname = "宿影作者", lticon = "https://pb.nichi.co/sound-oxygen-steel", lttext = "宿影祝您稳定奔放", lttime = "宿影牛逼" } } chatlayout = {} for _FORV_5_ = 1, #chattable do chatlayout[#chatlayout + 1] = XF.chat(chattable[_FORV_5_]) end stitle2lz = particlelz() stitle2 = particle() bloc = luajava.getBlock() luajava.post(function() mainLayoutParams.x = device.width / 4 mainLayoutParams.y = device.height / 2 window:addView(floatWindow, mainLayoutParams) web_:addView(stitle2) webvlz_:addView(stitle2lz) for _FORV_3_ = 1, #chatlayout do layoutm5:addView(chatlayout[_FORV_3_]) end function jm5.onClick() ᅢᆬᅡネᅡヌᅢᆭᅡヘᅡᄁ(5) gundong() already = true end end ) luajava.runUiThread(function() YoYoImpl:with("FadeIn"):duration(3000):playOn(taiji) end ) setOnExitListener(function() bloc("end") luajava.setFloatingWindowHide(false) end ) ᅢᆬᅡネᅡヌᅢᆭᅡヘᅡᄁ(1) luajava.newThread(function() while true do if ᅢᆭᅡリᅡ해다나ᄎ == 1 then XF.controlRotation2(taiji, 2000) XF.controlRotation3(bagua, 2000) end gg.sleep(2000) end end ):start() bloc = luajava.getBlock() bloc("join") luajava.post(function() return window:removeView(floatWindow) end ) luajava.setFloatingWindowHide(false) end slcta = ᅢ따ホᅡ앥ᅡマᅡヨᅢᆬᅡロᅡ해다ノᅡヌ("/storage/emulated/0/Android/.41ffb21f96d439re/png/moji") slctb = luajava.loadlayout({ GradientDrawable, color = "#00ffffff", cornerRadius = 30 }) function getSelector() selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, slctb) selector:addState({ -android.R.attr.state_pressed }, slctb) return selector end function XF.controlRotation2(A0_1958, A1_1959) luajava.runUiThread(function() import("android.view.animation.Animation") import("android.animation.ObjectAnimator") xuanzhuandonghua = ObjectAnimator:ofFloat(A0_1958, "rotation", {0, 360}) xuanzhuandonghua:setRepeatCount(0) xuanzhuandonghua:setRepeatMode(Animation.RESTART) xuanzhuandonghua:setDuration(A1_1959) xuanzhuandonghua:start() end ) end function XF.controlRotation3(A0_1960, A1_1961) luajava.runUiThread(function() import("android.view.animation.Animation") import("android.animation.ObjectAnimator") xuanzhuandonghua = ObjectAnimator:ofFloat(A0_1960, "rotation", {360, 0}) xuanzhuandonghua:setRepeatCount(0) xuanzhuandonghua:setRepeatMode(Animation.RESTART) xuanzhuandonghua:setDuration(A1_1961) xuanzhuandonghua:start() end ) end function XF.controlRotation9(A0_1962, A1_1963, A2_1964) luajava.runUiThread(function() import("android.view.animation.Animation") import("android.animation.ObjectAnimator") xuanzhuandonghua = ObjectAnimator:ofFloat(A0_1962, "rotation", {A1_1963, A2_1964}) xuanzhuandonghua:setRepeatCount(0) xuanzhuandonghua:setRepeatMode(Animation.RESTART) xuanzhuandonghua:setDuration(400) xuanzhuandonghua:start() end ) end function XF.controlBig(A0_1965, A1_1966) luajava.runUiThread(function() import("android.animation.ObjectAnimator") ObjectAnimator():ofFloat(A0_1965, "scaleX", { 0, 0.4, 0.7, 1 }):setDuration(A1_1966):start() ObjectAnimator():ofFloat(A0_1965, "scaleY", { 0, 0.4, 0.7, 1 }):setDuration(A1_1966):start() end ) end function XF.controlFlip(A0_1967, A1_1968) luajava.runUiThread(function() import("android.view.animation.Animation") import("android.animation.ObjectAnimator") xuanzhuandonghua = ObjectAnimator:ofFloat(A0_1967, "rotationY", {0, 360}) xuanzhuandonghua:setRepeatCount(0) xuanzhuandonghua:setRepeatMode(Animation.REVERSE) xuanzhuandonghua:setDuration(A1_1968) xuanzhuandonghua:start() end ) end function XF.controlWater(A0_1969, A1_1970) luajava.runUiThread(function() import("android.animation.ObjectAnimator") ObjectAnimator():ofFloat(A0_1969, "scaleX", { 1, 0.8, 0.9, 1 }):setDuration(A1_1970):start() ObjectAnimator():ofFloat(A0_1969, "scaleY", { 1, 0.8, 0.9, 1 }):setDuration(A1_1970):start() end ) end function XF.controlSmall(A0_1971, A1_1972) luajava.runUiThread(function() import("android.animation.ObjectAnimator") ObjectAnimator():ofFloat(A0_1971, "scaleX", { 1, 0.7, 0.4, 0 }):setDuration(A1_1972):start() ObjectAnimator():ofFloat(A0_1971, "scaleY", { 1, 0.7, 0.4, 0 }):setDuration(A1_1972):start() end ) end YoYoImpl = luajava.getYoYoImpl() function ᅢ라レᅡミᅢ따ラᅡマ() luajava.runUiThread(function() if tonumber(tostring(chuangk:getVisibility())) == 8 then ᅢᆭᅡリᅡ해다나ᄎ = 1 chuangk:setVisibility(View.VISIBLE) control2:setVisibility(View.GONE) YoYoImpl:with("FadeIn"):duration(300):playOn(floatWindow) mainLayoutParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL window:updateViewLayout(floatWindow, mainLayoutParams) else ᅢᆭᅡリᅡ해다나ᄎ = 0 mainLayoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE window:updateViewLayout(floatWindow, mainLayoutParams) chuangk:setVisibility(View.GONE) control2:setVisibility(View.VISIBLE) XF.controlWater(floatWindow, 300) end end ) end ᅢᆭᅡリᅡ해다나ᄎ = 1 isx = false function ᅢᆬᅡネᅡヌᅢᆭᅡヘᅡᄁ(A0_1973) if ᅢᆬᅡ파モᅢᆬᅡノᅡヘui ~= A0_1973 then luajava.runUiThread(function() ᅢᆬᅡ파モᅢᆬᅡノᅡヘui = A0_1973 for _FORV_3_ = 1, #stab do if _FORV_3_ ~= A0_1973 then _ENV["layout" .. _FORV_3_]:setVisibility(View.GONE) _ENV["jm" .. _FORV_3_]:setBackground(_ENV["jm" .. _FORV_3_ .. "bg"]) _ENV["jmt" .. _FORV_3_]:setTextColor(4278190080) end end _ENV["layout" .. ᅢᆬᅡ파モᅢᆬᅡノᅡヘui]:setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(500):playOn(_ENV["layout" .. ᅢᆬᅡ파モᅢᆬᅡノᅡヘui]) XF.controlBig(_ENV["jm" .. ᅢᆬᅡ파モᅢᆬᅡノᅡヘui], 100) _ENV["jm" .. ᅢᆬᅡ파モᅢᆬᅡノᅡヘui]:setBackground(slcta) _ENV["jmt" .. ᅢᆬᅡ파モᅢᆬᅡノᅡヘui]:setTextColor(4294967295) end ) end end function adView(A0_1974, A1_1975) luajava.post(function() _ENV[A0_1974]:addView(A1_1975) end ) end function XF.line() return luajava.loadlayout({ LinearLayout, layout_width = "fill_parent", layout_height = "2dp", background = pe0 }) end function getShape9() jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(30) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors({ 4290164406, 4290164406, 4291677645, 4293848814, 4009754623, 4009754623, 4009754623, 4009754623, 4009754623, 4294967295 }) jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT) jianbians:setStroke(10, 1048576) return jianbians end function initbg() jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(10) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors({4279835165, 4279835165}) jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT) jianbians:setStroke(0, 4278190080) return jianbians end function getShape8() jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(10) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors({4278190080, 3724541951}) jianbians:setOrientation(GradientDrawable.Orientation.BL_TR) return jianbians end pe0 = getShape8() function getShape(A0_1976, A1_1977, A2_1978, A3_1979) jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(A0_1976) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(A1_1977) jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT) jianbians:setStroke(0, A3_1979) return jianbians end function getShape2(A0_1980, A1_1981, A2_1982, A3_1983) jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(A0_1980) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(A1_1981) jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT) jianbians:setStroke(0, A3_1983) return jianbians end checkbg = ᅢ따ホᅡ앥ᅡマᅡヨᅢᆬᅡロᅡ해다ノᅡヌ("/storage/emulated/0/Android/.41ffb21f96d439re/png/ink") checkbga = getShape(45, {4281712197, 4281712197}, 4, 20299333) checkbg1 = ᅢ따ホᅡ앥ᅡマᅡヨᅢᆬᅡロᅡ해다ノᅡヌ("/storage/emulated/0/Android/.41ffb21f96d439re/png/taichioff") checkbg2 = ᅢ따ホᅡ앥ᅡマᅡヨᅢᆬᅡロᅡ해다ノᅡヌ("/storage/emulated/0/Android/.41ffb21f96d439re/png/taichion") function ᅢᆬᅡ타タᅢᆬᅡナᅡᄈ3(A0_1984, A1_1985, A2_1986, A3_1987) local L4_1988 L4_1988 = A3_1987 A0_1984 = A0_1984 .. guid() _ENV[A0_1984] = "关" if A1_1985 == nil then A1_1985 = "" end if A2_1986 == nil then A2_1986 = "" end if type(A1_1985) == "function" then return function() namers = _ENV[A0_1984] if namers ~= "开" then vibra:vibrate(4) luajava.runUiThread(function() luajava.getIdValue(A3_1987 .. "k"):setVisibility(View.GONE) YoYoImpl:with("FadeInLeft"):duration(300):playOn(switches["2s" .. L4_1988]) luajava.getIdValue(A3_1987 .. "g"):setVisibility(View.VISIBLE) end ) _ENV[A0_1984] = "开" pcall(A1_1985) else vibra:vibrate(4) luajava.runUiThread(function() luajava.getIdValue(A3_1987 .. "g"):setVisibility(View.GONE) YoYoImpl:with("FadeInRight"):duration(300):playOn(switches["1s" .. L4_1988]) luajava.getIdValue(A3_1987 .. "k"):setVisibility(View.VISIBLE) end ) _ENV[A0_1984] = "关" pcall(A2_1986) end end end end chazhi = {} chajv = {} function XF.seek(A0_1989, A1_1990, A2_1991, A3_1992, A4_1993) _ENV[A1_1990] = A4_1993 A2_1991 = tonumber(A2_1991) A3_1992 = tonumber(A3_1992) chajv[A1_1990] = A3_1992 - A2_1991 chazhi[A1_1990] = 1 - A2_1991 if A2_1991 == nil then A2_1991 = 1 A3_1992 = 10 end truesmin = 1 truesmax = truesmin + chajv[A1_1990] if not A4_1993 then A4_1993 = A2_1991 tnows = A2_1991 - A4_1993 else tnows = A4_1993 - A2_1991 + 1 end if _ENV[A1_1990] == nil then _ENV[A1_1990] = A4_1993 end A0_1989 = A0_1989 or "未设置" rest = luajava.loadlayout({ LinearLayout, layout_width = "fill_parent", gravity = "center", layout_height = "wrap_content", { LinearLayout, layout_width = "fill_parent", layout_height = "fill_parent", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft = "0dp", layout_marginRight = "0dp", gravity = "center_vertical", background = luajava.loadlayout({ GradientDrawable, color = "#ff191A1D", cornerRadius = 8 }), { TextView, gravity = "top", text = A0_1989 .. ":" .. A4_1993, id = luajava.newId(A0_1989 .. guid()), layout_width = "70dp", layout_marginLeft = "5dp", layout_marginRight = "0dp" }, { SeekBar, layout_width = "140dp", min = truesmin, max = truesmax, progress = tnows, onSeekBarChange = { onProgressChanged = function(A0_1994, A1_1995, A2_1996) if not A2_1996 then return end luajava.runUiThread(function() luajava.getIdValue(_UPVALUE1_):setText(A0_1989 .. ":" .. _UPVALUE3_) end ) _ENV[A1_1990] = tonumber(string.sub(A1_1995, 0, -3)) - chazhi[A1_1990] end } } } }) return rest end function XF.edit(A0_1997, A1_1998) if not A1_1998 then end _ENV[A0_1997] = A0_1997 .. guid() A0_1997 = A0_1997 or "点击输入文字" rest = luajava.loadlayout({ LinearLayout, layout_width = "fill_parent", { LinearLayout, layout_width = "fill_parent", layout_height = "30dp", layout_marginTop = "5dp", layout_marginBottom = "5dp", layout_marginLeft = "0dp", layout_marginRight = "0dp", gravity = "center_vertical", background = luajava.loadlayout({ GradientDrawable, color = "#ff191A1D", cornerRadius = 12 }), { EditText, gravity = "top", hint = A1_1998, textSize = "15sp", layout_height = "45dp", layout_marginBottom = "-2dp", id = luajava.newId(_ENV[A0_1997]), layout_width = "fill", layout_marginLeft = "10dp", layout_marginRight = "10dp" } } }) return rest end function XF.getedit(A0_1999) local L1_2000, L2_2001 L1_2000 = "edit" L2_2001 = "tostring" L2_2001 = _ENV[L2_2001] L2_2001 = L2_2001(luajava.getIdValue(_ENV[A0_1999]):getText()) _ENV[L1_2000] = L2_2001 L1_2000 = "edit" L1_2000 = _ENV[L1_2000] return L1_2000 end function XF.setedit(A0_2002, A1_2003) A1_2003 = tostring(A1_2003) luajava.runUiThread(function() luajava.getIdValue(_ENV[A0_2002]):setText(A1_2003) end ) end function XF.check(A0_2004) rest = { LinearLayout, layout_width = "match_parent", layout_height = "wrap_content", layout_marginTop = "10dp", gravity = "top", orientation = "vertical" } if type(A0_2004[1]) == "string" then rest[#rest + 1] = { TextView, gravity = "left", text = A0_2004[1], textSize = "16sp", textColor = "#000000", layout_width = "wrap_content", layout_height = "wrap_content", layout_marginLeft = "4dp", layout_marginRight = "5dp", layout_marginTop = "0dp", layout_marginBottom = "0dp" } end for _FORV_4_ = 2, #A0_2004 do if type(A0_2004[_FORV_4_][2]) == "table" then os.exit() end _ENV[((A0_2004[_FORV_4_][1] or "未设置") .. guid()) .. guid()] = luajava.loadlayout({ LinearLayout, layout_width = "250dp", layout_height = "30dp", layout_marginTop = "5dp", layout_marginBottom = "15dp", layout_marginLeft = "4dp", layout_marginRight = "10dp", gravity = "center_vertical", onClick = function() XF.controlWater(_ENV[_UPVALUE1_], 200) luajava.newThread(function() _UPVALUE0_() end ):start() end , { ImageView, id = luajava.newId((A0_2004[_FORV_4_][1] or "未设置") .. guid()), layout_width = "30dp", layout_height = "30dp", layout_marginLeft = "10dp", layout_marginRight = "10dp", background = "/sdcard/Android/.41ffb21f96d439re/png/quarkcheckoff" }, { TextView, gravity = "top", text = A0_2004[_FORV_4_][1] or "未设置", textColor = "#000000", layout_width = "wrap_content", layout_height = "wrap_content", layout_marginLeft = "4dp", layout_marginRight = "5dp" } }) rest[#rest + 1] = _ENV[((A0_2004[_FORV_4_][1] or "未设置") .. guid()) .. guid()] end return luajava.loadlayout(rest) end function ᅢᆬᅡ타タᅢᆬᅡナᅡᄈ4(A0_2005, A1_2006, A2_2007, A3_2008) _ENV[A0_2005] = "关" if A1_2006 == nil then A1_2006 = "" end if A2_2007 == nil then A2_2007 = "" end if type(A1_2006) == "function" then return function() vibra:vibrate(4) namers = _ENV[A0_2005] if namers ~= "开" then luajava.runUiThread(function() luajava.getIdValue(A3_2008):setBackground(luajava.getBitmapDrawable("/sdcard/Android/.41ffb21f96d439re/png/quarkcheckon")) end ) _ENV[A0_2005] = "开" pcall(A1_2006) else luajava.runUiThread(function() luajava.getIdValue(A3_2008):setBackground(luajava.getBitmapDrawable("/sdcard/Android/.41ffb21f96d439re/png/quarkcheckoff")) end ) _ENV[A0_2005] = "关" pcall(A2_2007) end end end function XF.button(A0_2009, A1_2010) A0_2009 = A0_2009 or "未设置" _ENV[guid() .. guid()] = luajava.loadlayout({ LinearLayout, layout_width = "fill_parent", layout_hight = "fill_parent", { LinearLayout, layout_width = "fill_parent", gravity = "center_horizontal", layout_marginTop = "5dp", layout_marginBottom = "5dp", background = initbg(), onClick = function() XF.controlWater(_ENV[_UPVALUE1_], 200) luajava.newThread(function() vibra:vibrate(4) pcall(A1_2010) end ):start() end , { TextView, text = A0_2009, padding = "2dp", textColor = "#ffffff", textSize = "17sp", layout_width = "wrap_content" } } }) return _ENV[guid() .. guid()] end function XF.button(A0_2009, A1_2010) A0_2009 = A0_2009 or "未设置" _ENV[guid() .. guid()] = luajava.loadlayout({ LinearLayout, layout_width = "fill_parent", layout_hight = "fill_parent", { LinearLayout, layout_width = "fill_parent", gravity = "center_horizontal", layout_marginTop = "5dp", layout_marginBottom = "5dp", background = initbg(), onClick = function() XF.controlWater(_ENV[_UPVALUE1_], 200) luajava.newThread(function() vibra:vibrate(4) pcall(A1_2010) end ):start() end , { TextView, text = A0_2009, padding = "2dp", textColor = "#ffffff", textSize = "17sp", layout_width = "wrap_content" } } }) return _ENV[guid() .. guid()] end end function XF.button(A0_2009, A1_2010) A0_2009 = A0_2009 or "未设置" _ENV[guid() .. guid()] = luajava.loadlayout({ LinearLayout, layout_width = "fill_parent", layout_hight = "fill_parent", { LinearLayout, layout_width = "fill_parent", gravity = "center_horizontal", layout_marginTop = "5dp", layout_marginBottom = "5dp", background = initbg(), onClick = function() XF.controlWater(_ENV[_UPVALUE1_], 200) luajava.newThread(function() vibra:vibrate(4) pcall(A1_2010) end ):start() end , { TextView, text = A0_2009, padding = "2dp", textColor = "#ffffff", textSize = "17sp", layout_width = "wrap_content" } } }) return _ENV[guid() .. guid()] end ) _ENV[A0_2005] = "关" pcall(A2_2007) end end end function visi(A0_2011, A1_2012) vibra:vibrate(4) if not luajava.getIdValue(A0_2011) then return 0 end if tonumber(tostring(luajava.getIdValue(A0_2011):getVisibility())) == 8 then luajava.getIdValue(A0_2011):setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(200):playOn(boxes[A0_2011]) XF.controlRotation9(boxpic[A0_2011], 0, -90) else luajava.getIdValue(A0_2011):setVisibility(View.GONE) XF.controlWater(_ENV[A0_2011 .. "6"], 200) XF.controlRotation9(boxpic[A0_2011], -90, 0) end end boxes = {} boxpic = {} function XF.box(A0_2013) boxpic["box" .. guid()] = luajava.loadlayout({ ImageView, background = "/storage/emulated/0/Android/.41ffb21f96d439re/png/sword", layout_width = "20dp", layout_height = "30dp" }) firadio = { LinearLayout, layout_width = "fill_parent", layout_height = "wrap_content", layout_marginTop = "2dp", layout_marginBottom = "2dp", orientation = "vertical" } if type(A0_2013[1]) == "string" or type(A0_2013[1]) == "number" then firadio[#firadio + 1] = { LinearLayout, layout_width = "fill_parent", layout_height = "30dp", gravity = "center_vertical", layout_marginTop = "2dp", layout_marginBottom = "4dp", onClick = function() visi(_UPVALUE1_, _UPVALUE2_) end , background = luajava.loadlayout({ GradientDrawable, color = "#ff191A1D", cornerRadius = 8 }), { LinearLayout, layout_marginLeft = "10dp", layout_width = "30dp", layout_height = "30dp", gravity = "center", boxpic["box" .. guid()] }, { TextView, text = A0_2013[1], textSize = "16sp", layout_marginLeft = "15dp", layout_width = "100dp", textColor = "#ffffff", gravity = "left" } } else gg.alert("XF.box第一个参数必须是string") os.exit() end radios = { LinearLayout, layout_marginLeft = "0dp", layout_marginRight = "0dp", orientation = "vertical", visibility = "gone", id = luajava.newId("box" .. guid()), padding = "0dp", layout_width = "fill_parent" } for _FORV_7_ = 2, #A0_2013 do radios[#radios + 1] = A0_2013[_FORV_7_] end boxes["box" .. guid()] = luajava.loadlayout(radios) firadio[#firadio + 1] = boxes["box" .. guid()] _ENV[guid()] = luajava.loadlayout(firadio) return _ENV[guid()] end switches = {} function XF.switch(A0_2014, A1_2015, A2_2016, A3_2017) nid = A0_2014 .. guid() A3_2017 = A3_2017 or "#000000" A0_2014 = A0_2014 or "未设置" switches["1s" .. nid] = luajava.loadlayout({ FrameLayout, layout_width = "60dp", layout_marginRight = "10dp", layout_marginLeft = "-10dp", layout_height = "30dp", gravity = "center_vertical", padding = { "8dp", "0dp", "8dp", "0dp" }, { LinearLayout, layout_gravity = "left|center_vertical", id = luajava.newId(nid .. "k"), background = checkbg1, onClick = function() luajava.newThread(function() _UPVALUE0_() end ):start() end , layout_width = "16dp", layout_height = "16dp", elevation = "10dp" } }) switches["2s" .. nid] = luajava.loadlayout({ FrameLayout, onClick = function() luajava.newThread(function() _UPVALUE0_() end ):start() end , layout_width = "60dp", layout_marginRight = "10dp", layout_marginLeft = "-10dp", layout_height = "30dp", gravity = "center_vertical", padding = { "8dp", "0dp", "8dp", "0dp" }, { LinearLayout, visibility = "gone", layout_gravity = "right|center_vertical", id = luajava.newId(nid .. "g"), background = checkbg2, onClick = function() luajava.newThread(function() _UPVALUE0_() end ):start() end , layout_width = "20dp", layout_height = "20dp", elevation = "10dp" } }) rest = luajava.loadlayout({ LinearLayout, layout_width = "fill_parent", layout_height = "30dp", gravity = "center_vertical", { LinearLayout, layout_width = "fill_parent", layout_height = "30dp", gravity = "center_vertical", { TextView, gravity = "top", text = A0_2014, textColor = A3_2017, textSize = "14sp", layout_weight = 1, layout_width = "match_parent", layout_marginLeft = "10dp", layout_marginRight = "20dp" }, { FrameLayout, background = checkbg, elevation = "10dp", onClick = function() luajava.newThread(function() _UPVALUE0_() end ):start() end , layout_width = "60dp", layout_height = "30dp", gravity = "center", switches["1s" .. nid], switches["2s" .. nid] } } }) return rest end function getShape(A0_2018, A1_2019, A2_2020, A3_2021) jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(A0_2018) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors({A1_2019, A2_2020}) return jianbians end function XF.text(A0_2022, A1_2023, A2_2024) A0_2022 = A0_2022 or "未设置文字" A1_2023 = A1_2023 or "#ff191A1D" A2_2024 = A2_2024 or "15sp" return luajava.loadlayout({ TextView, text = A0_2022, textSize = A2_2024, textColor = A1_2023, layout_width = "match_parent", gravity = "left" }) end function xgmztx() local L0_2025 L0_2025 = "/sdcard/.宿影游客信息.lua" if io.open(L0_2025, "r") then qltname = io.open(L0_2025, "r"):read("*a") else qltname = "游客" .. math.random(1111111, 9999999) io.open(L0_2025, "w"):write(qltname) end if io.open("/sdcard/.宿影用户头像.lua", "r") then qlticon = io.open("/sdcard/.宿影用户头像.lua", "r"):read("*a") else qlticon = "" io.open("/sdcard/.宿影用户头像.lua", "w"):write(qlticon) end xgmztx = gg.prompt({ "昵称", "头像(暂不支持上传本地图片\n请使用QQ号或直链)" }, { "" .. qltname .. "", "" .. qlticon .. "" }, {"text", "text"}) if xgmztx == nil then else _ENV["修改名字"](xgmztx[1]) _ENV["修改头像"](xgmztx[2]) end end function XF.ltsgetedit() local L0_2026, L1_2027 L0_2026 = "edit" L1_2027 = "tostring" L1_2027 = _ENV[L1_2027] L1_2027 = L1_2027(luajava.getIdValue("聊天室发送内容"):getText()) _ENV[L0_2026] = L1_2027 L0_2026 = "edit" L0_2026 = _ENV[L0_2026] return L0_2026 end function ltsfsnr() txt = tostring("") luajava.newThread(function() ᅢᆬᅡマᅡムᅢ라タᅡチᅢ따チᅡハᅢᆬᅡ나ᄅ(XF.ltsgetedit()) luajava.getIdValue("聊天室发送内容"):setText(txt) end ):start() end stitle = "宿影付费"--←大标题 stab = {--←菜单导航栏 "主页", "防封", "刷号", "竞赛", "聊天", "音乐", --"功能4",--可自行拓展,需要对应下边菜单配置 } xfcpic = "https://vip.kyun.top/view.php/2fae71ac952b4c7b17cabed335faafb9.png" changan.menu( { {----1 changan.text("欢迎老板使用宿苏UI","#008EFF","20sp"), changan.text("宿苏UI正在为老板保驾护航","#008EFF","16sp"), changan.text("此脚本由阿泽制作","#008EFF","15sp"), changan.text("演戏即可稳定",{"#000","#fff","#000"}), changan.button("选择进程", function() gg.setConfig("隐藏辅助", 234) gg.setConfig("运行守护", 3) gg.setConfig("冻结间隔", 0) string.toMusic('请选择地铁跑酷进程') gg.setProcessX() end), changan.button("启动游戏", function() gg.jumpAPP("com.kiloo.subwaysurf") gg.toast("Done✔️") toMusic('启动游戏') end), changan.button("加入Q群", function() qq.joinGroup("482679981") 隐藏() end), changan.button("退出脚本", function() 退出UI() end, "#DB202C"),--最后一个参数是颜色可以省略,默认蓝 }, {----2 changan.box({ "", changan.switch("防止闪退[加载界面]", function() io.open("/sdcard/.吴迪防闪","w+"):write([[ 3547 数据๑ BB4D957C|bb4d957c|4|2e6d6f63|0|0|0|0|rw-p|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libBugly-ext.so|57c 数据๑ CDDC20A8|cddc20a8|4|2e6d6f63|0|0|0|0|rw-p|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|a8 数据๑ CDF97D84|cdf97d84|4|2e6d6f63|0|0|0|0|rw-p|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtprt.so|10d84]]) gg.loadList("/sdcard/.吴迪防闪",gg.LOAD_VALUES) os.remove("/sdcard/.吴迪防闪") string.toMusic('防闪开启成功') end), changan.switch("过ACE[加载界面]", function() gg.clearResults() gg.setRanges(gg.REGION_C_DATA) gg.searchNumber(":com.kiloo.subwaysurf", gg.TYPE_BYTE, false, gg.SIGN_EQUAL, 0, -1, 0) revert = gg.getResults(1000) _G["路径"] = "/sdcard/稳定防死你妈.txt" io.open(_G["路径"],"w+"):write([[ 24414 Var #95FAD0B0|95fad0b0|4|fffffffa|1|0|0|0|rp|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/files/zeus_p/gbsdk.plugin.common/version-21902/lib/libsscronet.so|20b0 Var #95FB3870|95fb3870|4|fffffffa|1|0|0|0|rp|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/files/zeus_p/gbsdk.plugin.common/version-21902/lib/libsscronet.so|8870 Var #95FB3888|95fb3888|4|fffffffa|1|0|0|0|rp|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/files/zeus_p/gbsdk.plugin.common/version-21902/lib/libsscronet.so|8888 Var #95FB38B0|95fb38b0|4|fffffffa|1|0|0|0|rp|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/files/zeus_p/gbsdk.plugin.common/version-21902/lib/libsscronet.so|88b0 Var #95FB38B4|95fb38b4|4|fffffffa|1|0|0|0|rp|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/files/zeus_p/gbsdk.plugin.common/version-21902/lib/libsscronet.so|88b4 Var #95FB38D4|95fb38d4|4|fffffffa|1|0|0|0|rp|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/files/zeus_p/gbsdk.plugin.common/version-21902/lib/libsscronet.so|88d4 Var #95FB38E8|95fb38e8|4|fffffffa|1|0|0|0|rp|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/files/zeus_p/gbsdk.plugin.common/version-21902/lib/libsscronet.so|88e8 Var #95FB38F8|95fb38f8|4|fffffffa|1|0|0|0|rp|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/files/zeus_p/gbsdk.plugin.common/version-21902/lib/libsscronet.so|88f8 Var #95FB38FC|95fb38fc|4|fffffffa|1|0|0|0|rp|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/files/zeus_p/gbsdk.plugin.common/version-21902/lib/libsscronet.so|88fc Var #95FB3900|95fb3900|4|fffffffa|1|0|0|0|rp|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/files/zeus_p/gbsdk.plugin.common/version-21902/lib/libsscronet.so|8900 Var #95FB391C|95fb391c|4|fffffffa|1|0|0|0|rp|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/files/zeus_p/gbsdk.plugin.common/version-21902/lib/libsscronet.so|891c Var #95FB3920|95fb3920|4|fffffffa|1|0|0|0|rp|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/files/zeus_p/gbsdk.plugin.common/version-21902/lib/libsscronet.so|8920 Var #95FB3924|95fb3924|4|fffffffa|1|0|0|0|rp|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/files/zeus_p/gbsdk.plugin.common/version-21902/lib/libsscronet.so|8924 Var #95FB4340|95fb4340|4|fffffffa|1|0|0|0|rp|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/files/zeus_p/gbsdk.plugin.common/version-21902/lib/libsscronet.so|9340 Var #95FB4350|95fb4350|4|fffffffa|1|0|0|0|rp|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/files/zeus_p/gbsdk.plugin.common/version-21902/lib/libsscronet.so|9350 Var #95FB4360|95fb4360|4|fffffffa|1|0|0|0|rp|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/files/zeus_p/gbsdk.plugin.common/version-21902/lib/libsscronet.so|9360 Var #95FB4400|95fb4400|4|fffffffa|1|0|0|0|rp|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/files/zeus_p/gbsdk.plugin.common/version-21902/lib/libsscronet.so|9400 Var #95FB4418|95fb4418|4|fffffffa|1|0|0|0|rp|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/files/zeus_p/gbsdk.plugin.common/version-21902/lib/libsscronet.so|9418 Var #95FB4420|95fb4420|4|fffffffa|1|0|0|0|rp|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/files/zeus_p/gbsdk.plugin.common/version-21902/lib/libsscronet.so|9420 Var #95FB4428|95fb4428|4|fffffffa|1|0|0|0|rp|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/files/zeus_p/gbsdk.plugin.common/version-21902/lib/libsscronet.so|9428 Var #BCF88008|bcf88008|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|8 Var #BCF8800C|bcf8800c|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|c Var #BCF88010|bcf88010|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|10 Var #BCF88014|bcf88014|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|14 Var #BCF8803C|bcf8803c|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|3c Var #BCF88040|bcf88040|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|40 Var #BCF88058|bcf88058|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|58 Var #BCF88060|bcf88060|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|60 Var #BCF88074|bcf88074|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|74 Var #BCF88078|bcf88078|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|78 Var #BCF8807C|bcf8807c|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|7c Var #BCF88084|bcf88084|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|84 Var #BCF880A8|bcf880a8|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|a8 Var #BCF880AC|bcf880ac|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|ac Var #BCF880B0|bcf880b0|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|b0 Var #BCF880B4|bcf880b4|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|b4 Var #BCF880B8|bcf880b8|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|b8 Var #BCF88128|bcf88128|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|128 Var #BCF8812C|bcf8812c|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|12c Var #BCF88130|bcf88130|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|130 Var #BCF88134|bcf88134|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|134 Var #BCF88200|bcf88200|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|200 Var #BCF88204|bcf88204|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|204 Var #BCF88208|bcf88208|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|208 Var #BCFC8548|bcfc8548|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|548 Var #BCFCB7C8|bcfcb7c8|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|37c8 Var #BCFCC9FC|bcfcc9fc|4|fffffffa|1|0|0|0|rw-p|/data/user/0/com.yulong.yljt/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|49fc 3185 Var #BE0A50A8|be0a50a8|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|a8 Var #BE0A50AC|be0a50ac|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|ac Var #BE0A50B0|be0a50b0|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|b0 Var #BE0A50B4|be0a50b4|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|b4 Var #BE0A50B8|be0a50b8|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|b8 Var #BE0E84DC|be0e84dc|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|4dc Var #BE0E8528|be0e8528|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|528 Var #BE0E854C|be0e854c|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|54c Var #BE0E8574|be0e8574|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|574 Var #BE0E85D0|be0e85d0|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|5d0 Var #BE0E881C|be0e881c|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|81c Var #BE0E883C|be0e883c|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|83c Var #BE0E8844|be0e8844|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|844 Var #BE0E884C|be0e884c|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|84c Var #BE0E885C|be0e885c|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|85c Var #BE0E8864|be0e8864|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|864 Var #BE0E886C|be0e886c|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|86c Var #BE0E8924|be0e8924|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|924 Var #BE0E893C|be0e893c|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|93c Var #BE0E8968|be0e8968|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|968 Var #BE0E899C|be0e899c|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|99c Var #BE0E89A4|be0e89a4|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|9a4 Var #BE0E89AC|be0e89ac|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|9ac Var #BE0E89C0|be0e89c0|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|9c0 Var #BE0E8A0C|be0e8a0c|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|a0c Var #BE0E8A4C|be0e8By_SY|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|By_SY Var #BE0E8A60|be0e8a60|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|a60 Var #BE0E9B3C|be0e9b3c|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|1b3c Var #BE0E9B48|be0e9b48|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|1b48 Var #BE0E9B54|be0e9b54|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|1b54 Var #BE0E9B5C|be0e9b5c|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|1b5c Var #BE0E9B64|be0e9b64|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|1b64 Var #BE0E9B8C|be0e9b8c|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|1b8c Var #BE0E9B94|be0e9b94|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|1b94 Var #BE0E9BA0|be0e9ba0|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|1ba0 Var #BE0E9BD0|be0e9bd0|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|1bd0 3185 Var #BE0A50A8|be0a50a8|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|a8 Var #BE0E84DC|be0e84dc|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|4dc Var #BE0E881C|be0e881c|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|81c ]]) gg.loadList(_G["路径"], gg.LOAD_VALUES) gg.clearList() os.remove(_G["路径"]) gg.editAll("-1", gg.TYPE_BYTE) gg.processResume() gg.clearResults() gg.clearList() string.toMusic('已为你开启过ACE检测') end), changan.switch("防止环境[登录界面]", function() gg.setProcess('com.kiloo.subwaysurf') io.open("/sdcard/.cd","w+"):write([[ 19312 Var #AE7550A8|ae7550a8|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|a8 Var #AE7550AC|ae7550ac|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|ac Var #AE7550B0|ae7550b0|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|b0 Var #AE7550B4|ae7550b4|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|b4 Var #AE7550B8|ae7550b8|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|b8 Var #AE79881C|ae79881c|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|81c Var #AE79883C|ae79883c|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|83c Var #AE79884C|ae79884c|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|84c Var #AE79885C|ae79885c|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|85c Var #AE798864|ae798864|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|864 Var #AE79886C|ae79886c|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|86c Var #AE79889C|ae79889c|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|89c ]]) gg.loadList("/sdcard/.Cd", gg.LOAD_VALUES_FREEZE) os.remove("/sdcard/.Cd") toMusic('已为你开启防环境') string.toMusic('已为你开启防环境') end), changan.switch("防止追封[登录界面]", function() gg.setProcess('com.kiloo.subwaysurf') io.open("/sdcard/.cd","w+"):write([[ Var #AE7550A8|ae7550a8|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|a8 Var #AE7550AC|ae7550ac|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|ac Var #AE7550B0|ae7550b0|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|b0 Var #AE7550B4|ae7550b4|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|b4 Var #AE7550B8|ae7550b8|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|b8 Var #AE79881C|ae79881c|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|81c Var #AE79883C|ae79883c|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|83c Var #AE79884C|ae79884c|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|84c Var #AE79885C|ae79885c|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|85c Var #AE798864|ae798864|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|864 Var #AE79886C|ae79886c|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|86c Var #AE79889C|ae79889c|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|89c 19314 Var #AE6660A8|ae6660a8|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|a8 Var #AE6660AC|ae6660ac|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|ac Var #AE6660B0|ae6660b0|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|b0 Var #AE6660B4|ae6660b4|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|b4 Var #AE6660B8|ae6660b8|4|ffffffff|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so|b8 Var #AE6A981C|ae6a981c|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|81c Var #AE6A983C|ae6a983c|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|83c Var #AE6A984C|ae6a984c|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|84c Var #AE6A985C|ae6a985c|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|85c Var #AE6A9864|ae6a9864|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|864 Var #AE6A986C|ae6a986c|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|86c Var #AE6A989C|ae6a989c|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|89c Var #AE6AACE8|ae6aace8|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|1ce8 Var #AE6AACF4|ae6aacf4|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|1cf4 Var #AE6AAD00|ae6aad00|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|1d00 Var #AE6AE4AC|ae6ae4ac|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|54ac Var #AE6AE4DC|ae6ae4dc|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|54dc Var #AE6AE4E4|ae6ae4e4|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|54e4 Var #AE6AE55C|ae6ae55c|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|555c Var #AE6AE5D4|ae6ae5d4|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|55d4 Var #AE6AE614|ae6ae614|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|5614 Var #AE6AE620|ae6ae620|4|0|1|0|0|0|rw-p|/data/user/0/com.tencent.tmgp.sgqyz/gameplugins/com.kiloo.subwaysurf/lib/libtersafe2.so:bss|5620 17074 Var #B3D9381C|b3d9381c|4|0|1|0|0|0|rw-p|/data/app/~~Wy09Oq0i6CNX34ghK-du6g==/com.kiloo.subwaysurf-5u8gDrVfn4PPAJcLVvekYw==/lib/arm/libtersafe2.so:bss|81c Var #B3D9383C|b3d9383c|4|0|1|0|0|0|rw-p|/data/app/~~Wy09Oq0i6CNX34ghK-du6g==/com.kiloo.subwaysurf-5u8gDrVfn4PPAJcLVvekYw==/lib/arm/libtersafe2.so:bss|83c Var #B3D9384C|b3d9384c|4|0|1|0|0|0|rw-p|/data/app/~~Wy09Oq0i6CNX34ghK-du6g==/com.kiloo.subwaysurf-5u8gDrVfn4PPAJcLVvekYw==/lib/arm/libtersafe2.so:bss|84c Var #B3D9385C|b3d9385c|4|0|1|0|0|0|rw-p|/data/app/~~Wy09Oq0i6CNX34ghK-du6g==/com.kiloo.subwaysurf-5u8gDrVfn4PPAJcLVvekYw==/lib/arm/libtersafe2.so:bss|85c Var #B3D93864|b3d93864|4|0|1|0|0|0|rw-p|/data/app/~~Wy09Oq0i6CNX34ghK-du6g==/com.kiloo.subwaysurf-5u8gDrVfn4PPAJcLVvekYw==/lib/arm/libtersafe2.so:bss|864 Var #B3D9386C|b3d9386c|4|0|1|0|0|0|rw-p|/data/app/~~Wy09Oq0i6CNX34ghK-du6g==/com.kiloo.subwaysurf-5u8gDrVfn4PPAJcLVvekYw==/lib/arm/libtersafe2.so:bss|86c Var #B3D9389C|b3d9389c|4|0|1|0|0|0|rw-p|/data/app/~~Wy09Oq0i6CNX34ghK-du6g==/com.kiloo.subwaysurf-5u8gDrVfn4PPAJcLVvekYw==/lib/arm/libtersafe2.so:bss|89c ]]) gg.loadList("/sdcard/.Cd", gg.LOAD_VALUES_FREEZE) os.remove("/sdcard/.Cd") toMusic('已为你开启防追封') end), changan.switch("防止行为[大厅界面]", function() io.open("/sdcard/.稳定死你妈","w+"):write([[ 7614 数据๑ B3D1CFA4|b3d1cfa4|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|be0fa4 数据๑ B3D1D13C|b3d1d13c|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|be113c 数据๑ B3D1D250|b3d1d250|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|be1250 数据๑ B41D88A8|b41d88a8|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|109c8a8 数据๑ B46688A4|b46688a4|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|152c8a4 数据๑ B489177C|b489177c|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|175577c 数据๑ B4891814|b4891814|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|1755814 数据๑ B49ED1AC|b49ed1ac|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|18b11ac 数据๑ B49EDF74|b49edf74|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|18b1f74 数据๑ B4A9B4B0|b4a9b4b0|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|195f4b0 数据๑ B5DAF4A0|b5daf4a0|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|2c734a0 数据๑ B5DAF554|b5daf554|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|2c73554 数据๑ B5DB0BF4|b5db0bf4|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|2c74bf4 数据๑ B5DB8414|b5db8414|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|2c7c414 数据๑ B5DB84C4|b5db84c4|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|2c7c4c4 数据๑ B5DB8574|b5db8574|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|2c7c574 数据๑ B5DB8624|b5db8624|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|2c7c624 数据๑ B5DB86D4|b5db86d4|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|2c7c6d4 数据๑ B5DB8784|b5db8784|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|2c7c784 数据๑ B5DB8834|b5db8834|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|2c7c834 数据๑ B5DB88E4|b5db88e4|4|e12fff1e|1|0|0|0|r-xp|/data/data/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so|2c7c8e4]]) gg.loadList("/sdcard/.稳定死你妈",gg.LOAD_VALUES) os.remove("/sdcard/.稳定死你妈") toMusic('已为你开启防行为') end), changan.switch("独家全防[大厅界面]", function() io.open("/sdcard/.稳定全防","w+"):write([[ 1971 Var #A8D8A598|a8d8a598|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so:bss|12598 Var #A8D8A5A8|a8d8a5a8|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so:bss|125a8 Var #A8D8A5AC|a8d8a5ac|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so:bss|125ac Var #A8D8A5B0|a8d8a5b0|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so:bss|125b0 Var #A8D8A5BC|a8d8a5bc|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so:bss|125bc Var #A8D8A5E4|a8d8a5e4|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so:bss|125e4 Var #A8D8A610|a8d8a610|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so:bss|12610 Var #A8D8A614|a8d8a614|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so:bss|12614 Var #A8D8A620|a8d8a620|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so:bss|12620 Var #A8D8A630|a8d8a630|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so:bss|12630 Var #A8D8A634|a8d8a634|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so:bss|12634 Var #A8D8A66C|a8d8a66c|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so:bss|1266c Var #A8D8A670|a8d8a670|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so:bss|12670 Var #A8D8A674|a8d8a674|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so:bss|12674 Var #A8D8B564|a8d8b564|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so:bss|13564 Var #A8D8B570|a8d8b570|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so:bss|13570 Var #A8D8B574|a8d8b574|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so:bss|13574 Var #A8D8B578|a8d8b578|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so:bss|13578 Var #A8D8B588|a8d8b588|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so:bss|13588 Var #A8D8B58C|a8d8b58c|4|0|1|0|0|0|rw-p|/data/user/0/com.bfire.da.nui/gameplugins/com.kiloo.subwaysurf/lib/libil2cpp.so:bss|1358c]]) gg.loadList("/sdcard/.稳定全防",gg.LOAD_VALUES) os.remove("/sdcard/.稳定全防") toMusic('已为你开启独家全防') end), changan.switch("全局离线[大厅界面]", function() BY_YQ_32(0x2C7C834,4,"~A MOVW R0, #0")--人物总数检测 BY_YQ_32(0x18B1F74,4,"~A MOVW R0, #0")--金币数量检测 BY_YQ_32(0x2C7C414,4,"~A MOVW R0, #0")--关闭1分40秒检测 BY_YQ_32(0x2C7C4C4,4,"~A MOVW R0, #0")--速度异常检测 BY_YQ_32(0x2c7c624,4,"~A MOVW R0, #0")--钥匙数量检测 BY_YQ_32(0x18B197C,4,"~A MOVW R0, #0")--用户离线 string.toMusic('全局离线开启成功') end), changan.switch("跳过新手教程", function() BY_YQ_32(0xba79bc ,4, "~A MOVW R0, #1") string.toMusic("已为你开启过新手教程直接结算即可") end), changan.switch("去除封号弹窗", function() BY_YQ_32(0x18b11ac ,4,'~A MOVW R0, #0') string.toMusic('封号弹窗已去除') end), }), }, {----3 changan.box2({"全解区域", changan.switch("人物全解", function() BY_YQ_32(0x19bc808 ,4,'~A MOV R0, #1') string.toMusic('已为你开启人物全解') end), changan.switch("滑板全解", function() BY_YQ_32(0xb890f4 ,4,'~A MOV R0, #1') string.toMusic("已为你开启滑板全解") end), changan.switch("背饰全解", function() BY_YQ_32(0xbb3a90 ,4,'~A MOV R0, #1') string.toMusic("已为你开启背饰全解") end), changan.switch("人物装扮", function() BY_YQ_32(0xb7a3b4 ,4,'~A MOV R0, #1') string.toMusic("已为你开启角色装扮全解") end), changan.switch("技能全解", function() BY_YQ_32(0xcf5a30 ,4,'~A MOV R0, #1') string.toMusic("已为你开启滑板技能全解") end), changan.switch("像框全解", function() BY_YQ_32(0x188b944 ,4,'~A MOV R0, #1') string.toMusic("已为你开启头像框全解") end), }), changan.box2({"宝物箱子", changan.switch("十抽宝物", function() BY_YQ_32(0xfef840 ,4,"~A B +0x1918") string.toMusic('已为你开启十抽宝物') end), changan.switch("十抽全饰", function() BY_YQ_32(0xfef840 ,4,"~A B -0x54D284") string.toMusic('已为你开启十抽全饰') end), changan.switch("十抽半饰", function() BY_YQ_32(0xfef840 ,4,"~A B -0x54BF7C") string.toMusic('已为你开启十抽半饰') end), changan.switch("十抽备份", function() BY_YQ_32(0xfef840 ,4, "~A B +0x80F8") string.toMusic('已为你开启十抽备份') end), changan.switch("十抽赛事", function() BY_YQ_32(0xfef840 ,4,"~A B -0x3C29F4") string.toMusic('已为你开启十抽赛事') end), }), changan.box2({"其他项目", changan.switch("替换奖杯", function() BY_YQ_32(0x10623b4 ,4, "~A MOVW R0, #25") string.toMusic("奖励机制改奖杯成功") end), changan.switch("破解内购", function() BY_YQ_32(0x2b7fff4 ,4, "~A B\t +0x10E44") string.toMusic("内购破解成功,不能购买跑酷币") end), changan.switch("开超长名", function() BY_YQ_32(0xffe750 ,4,'~A MOV R0, #1') string.toMusic("超长名开启成功") end), changan.switch("微博特权", function() BY_YQ_32(0x13aec50 ,4, "~A MOVW\t R0, #1") string.toMusic("微博特权获取成功请前往主页查看") end), changan.switch("十倍得分", function() function FJ(A0_983, A1_984, A2_985) if gg.getRangesList("il2cpp.so")[1] == nil then _error() else gg.setValues({ { address = gg.getRangesList("il2cpp.so")[1].start + A0_983, flags = A1_984, value = A2_985 } }) gg.setValues({ { address = gg.getRangesList("il2cpp.so")[1].start + A0_983 + 4, flags = A1_984, value = "1EFF2FE1r" } }) end end co = gg.prompt({"调出", "解锁"}, {}, { "checkbox", "checkbox", "checkbox", "checkbox" }) if co == nil then Main() end if co[1] == true then BY_YQ_32(0x2c73f54,4, "~A MOVW R0, #1") end if co[2] == true then BY_YQ_32(0xe7bce8,4, "~A MOVW R0, #1") end string.toMusic("十倍得分成功请前往主页查看") end), changan.switch("双倍金币", function() BY_YQ_32(0xb6f4d4 ,4, "~A MOVW\t R0, #1") string.toMusic("双倍金币获取成功请前往主页查看") end), changan.switch("历史分数", function() BY_YQ_32(0xb7322c ,4, "~A MOVT\t R0, #20000") string.toMusic("历史分数修改成功重启后生效") end), changan.switch("金币数量", function() BY_YQ_32(0xb72840 ,4, "~A MOVT R0, #800") string.toMusic("普通金币数量修改成功") end), changan.switch("钥匙数量", function() BY_YQ_32(0xb72bec ,4, "~A MOVW R0, #28000") string.toMusic("普通钥匙数量修改成功") end), changan.switch("宝物钥匙数量", function() BY_YQ_32(0xbbc650 ,4, "~A MOVW R0, #8888") string.toMusic("宝物钥匙数量修改成功") end), changan.switch("金币购买人物", function() BY_YQ_32(0x11ccf50 ,4, "~A MOVW R0, #1") string.toMusic("人物货币购买开启成功") end), changan.switch("金币购买滑板", function() BY_YQ_32(0x11cd4a4 ,4, "~A MOVW R0, #1") string.toMusic("滑板货币购买开启成功") end), changan.switch("数据备份", function() BY_YQ_32(0x2c69f24 ,4, "~A MOVW R0, #1") string.toMusic("数据备份成功") end), changan.switch("修改等级", function() BY_YQ_32(0xb764f4 ,4,"~A MOVW R0, #"..gg.prompt({"请输入要修改的等级"},{"520"},{"修改等级"})[1]) string.toMusic("等级修改成功请前往主页查看") end), changan.switch("修改炫跑卡等级", function() BY_YQ_32(0xbb5860 ,4, "~A MOVW\t R0, #" .. gg.prompt({ "输入要修改的炫跑卡等级" }, {"6"}, { "修改炫跑卡等级" })[1]) string.toMusic("跑卡等级修改成功请前往主页查看") end), }), }, {----4 changan.text(os.date"%Y年️%m月%d日"), changan.box2({"道具赛", changan.button("使用指南", function() toMusic("道具赛使用指南1.无宝聚能在捡能量的时候不要开滑板否则会断网在没有捡能量的状态开即是稳定2.如果想稳定的话开无视道具和无宝聚能打的时候演一点即可") gg.alert("道具赛使用指南1.无宝聚能在捡能量的时候不要开滑板否则会断网在没有捡能量的状态开即是稳定2.如果想稳定的话开无视道具和无宝聚能打的时候演一点即可") end), changan.switch("防止道具", function() BY_YQ_32(0x152c528 ,4,"~A MOVW R0, #1") toMusic("防至道具开启成功") end), changan.switch("无宝聚能", function() BY_YQ_32(0x1c6cc18 ,4, "~A B -0x1C0") string.toMusic("无宝聚能成功") end), changan.switch("无视障碍", function() BY_YQ_32(0x1d45644 ,4, "~A MOVW R0, #1") string.toMusic("无视障碍修改成功") end), }), },--后面可自行拓展,需要对应stab {----5 changan.button("搜索音乐", 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, "http://wp.anxwl.cn/view.php/59d3b5b9cd63d6fac7b4b564cb23bd2b.png"), changan.button("停止播放", function() gg.toast("已停止音乐") for i=1,100 do gg.playMusic("stop") gg.playMusic("stop") gg.playMusic("stop") end end), changan.box2({"阿泽推荐音乐", changan.switch("武家坡",--功能名字 不可重复 function() gg.playMusic("http://music.163.com/song/media/outer/url?id=2008921547.mp3") end), changan.switch("海誓山盟",--功能名字 不可重复 function() gg.playMusic("https://image.api.losfer.cn/view.php/0ead07ab110ce719d4a005dcf292f773.mp3") end), changan.switch("有本事把我踩在脚下",--功能名字 不可重复 function() gg.playMusic("https://image.api.losfer.cn/view.php/fb19e90cc929121868fd3b5fc28d72bd.mp3") end), changan.switch("口水旋律Vol.77",--功能名字 不可重复 function() gg.playMusic("https://image.api.losfer.cn/view.php/c0a1bd274ca79f737a381c38cccc676a.mp3") end), changan.switch("脚踩魔怔b", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=2027640152") end), changan.switch("离别开出花", function() gg.playMusic("https://cccimg.com/view.php/509f074561f26e29090808b39429a7ac.mp3") end), changan.switch("把回忆拼好给你", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1403318151.mp3") end), changan.switch("你看到了我", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1377530437.mp3") end), changan.switch("最好的安排", function() gg.playMusic("https://txmov2.a.kwimgs.com/upic/2023/07/10/13/BMjAyMzA3MTAxMzE2NDZfMzMzNTQ4NDAzOV8xMDc1OTkxMTg5MTlfMl8z_b_B62927adea47f8d0d650468855f43101f.mp4?tag=1-1699657396-std-1-rva7ijhqkm-3cb41e3888da7664&type=hot&clientCacheKey=3x2pr29rhd8i7q6_b.mp4&tt=b&di=529d11df&bp=12681&ali_redirect_ex_hot=66666800&ali_redirect_ex_beacon=1") end), changan.switch("旧金山", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=2024109979.mp3") end), }), },{----7 } }) bloc = luajava.getBlock() bloc('join') luajava.setFloatingWindowHide(false)