do if type(getrlyunyz) ~= 'function' then gg.alert('请使用RLGG执行') os.exit() return end local info = { example_version = '1.0.3', name = '仙神', appid = '32482', appkey = 'kZ758L3LihL85qqk', rc4key = '4EzcSB60z2GlwS2e', version = '1.0', mi_type = '3' } local rlyunyz = getrlyunyz(info) local ret = rlyunyz.start() if not ret or not isTable(ret) or ret.sign ~= 'e69abe2c747ce24e41065efd8429ca5d' then os.exit() return end end gg.alert("æ£åœ¨æ£€æµ‹çŽ¯å¢ƒï¼Œè¯·ç¨ç‰.....") if gg.isHTTPdump() == false then gg.alert("环境æ£å¸¸ï¼Œæ£åœ¨å¼€å¯è„šæœ¬") end if gg.isHTTPdump() == true then gg.alert("çŽ¯å¢ƒå¼‚å¸¸ï¼Œæ£€æµ‹åˆ°ä½ ä½¿ç”¨äº†æŠ“åŒ…ï¼Œè¯·æ‚¨åœ¨3ç§’å†…å…³é—æˆ–者退出æ¤è„šæœ¬ï¼Œå¦åˆ™é¢ä¸´åˆ é™¤æ‚¨çœŸæœºä¸æ‰€æœ‰dataæ ¼å¼æ–‡ä»¶") os.exit()--退出脚本--有退出修改器函数就用这个--gg.ggExit() end if gg.isHTTPdump() == "error" then gg.alert("请检查网络是å¦è‰¯å¥½") end gg.alert("æ£åœ¨äºŒæ¬¡æ£€æµ‹çŽ¯å¢ƒï¼Œè¯·ç¨ç‰.....") if gg.isHTTPdump() == false then gg.alert("环境æ£å¸¸ï¼Œæ£åœ¨å¼€å¯è„šæœ¬") end if gg.isHTTPdump() == true then gg.alert("çŽ¯å¢ƒå¼‚å¸¸ï¼Œæ£€æµ‹åˆ°ä½ ä½¿ç”¨äº†æŠ“åŒ…ï¼Œè¯·æ‚¨åœ¨3ç§’å†…å…³é—æˆ–者退出æ¤è„šæœ¬ï¼Œå¦åˆ™é¢ä¸´åˆ é™¤æ‚¨çœŸæœºä¸æ‰€æœ‰dataæ ¼å¼æ–‡ä»¶") os.exit()--退出脚本--有退出修改器函数就用这个--gg.ggExit() end if gg.isHTTPdump() == "error" then gg.alert("请检查网络是å¦è‰¯å¥½") end gg.alert("开坿ˆåŠŸæ£åœ¨è¿žæŽ¥è„šæœ¬") draw.text('仙神稳定奔放', 200,100)draw.setColor('#fc913a') draw.text('官方QQ群:916011224', 200,200)draw.setColor('#fc913a') draw.text('作者:神罚', 200,300)draw.setColor('#fc913a') draw.text('神罚本人717145535', 200,400)draw.setColor('#fc913a') draw.setSize(35) draw.setStyle('æè¾¹å¹¶å¡«å……') draw3 = require('draw3') text1 = draw3.text('仙神全防', 5, 980) local color = 0xff0a0ef6 text1.setColor(color) draw3 = require('draw3') text1 = draw3.text('Q群:916011224', 5, 940) local color = 0xff0a0ef6 text1.setColor(color) draw3 = require('draw3') text1 = draw3.text('适é…地é“è·‘é…·4.07.1希腊版', 5, 1020) local color = 0xff0a0ef6 text1.setColor(color) draw3 = require('draw3') text1 = draw3.text('仙神全防', 5, 1060) local color = 0xff0a0ef6 text1.setColor(color) draw3 = require('draw3') text1 = draw3.text('', 5, 1100) local color = 0xff0a0ef6 text1.setColor(color) draw3 = require('draw3') local color = 0xff0a0ef6 text1.setColor(color) Q = gg.alert ( "仙神æé†’ä½ ï¼š\næ˜¯å¦æ‰§è¡Œè‡ªåŠ¨é˜²çŽ¯å¢ƒ\n\n--------æ— éœ€æ‰‹åŠ¨é€‰æ‹©è¿›ç¨‹\n\n--------游æˆå‰å¼€å¯\n\n当å‰ç³»ç»Ÿç»™ä½ 俩个选择\n\n1:䏿‰§è¡Œ--直接进入脚本\n\n2:ç»§ç»æ‰§è¡Œ\n\n优化问题:百分百过检测,优化了闪退的问题","䏿‰§è¡Œ","执行" ) if Q == 1 then string.toMusic ( "æ¬¢è¿Žè€æ¿ä½¿ç”¨ä»™ç¥žå…¨é˜²" ) return elseif Q == 2 then end gg.toast ( "æ£åœ¨ç‰å¾…执行..." ) string.toMusic ( "æ£åœ¨ç‰å¾…执行..." ) gg.sleep ( 3000 )--执行时间 string.toMusic ( "执行æˆåŠŸ..." ) gg.alert ( "执行æˆåŠŸ..." ) gg.sleep ( 2000 ) string.toMusic ( "当å‰å¯é€‰æ‹©æ˜¯å¦ç»§ç»" ) K = gg.alert ( "尊敬仙神的用户:\n\næ£€æµ‹ä½ ä¸ºä»™ç¥žå¿ å®žå®¢æˆ·\n\nç›®å‰å¯äº«ç”¨ã€è‡ªåŠ¨åŒ–æ³¨å…¥é˜²æ£€æµ‹ã€‘\n\n好处1:æ— éœ€æ‰‹åŠ¨å¼€å¯é˜²çŽ¯å¢ƒ\n\n好处2:æ— éœ€æ‰‹åŠ¨é€‰æ‹©è¿›ç¨‹\n\n注æ„1:在大厅开å¯å…¨é˜²ç‰å¡å¯†æ˜¾ç¤ºç™»å½•进入游æˆ\n\n注æ„2:如果没å¬è§æç¤ºéŸ³å°±åˆ¤æ–为开å¯å¤±è´¥","å–æ¶ˆ","ç»§ç»" ) if K == 1 then string.toMusic("æ¬¢è¿Žè€æ¿ä½¿ç”¨ä»™ç¥žå…¨é˜²") return elseif K == 2 then end local json = json 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 XCx32 = 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 ZX(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 byXa(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 FB = 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 ByXm(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() gg.alert([[ å¼€å¯å¤±è´¥ å¤±è´¥åŽŸå› ï¼šè¿›ç¨‹å˜å‚¨å¤ªå°ï¼ 解决方案:刷新进程åŽé‡å¯å¼€å¯ ]]) end function ByNb(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 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 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 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 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 function ByXm(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() gg.alert([[ å¼€å¯å¤±è´¥ å¤±è´¥åŽŸå› ï¼šè¿›ç¨‹å˜å‚¨å¤ªå°ï¼ 解决方案:刷新进程åŽé‡å¯å¼€å¯ ]]) end j={} xgz={} ZY='Main' gg.clearResults() sj={} xgz={} function search(ss,lx,nc,dz1,dz2) if ss~=nil then if lx~=nil then if nc==nil then nc=32 end gg.setRanges(nc) if dz1==nil then dz1="-1" end if dz2==nil then dz1="0" end gg.searchNumber(ss,lx,false,gg.SIGN_EQUAL,dz1,dz2) sl=gg.getResultCount() if sl~=0 then sj=gg.getResults(sl) gg.toast("â¤ï¸æœç´¢åˆ° "..sl.." 个结果â¤ï¸") gg.clearResults() else 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 function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) if gg.searchNumber(qmnb[3]["value"],qmnb[3]["type"],false,gg.SIGN_EQUAL,0,-1)~=true then gg.searchAddress(qmnb[3]["value"],-1,qmnb[3]["type"]) end if gg.getResultCount()==0 then gg.toast(qmnb[2]["name"].."å¼€å¯å¤±è´¥")return end szxx=gg.getResults(gg.getResultCount()) szpd={} a=0 for i=4,#qmnb do for s=1,#szxx do if szpd[s]~="false" then if gg.getValues({{address=szxx[s].address+qmnb[i]["offset"],flags=qmnb[i]["type"]}})[1].value+0~=qmnb[i]["lv"]then szpd[s]="false" a=a+1 end end end end if a==#szxx then gg.toast(qmnb[2]["name"].."å¼€å¯å¤±è´¥")return end b=0 t={} for x=1,#qmxg do if qmxg[x]["freeze"]==true then a=1 end for i=1,#szxx do if szpd[i]==nil then b=b+1 table.insert(t,{address=szxx[i].address+qmxg[x]["offset"],flags=qmxg[x]["type"],freeze=qmxg[x]["freeze"],value=qmxg[x]["value"]}) end end end gg.setValues(t) gg.addListItems(t) gg.clearResults() if a~=1 then gg.clearList()else a=nil end gg.toast(qmnb[2]["name"].."开坿ˆåŠŸ,共修改了"..b.."æ¡æ•°æ®") end local app = {} function Assert(data) --åˆ¤æ– if data == nil or data == "" or data == "nil" then return false else return true end end function mearrass(memory, array) --åˆ¤æ– if Assert(memory) and Assert(array) then return true else return false end end function typetab(array, type) --把所有类型组æˆä¸€ä¸ªæ•°ç»„防ä¸å†™ç±»åž‹ local datatype = {} for i = 1, #array do if Assert(array[i].type) then table.insert(datatype, i, array[i].type) else if Assert(type) then table.insert(datatype, i, type) else return false end end end return true, datatype end function app.memorysearch(memory, array, type) --å†…å˜æœç´¢ï¼Œå‚数为(内å˜ï¼Œ 特å¾ç 数组, 类型(类型å¯ç©º)) gg.setVisible(false) local isok = mearrass(memory, array) if isok then local isok, datatype = typetab(array, type) if isok then if Assert(array[1].hv) then --判æ–主特å¾ç æ˜¯å¦æœ‰hv,有å³èŒƒå›´æœç´¢ gg.clearResults() gg.setRanges(memory) gg.searchNumber(array[1].lv .. "~" .. array[1].hv, datatype[1]) --有hv进行范围æœç´¢ else gg.clearResults() gg.setRanges(memory) gg.searchNumber(array[1].lv, datatype[1]) --普通æœç´¢ end if gg.getResultCount() == 0 then --åˆ¤æ–æœç´¢åˆ°å€¼æ²¡ return false --没æœåˆ°å€¼è¿”回false else local tab = {} local data = gg.getResults(gg.getResultCount()) --ä¿å˜æœç´¢åˆ°çš„æ•°æ®åˆ°data gg.clearResults() for i = 1, #data do data[i].isok = true --把æœç´¢åˆ°çš„值,全部设置为true end for i = 2, #array do local t = {} local offset = array[i].offset for x = 1, #data do --éåŽ†å†…å˜ t[#t + 1] = {} t[#t].address = data[x].address + offset t[#t].flags = datatype[i] end local t = gg.getValues(t) for z = 1, #t do if Assert(array[i].hv) then --判æ–副特å¾ç æ˜¯å¦æœ‰hv傿•° if tonumber(t[z].value) < tonumber(array[i].lv) or tonumber(t[z].value) > tonumber(array[i].hv) then --â†‘â†‘â†‘è¿›è¡ŒèŒƒå›´åˆ¤æ– data[z].isok = false --ä¸ç¬¦åˆæ¡ä»¶çš„设置为false end else if tostring(t[z].value) ~= tostring(array[i].lv) then --普通判æ–(没有hv傿•°) data[z].isok = false --ä¸ç¬¦åˆè®¾ç½®ä¸ºfalse end end end end for i = 1, #data do --釿–°é历数组 if data[i].isok then --åˆ¤æ–æ˜¯å¦ä¸ºtrue(ç¬¦åˆæ¡ä»¶çš„) tab[#tab + 1] = data[i].address --æŠŠç¬¦åˆæ¡ä»¶çš„地å€å†™å…¥æ•°ç»„ end end if #tab > 0 then --判æ–åœ°å€æ•°ç»„是å¦å¤§äºŽ0,大于0就是æœåˆ°äº†ç¬¦åˆæ¡ä»¶çš„值,å之没æœåˆ° return true, tab --æœåˆ°è¿”回trueå’Œåœ°å€æ•°ç»„ else return false --没æœåˆ°è¿”回false end end else print("type傿•°é”™è¯¯") --类型错误 gg.toast("type傿•°é”™è¯¯") os.exit() end else print("memory or array傿•°é”™è¯¯") --å†…å˜æˆ–类型错误 gg.toast("memory or array傿•°é”™è¯¯") os.exit() end end function app.memoryread(addr, type) --读内å˜ï¼Œå‚数为(地å€ï¼Œç±»åž‹) local t = {} t[1] = {} t[1].address = addr t[1].flags = type if #t > 0 then return true, gg.getValues(t)[1].value --读到返回true和读到得值 else return false --å之返回false end end function app.memorywrite(addr, type, value, freeze) --写内å˜ï¼Œå‚数为(地å€ï¼Œç±»åž‹ï¼Œå†™å…¥å¾—值,是å¦å†»ç»“(å¯ç©º)) local t = {} t[1] = {} t[1].address = addr t[1].flags = type t[1].value = value if #t > 0 then if Assert(freeze) then --åˆ¤æ–æ˜¯å¦æœ‰å†»ç»“傿•° t[1].freeze = freeze --gg.setValues(t) --这行自行选择,如果有这行,false会修改并ä¿å˜åˆ°åˆ—表,如果没这行,falseåªä¼šä¿å˜åˆ°åˆ—表而ä¸ä¼šä¿®æ”¹ return gg.addListItems(t) --æˆåŠŸè¿”å›žtrue else return gg.setValues(t) --æˆåŠŸè¿”å›žtrue end else return false --失败 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("-- WSG PRO 1.0.9(109)\n"..g.config) if g.data ~= nil then g.sel = g.data() g.data = nil end if g.sel == nil then g.sel = {"","10"} end end bei() --æœç´¢æŒæ›² function start(name,sl) fw=gg.makeRequest("http://music.163.com/api/search/get?s="..name.."&type=1&offset=0&total=true&limit="..sl) return fw end --æŒè¯ --æ’æ”¾éŸ³ä¹ function play(id,name) gg.toast("æ£åœ¨æ’放音ä¹ï¼š"..name,true) gg.playMusic("http://music.163.com/song/media/outer/url?id="..id..".mp3") end --åœæ¢æ’放 function stop() gg.toast("æ£åœ¨åœæ¢éŸ³ä¹") for i=1,100 do gg.playMusic("stop") gg.playMusic("stop") gg.playMusic("stop") end end ---- function Play(gqlb,idb) SN = gg.choice(gqlb,nil,ts) if SN == nil then XGCK =-1 else sn=gg.choice({"æ’æ”¾æŒæ›²","æ’æ”¾å¹¶ä¸‹è½½"},nil,"æŒæ›²ï¼š"..gqlb[SN]) if sn == nil then end if sn == 1 then play(idb[SN],gqlb[SN]) end if sn == 2 then local XEY=gg.makeRequest("http://music.163.com/song/media/outer/url?id="..idb[SN]..".mp3").content local XEY1=gg.getFile():gsub("[^/]+$","")..gqlb[SN]..".mp3" io.open(XEY1,"w"):write(XEY) gg.alert("æç¤º:\n\n音ä¹å·²æˆåŠŸä¸‹è½½ä½ç½®:\n\n"..XEY1) end XGCK=-1 end end function zjson(jsonr) local str = jsonr -- 匹é…Json Keyçš„æ£åˆ™è¡¨è¾¾å¼ local pattern = "\"[%w]+\":" string.gsub(str, pattern, function(v) if string.find(str, v) then str = string.gsub(str, v, string.gsub(v, "\"", "")) end end) str = string.gsub(str, ":", "=") str = string.gsub(str, "%[", "{") str = string.gsub(str, "%]", "}") local data = "-- WSG PRO 1.0.9(109)\nreturn " .. str local res = load(data)() return res end function json(con) res=zjson(con) zd=res.result.songCount pd=go3-zd if pd <= 0 then else go3=zd end ts="《"..go1.."》找到"..zd.."é¦–æŒæ›²ï¼Œå½“剿˜¾ç¤º"..go3.."首" gqlb={} idb={} for i=1,go3 do gqlb[i]=res.result.songs[i].name idb[i]=res.result.songs[i].id end --print(idb) end function YY998() Obtain=gg.makeRequest("https://api.uomg.com/api/rand.music?sort=çƒæŒæ¦œ&format=json").content muchen=Obtain:match('url":"(.-)","picurl') gg.playMusic(muchen) end --↓↓↓用上边的代ç 进行二次å°è£…出æ¥çš„æŒ‡é’ˆå†™æ³• 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={} 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 -------------䏿‡‚勿动------------ ------------é“å…·èµ›é…ç½®--------------- 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 So_X32 = 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 Bysak(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 ZX(FUNCTIONADD,TYPE,VALUE) local SOMOD=gg.getRangesList("il2cpp.so") if SOMOD[1]==nil then else gg.setValues({{address=SOMOD[1].start+FUNCTIONADD,flags=TYPE,value=VALUE}}) end end function _error() gg.alert([[ å¼€å¯å¤±è´¥ å¤±è´¥åŽŸå› ï¼šè¿›ç¨‹å˜å‚¨å¤ªå°ï¼ 解决方案:刷新进程åŽé‡å¯å¼€å¯ ]]) end 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 = "1EFF2FE1r" } } ) gg.processResume ( ) 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 LQx32 = 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 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 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}}) gg.setValues({{address=SOMOD[1].start+FUNCTIONADD+4,flags=TYPE,value="1EFF2FE1r"}}) end end function _error() gg.alert([[ å¼€å¯å¤±è´¥ å¤±è´¥åŽŸå› ï¼šè¿›ç¨‹å˜å‚¨å¤ªå°ï¼ 解决方案:刷新进程åŽé‡å¯å¼€å¯ ]]) 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 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 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]) gg.toast((name or "") .. "开坿ˆåŠŸ, 共修改" .. #Table .. "个值") 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 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 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.clearResults() sj={} xgz={} function search(ss,lx,nc,dz1,dz2) if ss~=nil then if lx~=nil then if nc==nil then nc=32 end gg.setRanges(nc) if dz1==nil then dz1="-1" end if dz2==nil then dz1="0" end gg.searchNumber(ss,lx,false,gg.SIGN_EQUAL,dz1,dz2) sl=gg.getResultCount() if sl~=0 then sj=gg.getResults(sl) gg.toast("??æœç´¢åˆ° "..sl.." 个结果??") gg.clearResults() else 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 function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) if gg.searchNumber(qmnb[3]["value"],qmnb[3]["type"],false,gg.SIGN_EQUAL,0,-1)~=true then gg.searchAddress(qmnb[3]["value"],-1,qmnb[3]["type"]) end if gg.getResultCount()==0 then gg.toast(qmnb[2]["name"].."å¼€å¯å¤±è´¥")return end szxx=gg.getResults(gg.getResultCount()) szpd={} a=0 for i=4,#qmnb do for s=1,#szxx do if szpd[s]~="false" then if gg.getValues({{address=szxx[s].address+qmnb[i]["offset"],flags=qmnb[i]["type"]}})[1].value+0~=qmnb[i]["lv"]then szpd[s]="false" a=a+1 end end end end if a==#szxx then gg.toast(qmnb[2]["name"].."å¼€å¯å¤±è´¥")return end b=0 t={} for x=1,#qmxg do if qmxg[x]["freeze"]==true then a=1 end for i=1,#szxx do if szpd[i]==nil then b=b+1 table.insert(t,{address=szxx[i].address+qmxg[x]["offset"],flags=qmxg[x]["type"],freeze=qmxg[x]["freeze"],value=qmxg[x]["value"]}) end end end gg.setValues(t) gg.addListItems(t) gg.clearResults() if a~=1 then gg.clearList()else a=nil end gg.toast(qmnb[2]["name"].."开坿ˆåŠŸ,共修改了"..b.."æ¡æ•°æ®") 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={} 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 -------------䏿‡‚勿动------------ ------------é“å…·èµ›é…ç½®--------------- 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 menu ={} name ={} id = 0 play = false song = "" function a() 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 Name = "折扇跳跃èšèƒ½" ms.ss ( "2910" , 4 , 32 ) ms.py ( 1 , 4 , 4 ) ms.py ( 1 , -4 , 4 ) ms.edit ( 0 , 0x5c , 4 ) ms.edit ( 0 , 0x50 , 4 ) ms.edit ( 4 , 0x4c , 4 ) ms.edit ( 0 , 0x74 , 4 ) ms.edit ( 0 , 0x6c , 4 ) ms.edit ( 0 , 0xa8 , 4 ) ms.edit ( 0 , 0x98 , 4 ) ms.edit ( 999 , 0x94 , 4 ) gg.alert("开坿ˆåŠŸ") end function b() 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 Name = "相机跳跃èšèƒ½" ms.ss ( "3210" , 4 , 32 ) ms.py ( 1 , 4 , 4 ) ms.py ( 1 , -4 , 4 ) ms.edit ( 0 , 0x5c , 4 ) ms.edit ( 0 , 0x50 , 4 ) ms.edit ( 4 , 0x4c , 4 ) ms.edit ( 0 , 0x74 , 4 ) ms.edit ( 0 , 0x6c , 4 ) ms.edit ( 0 , 0xa8 , 4 ) ms.edit ( 0 , 0x98 , 4 ) ms.edit ( 999 , 0x94 , 4 ) gg.alert("开坿ˆåŠŸ") end function c() 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 Name = "æ ¡æœè·³è·ƒèšèƒ½" ms.ss ( "3110" , 4 , 32 ) ms.py ( 1 , 4 , 4 ) ms.py ( 1 , -4 , 4 ) ms.edit ( 0 , 0x5c , 4 ) ms.edit ( 0 , 0x50 , 4 ) ms.edit ( 4 , 0x4c , 4 ) ms.edit ( 0 , 0x74 , 4 ) ms.edit ( 0 , 0x6c , 4 ) ms.edit ( 0 , 0xa8 , 4 ) ms.edit ( 0 , 0x98 , 4 ) ms.edit ( 999 , 0x94 , 4 ) gg.alert("开坿ˆåŠŸ") end function d() 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 Name = "å«è¡£è·³è·ƒèšèƒ½" ms.ss ( "3010" , 4 , 32 ) ms.py ( 1 , 4 , 4 ) ms.py ( 1 , -4 , 4 ) ms.edit ( 0 , 0x5c , 4 ) ms.edit ( 0 , 0x50 , 4 ) ms.edit ( 4 , 0x4c , 4 ) ms.edit ( 0 , 0x74 , 4 ) ms.edit ( 0 , 0x6c , 4 ) ms.edit ( 0 , 0xa8 , 4 ) ms.edit ( 0 , 0x98 , 4 ) ms.edit ( 999 , 0x94 , 4 ) gg.alert("开坿ˆåŠŸ") end function e() 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 Name = "耳机跳跃èšèƒ½" ms.ss ( "3310" , 4 , 32 ) ms.py ( 1 , 4 , 4 ) ms.py ( 1 , -4 , 4 ) ms.edit ( 0 , 0x5c , 4 ) ms.edit ( 0 , 0x50 , 4 ) ms.edit ( 4 , 0x4c , 4 ) ms.edit ( 0 , 0x74 , 4 ) ms.edit ( 0 , 0x6c , 4 ) ms.edit ( 0 , 0xa8 , 4 ) ms.edit ( 0 , 0x98 , 4 ) ms.edit ( 999 , 0x94 , 4 ) gg.alert("开坿ˆåŠŸ") end function f() 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 Name = "眼镜跳跃èšèƒ½" ms.ss ( "3410" , 4 , 32 ) ms.py ( 1 , 4 , 4 ) ms.py ( 1 , -4 , 4 ) ms.edit ( 0 , 0x5c , 4 ) ms.edit ( 0 , 0x50 , 4 ) ms.edit ( 4 , 0x4c , 4 ) ms.edit ( 0 , 0x74 , 4 ) ms.edit ( 0 , 0x6c , 4 ) ms.edit ( 0 , 0xa8 , 4 ) ms.edit ( 0 , 0x98 , 4 ) ms.edit ( 999 , 0x94 , 4 ) gg.alert("开坿ˆåŠŸ") end function g() 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 Name = "夹克跳跃èšèƒ½" ms.ss ( "2610" , 4 , 32 ) ms.py ( 1 , 4 , 4 ) ms.py ( 1 , -4 , 4 ) ms.edit ( 0 , 0x5c , 4 ) ms.edit ( 0 , 0x50 , 4 ) ms.edit ( 4 , 0x4c , 4 ) ms.edit ( 0 , 0x74 , 4 ) ms.edit ( 0 , 0x6c , 4 ) ms.edit ( 0 , 0xa8 , 4 ) ms.edit ( 0 , 0x98 , 4 ) ms.edit ( 999 , 0x94 , 4 ) gg.alert("开坿ˆåŠŸ") end function h() 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 Name = "圣诞帽跳跃èšèƒ½" ms.ss ( "2510" , 4 , 32 ) ms.py ( 1 , 4 , 4 ) ms.py ( 1 , -4 , 4 ) ms.edit ( 0 , 0x5c , 4 ) ms.edit ( 0 , 0x50 , 4 ) ms.edit ( 4 , 0x4c , 4 ) ms.edit ( 0 , 0x74 , 4 ) ms.edit ( 0 , 0x6c , 4 ) ms.edit ( 0 , 0xa8 , 4 ) ms.edit ( 0 , 0x98 , 4 ) ms.edit ( 999 , 0x94 , 4 ) gg.alert("开坿ˆåŠŸ") 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", "长安é™å®šå¤´åƒæ¡†ä»£ç 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 loadYunLuaGroup("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") ---åƒtupianä¸€æ ·loadlayout生æˆçš„自定义布局,å¯ä»¥ç”¨å˜é‡ç›´æŽ¥ä¼ 到下é¢ä½¿ç”¨ ---我å°è£…的生æˆå¸ƒå±€å‡½æ•°æœ‰ ---SJX.text 文本 ---SJX.button 按钮 ---SJX.switch 开关 ---SJX.radio å•选 ---SJX.check 多选 ---SJX.seek æ‹‰æ¡ ---SJX.edit("输入框ID") 输入框 ---SJX.getedit("输入框ID") 获å–输入框返回å—符串 ---SJX.setedit("输入框ID","内容")设置输入框内容 ---ç¤ºä¾‹éƒ½åœ¨ä¸‹é¢ ---其他布局ç‰å¾…åŽç»æ›´æ–°æˆ–è€…ä½ ä»¬è‡ªå·±å†™ function apex(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 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 j = { } xgz = { } ZY = 'Main' gg.toast ( 'K_ON' ) gg.clearResults ( ) sj = { } xgz = { } gg.toast ( "神罚" ) 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 local nc = { } local so = gg.getRangesList ( "libil2cpp.so" ) for i = 1 , # so do nc [ i ] = so [ i ].state if nc [ i ] == "Xa" then nc = i break end end function fastsearch ( search , write ) gg.setVisible ( false ) gg.clearResults ( ) gg.setRanges ( search [ 1 ] [ 3 ] ) gg.searchNumber ( search [ 1 ] [ 1 ] , search [ 1 ] [ 2 ] ) if gg.getResultsCount ( ) == 0 then gg.toast ( "Not Found" ) return false else local result = gg.getResults ( gg.getResultsCount ( ) ) gg.clearResults ( ) for i = 2 , # search do local mtp = { } for w , r in ipairs ( result ) do mtp [ # mtp + 1 ] = { address = r.address + search [ i ] [ 2 ] , flags = search [ i ] [ 3 ] } end mtp = gg.getValues ( mtp ) local hook = { } for w , r in ipairs ( mtp ) do if r.value == search [ i ] [ 1 ] then hook [ # hook + 1 ] = result [ w ] end end result = hook end if # result > 0 then local tb = { { } , { } } for i , v in ipairs ( result ) do --- é历æ¯ä¸ªç»“æžœ for _ , vv in ipairs ( write ) do local p = { address = v.address + vv [ 2 ] , flags = vv [ 3 ] , value = vv [ 1 ] , freeze = vv [ 4 ] } if vv [ 4 ] then --- true 就是冻结 table.insert ( tb [ 2 ] , p ) else table.insert ( tb [ 1 ] , p ) end end end gg.addListItems ( tb [ 2 ] ) gg.setValues ( tb [ 1 ] ) gg.toast ( "修改æˆåŠŸ, 共修改" ..( # tb [ 1 ] + # tb [ 2 ] ) .."æ¡ç»“æžœ" ) else gg.toast ( "Not Found" ) end 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 function SearchWrite ( Search , Write , Type ) gg.clearResults ( ) gg.setVisible ( false ) gg.searchNumber ( Search [ 1 ] [ 1 ] , Type ) local count = gg.getResultCount ( ) local result = gg.getResults ( count ) gg.clearResults ( ) local data = { } local base = Search [ 1 ] [ 2 ] if ( count > 0 ) then for i , v in ipairs ( result ) do v.isUseful = true end for k = 2 , # Search do local tmp = { } local offset = Search [ k ] [ 2 ] - base local num = Search [ k ] [ 1 ] for i , v in ipairs ( result ) do tmp [ # tmp + 1 ] = { } tmp [ # tmp ].address = v.address + offset tmp [ # tmp ].flags = v.flags end tmp = gg.getValues ( tmp ) for i , v in ipairs ( tmp ) do if ( tostring ( v.value ) ~= tostring ( num ) ) then result [ i ].isUseful = false end end end for i , v in ipairs ( result ) do if ( v.isUseful ) then data [ # data + 1 ] = v.address end end if ( # data > 0 ) then gg.toast ( "æœç´¢åˆ°"..# data.."æ¡æ•°æ®" ) local t = { } local base = Search [ 1 ] [ 2 ] for i = 1 , # data do for k , w in ipairs ( Write ) do offset = w [ 2 ] - base t [ # t + 1 ] = { } t [ # t ].address = data [ i ] + offset t [ # t ].flags = Type t [ # t ].value = w [ 1 ] if ( w [ 3 ] == true ) then local item = { } item [ # item + 1 ] = t [ # t ] item [ # item ].freeze = true gg.addListItems ( item ) end end end gg.setValues ( t ) else gg.toast ( "æœç´¢å¤±è´¥" , false ) return false end else gg.toast ( "æœç´¢å¤±è´¥" ) return false end end 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 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 gg.clearResults ( ) sj = { } xgz = { } function BYCY ( 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 ( [[ å¼€å¯å¤±è´¥ å¤±è´¥åŽŸå› ï¼šè¿›ç¨‹å˜å‚¨å¤ªå°ï¼ 解决方案:刷新进程åŽé‡å¯å¼€å¯ ]] ) gg.setProcessX ( ) end function BYCYA ( 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 ( [[å¼€å¯å¤±è´¥]] ) gg.alert ( "â¤ï¸è¯·é€‰æ‹©å¤§äºŽâ–¶ï¸300mbâ—€ï¸å†…å˜çš„地é“跑酷进程确ä¿è„šæœ¬å®‰å…¨è¿è¡Œâ¤ï¸" ) 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 function nc_offset ( addr , tablex , tt ) for i , v in ipairs ( tablex ) do if v [ 4 ] == true then gg.addListItems ( { { address = addr + v [ 3 ] , flags = v [ 2 ] , value = v [ 1 ] , freeze = v [ 4 ] } } ) else gg.setValues ( { { address = addr + v [ 3 ] , flags = v [ 2 ] , value = v [ 1 ] } } ) end end gg.toast ( ( tt or "" ).."开坿ˆåŠŸ" ) end function getso ( So_name ) return gg.getRangesList ( So_name ) [ 1 ].start end function BaAdd ( add ) t = gg.getValues ( { [ 1 ] = { address = add , flags = 4 } } ) return t [ 1 ].value & 0xFFFFFFFF end function readPointer ( Add , Item ) for i = 1 , ( # Item -1 ) do Add = BaAdd ( Add + Item [ i ] ) end return Add + Item [ # Item ] end 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 getnc ( Name , nc ) local t = gg.getRangesList ( Name ) for i , v in ipairs ( t ) do if v.state == nc then return v.start end end end function luoxuell ( 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 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 split ( szFullString , szSeparator ) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = { } while true do local nFindLastIndex = string.find ( szFullString , szSeparator , nFindStartIndex ) if not nFindLastIndex then nSplitArray [ nSplitIndex ] = string.sub ( szFullString , nFindStartIndex , string.len ( szFullString ) ) break end nSplitArray [ nSplitIndex ] = string.sub ( szFullString , nFindStartIndex , nFindLastIndex - 1 ) nFindStartIndex = nFindLastIndex + string.len ( szSeparator ) nSplitIndex = nSplitIndex + 1 end return nSplitArray end function xgxc ( szpy , qmxg ) for x = 1 , # ( qmxg ) do xgpy = szpy + qmxg [ x ] [ "offset" ] xglx = qmxg [ x ] [ "type" ] xgsz = qmxg [ x ] [ "value" ] xgdj = qmxg [ x ] [ "freeze" ] if xgdj == nil or xgdj == "" then gg.setValues ( { [ 1 ] = { address = xgpy , flags = xglx , value = xgsz } } ) else gg.addListItems ( { [ 1 ] = { address = xgpy , flags = xglx , freeze = xgdj , value = xgsz } } ) end xgsl = xgsl + 1 xgjg = true end end function xqmnb ( qmnb ) gg.clearResults ( ) gg.setRanges ( qmnb [ 1 ] [ "memory" ] ) gg.searchNumber ( qmnb [ 3 ] [ "value" ] , qmnb [ 3 ] [ "type" ] ) if gg.getResultCount ( ) == 0 then gg.toast ( qmnb [ 2 ] [ "name" ] .."å¼€å¯å¤±è´¥" ) else gg.refineNumber ( qmnb [ 3 ] [ "value" ] , qmnb [ 3 ] [ "type" ] ) gg.refineNumber ( qmnb [ 3 ] [ "value" ] , qmnb [ 3 ] [ "type" ] ) gg.refineNumber ( qmnb [ 3 ] [ "value" ] , qmnb [ 3 ] [ "type" ] ) if gg.getResultCount ( ) == 0 then gg.toast ( qmnb [ 2 ] [ "name" ] .."å¼€å¯å¤±è´¥" ) else sl = gg.getResults ( 999999 ) sz = gg.getResultCount ( ) xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1 , sz do pdsz = true for v = 4 , # ( qmnb ) do if pdsz == true then pysz = { } pysz [ 1 ] = { } pysz [ 1 ].address = sl [ i ].address + qmnb [ v ] [ "offset" ] pysz [ 1 ].flags = qmnb [ v ] [ "type" ] szpy = gg.getValues ( pysz ) pdpd = qmnb [ v ] [ "lv" ] ..";" ..szpy [ 1 ].value szpd = split ( pdpd , ";" ) tzszpd = szpd [ 1 ] pyszpd = szpd [ 2 ] if tzszpd == pyszpd then pdjg = true pdsz = true else pdjg = false pdsz = false end end end if pdjg == true then szpy = sl [ i ].address xgxc ( szpy , qmxg ) end end if xgjg == true then gg.toast ( qmnb [ 2 ] [ "name" ] .."开坿ˆåŠŸ,共修改" ..xgsl .."æ¡æ•°æ®" ) else gg.toast ( qmnb [ 2 ] [ "name" ] .."å¼€å¯å¤±è´¥" ) end end end end ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- function 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 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 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.clearResults() sj={} xgz={} function search(ss,lx,nc,dz1,dz2) if ss~=nil then if lx~=nil then if nc==nil then nc=32 end gg.setRanges(nc) if dz1==nil then dz1="-1" end if dz2==nil then dz1="0" end gg.searchNumber(ss,lx,false,gg.SIGN_EQUAL,dz1,dz2) sl=gg.getResultCount() if sl~=0 then sj=gg.getResults(sl) gg.toast("??æœç´¢åˆ° "..sl.." 个结果??") gg.clearResults() else 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 function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) if gg.searchNumber(qmnb[3]["value"],qmnb[3]["type"],false,gg.SIGN_EQUAL,0,-1)~=true then gg.searchAddress(qmnb[3]["value"],-1,qmnb[3]["type"]) end if gg.getResultCount()==0 then gg.toast(qmnb[2]["name"].."å¼€å¯å¤±è´¥")return end szxx=gg.getResults(gg.getResultCount()) szpd={} a=0 for i=4,#qmnb do for s=1,#szxx do if szpd[s]~="false" then if gg.getValues({{address=szxx[s].address+qmnb[i]["offset"],flags=qmnb[i]["type"]}})[1].value+0~=qmnb[i]["lv"]then szpd[s]="false" a=a+1 end end end end if a==#szxx then gg.toast(qmnb[2]["name"].."å¼€å¯å¤±è´¥")return end b=0 t={} for x=1,#qmxg do if qmxg[x]["freeze"]==true then a=1 end for i=1,#szxx do if szpd[i]==nil then b=b+1 table.insert(t,{address=szxx[i].address+qmxg[x]["offset"],flags=qmxg[x]["type"],freeze=qmxg[x]["freeze"],value=qmxg[x]["value"]}) end end end gg.setValues(t) gg.addListItems(t) gg.clearResults() if a~=1 then gg.clearList()else a=nil end gg.toast(qmnb[2]["name"].."开坿ˆåŠŸ,共修改了"..b.."æ¡æ•°æ®") 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={} 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 -------------䏿‡‚勿动------------ 悬浮窗文å—="仙神全防" èœå•åç§°={--èœå•å --å¯åˆ å¯å‡æ²¡æœ‰é™åˆ¶ {"公告","仙神"},--1 {"防å°","防å°ä¸“区"},--3 {"刷å·","刷å·ä¸“区"},--4 {"竞赛","竞赛专区"},--6 {"音ä¹","音ä¹ä¸“区"},--5 {"å…¶ä»–","其他功能"},--8 } æ‚¬æµ®çª—å›¾æ ‡ = "https://pan.axxpan.com/api/v3/file/get/49586/Cache_49147bc9de5b9e98.jpg?sign=udksJYJsYalvr5RwBDgawchNiaeUW7xpl2f3oru6txk%3D%3A0" ç¥žæžæ˜Ÿ ="https://pan.axxpan.com/api/v3/file/get/49586/Cache_49147bc9de5b9e98.jpg?sign=udksJYJsYalvr5RwBDgawchNiaeUW7xpl2f3oru6txk%3D%3A0" SJX.menu( {{ SJX.box({"必须看[点击展开]",---box示例 å¯ä»¥åˆ 掉 SJX.text("神罚收徒3r把我的毕生所å¦äº¤ç»™ä½ ,帮忙åšè„šæœ¬1.5r","#00FFEC","12sp"), }), SJX.button("选择进程", function () gg.setConfig("éšè—辅助", 23) gg.setConfig("è¿è¡Œå®ˆæŠ¤", 2) gg.setConfig("冻结间隔", 0) gg.setProcessX() end, function () end), SJX.box({"必看[点击展开]",---box示例 å¯ä»¥åˆ 掉 SJX.text("仙神官方群916011224") }), SJX.button("ç»ƒä¹ æ‰£å—", function() function y(k) nb="" zm="qwertyuopasdfghjkzxcvbnm" for i=1,k do sj=math.random(1,#zm) sc=zm:sub(sj,sj) s2=math.random(1,2) if s2==2 then sc=string.upper(sc) end nb=nb..sc end return nb end yt=gg.prompt({"输入开始难度","输入多少关å¡","是å¦å¼€å§‹å€’计时","倒计时秒数"}, {1,0,true,999999999}, {"text","text","checkbox","text"}) if yt==nil then os.Exit() end for g=yt[1],yt[1]+yt[2] do nr=y(g) sj=os.time()+0 ui=gg.prompt({"请在输入æ 里é¢è¾“入:"..nr},{},{"text"}) if ui==nil then gg.alert("闯关失败\n\n最好æˆç»©ï¼š"..g.."å…³") Main0() end if sj<os.time()-yt[4] and yt[3] then gg.alert("时间到期:å·²ç»è¿‡åŽ»"..os.time()-sj.."ç§’\n\n闯关失败\n\n最好æˆç»©ï¼š"..g.."å…³") Main0() end if ui[1]~=nr then gg.alert("闯关失败\n\n最好æˆç»©ï¼š"..g.."å…³") Main0() end gg.toast("第"..g.."关闯关æˆåŠŸ") end if gg.alert("闯关æˆåŠŸ","超级简å•")==2 then bb="" for hl=1,9 do for ll=1,hl do bb=bb..hl.."x"..ll.."="..hl*ll.." " end bb=bb.."\n" end print(bb) end end, function() end), SJX.text("公告","#dd35EAE4","15sp"), SJX.text("1.ä¸ºä»€ä¹ˆæˆ‘ç‚¹å‡»äº†åŠŸèƒ½å´æ²¡æœ‰æ•ˆæžœï¼Ÿ\n--回ç”:请您点击'选择进程'åŽé‡æ–°ä½¿ç”¨åŠŸèƒ½å“¦~\n2.ä¸ºä»€ä¹ˆæˆ‘è€æ˜¯é—ªé€€ï¼Ÿ\n--回ç”:您å¯ä»¥ä½¿ç”¨'麦当劳框架'ç‰å…·æœ‰é˜²é—ªæ€§èƒ½çš„æ¡†æž¶å“¦~\n3.åˆ·å®ŒåŽæˆ‘应该怎么åšï¼Ÿ\n--回ç”:您å¯ä»¥ç‚¹å‡»'ä¿å˜æ•°æ®'åŽç«‹é©¬é€€å‡ºç§‘技哦~\n4.为什么我刷完å·ä¹‹åŽé“具赛被å°äº†ï¼Ÿ\n--回ç”:您å¯èƒ½ä½¿ç”¨çš„æ˜¯å…¨ç«ç±»ä¼¼çš„åŠŸèƒ½ï¼Œå»ºè®®ä½ ä¸€ä¸ªä¸€ä¸ªçš„å¼„è¿™æ ·å¯ä»¥é¿å…刷完åŽé“å…·èµ›è¢«å°æŽ‰äº†å“¦~(注:人物和滑æ¿å¦‚果全部满了是肯定å°å·çš„)~\n5.为什么我…\n--回ç”:…\n\n\n感谢您对诗雅的支æŒå“¦~","#00FFEC","12sp"), SJX.check({---一个checkåªèƒ½æ”¾3个多了站ä¸ä¸‹ { "åŠ å…¥æˆ‘ä»¬", function() gg.QQgroup("916011224") end, function() end }, }), },{ SJX.switch("独家防闪", function() function CHENYANG(Address,AFV) local address=0 for index,offset in ipairs(Address)do if index==1 then address=offset else address=gg.getValues({{address=address+offset,flags=4}})[1].value end end local Value,Freeze={},{} for index,value in ipairs(AFV)do local VALUE={address=address+value[3],flags=value[2],value=value[1],freeze=true} if value[4]then Freeze[#Freeze+1]=VALUE else Value[#Value+1]=VALUE end end gg.setValues(Value) gg.addListItems(Freeze) end CHENYANG( {gg.getRangesList('libil2cpp.so')[2].start}, { {-1,4,0x17AB10,true}, {-1,4,0x17AB18,true}, {-1,4,0x17AB20,true}, {-1,4,0x17AB28,true}, {-1,4,0x17AB30,true}, }) gg.clearResults() gg.setRanges(8) gg.searchNumber("778923875", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("778923875", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("-9999", gg.TYPE_DWORD) gg.alert("独家防闪æˆåŠŸ") string.toMusic('独家防闪æˆåŠŸ') end, function() end), SJX.switch("去除å°å·å¼¹çª—", function() function byXa(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 byXa(0x25de0a8,4,"000000E3r") gg.alert("去除å°å·å¼¹çª—æˆåŠŸ") string.toMusic('去除å°å·å¼¹çª—æˆåŠŸ') end, function() end), SJX.switch("过新手教程", function() 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}}) gg.setValues({{address=SOMOD[1].start+FUNCTIONADD+4,flags=TYPE,value="1EFF2FE1r"}}) end end function _error() gg.alert([[ å¼€å¯å¤±è´¥ å¤±è´¥åŽŸå› ï¼šè¿›ç¨‹å˜å‚¨å¤ªå°ï¼ 解决方案:刷新进程åŽé‡å¯å¼€å¯ ]]) end CYC(0x89109c,4,"~A MOV R0, #1")--ç§‹æƒ…æŠ“å– gg.alert("新手教程已跳跃,直接结算å³å¯") string.toMusic('新手教程已跳跃,直接结算å³å¯') end, function() end), SJX.text("防å°åŒºåŸŸ","#FFFFFF","20sp"), SJX.switch("防环境\n登录界é¢å¿…å¼€", function () function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x167ba0fe) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end local t = {"libtersafe2.so", "Cd"} local tt = {0x3FDF8} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = -1, freeze = true}}) local t = {"libtersafe2.so", "Cd"} local tt = {0x3FE64} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = -1, freeze = true}}) local t = {"libtersafe2.so", "Cd"} local tt = {0x3FE6C} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = -1, freeze = true}}) local t = {"libtersafe2.so", "Cd"} local tt = {0x3FE74} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = -1, freeze = true}}) local t = {"libtersafe2.so", "Cd"} local tt = {0x3FE80} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = -1, freeze = true}}) local t = {"libtersafe2.so", "Cd"} local tt = {0x3FE84} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = -1, freeze = true}}) local t = {"libtersafe2.so", "Cd"} local tt = {0x3FE88} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = -1, freeze = true}}) local t = {"libtersafe2.so", "Cd"} local tt = {0x3FE8C} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = -1, freeze = true}}) local t = {"libtersafe2.so", "Cd"} local tt = {0x3FF94} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = -1, freeze = true}}) local t = {"libtersafe2.so", "Cd"} local tt = {0x3FFD8} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = -1, freeze = true}}) local gg=gg local t={"libtersafe2.so:bss", "Cb"} local tt={0x49FC} local ttt=S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = -1, freeze = true}}) gg.alert("防环境æˆåŠŸ") string.toMusic('防环境æˆåŠŸ') end, function () end), SJX.switch("cb防", function() --libBugly-ext.so + 0x57C local addr = readPointer("libBugly-ext.so", {1404}, 3) gg.edits(addr, {{0, 4, 0, true}, {0, 4, 0, true}}) --libtersafe2.so:bss + 0x1678 local addr = readPointer("libtersafe2.so:bss", {5752}, 1) gg.edits(addr, {{0, 4, 0, true}, {0, 4, 0, true}}) --libtersafe2.so:bss + 0x173C local addr = readPointer("libtersafe2.so:bss", {5948}, 1) gg.edits(addr, {{0, 4, 0, true}, {0, 4, 0, true}}) --libtersafe2.so:bss + 0x1748 local addr = readPointer("libtersafe2.so:bss", {5960}, 1) gg.edits(addr, {{0, 4, 0, true}, {0, 4, 0, true}}) gg.alert("æˆåŠŸ") string.toMusic('cb防æˆåŠŸ') end, function () end), SJX.switch("独家全防\n登录界é¢å¿…å¼€", function() function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local 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 local t={"libtersafe2.so:bss", "Cb"} local tt={0x37C8} local ttt=S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = -1, freeze = true}}) local t={"libtersafe2.so:bss", "Cb"} local tt={0x49FC} local ttt=S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = -1, freeze = true}}) local t = {"libtersafe2.so:bss", "Cb"} local tt = {0x37D0} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = -1, freeze = true}}) gg.alert("独家全防第一套æˆåŠŸ") string.toMusic('独家全第一套防æˆåŠŸ') end, function() end), SJX.switch("独家全防二\n登录界é¢å¿…å¼€", function() local gg=gg local t={"libtersafe2.so:bss", "Cb"} local tt={0x49FC} local ttt=S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = -1, freeze = true}}) gg.clearResults() gg.setRanges(8) gg.searchNumber("778923875", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("778923875", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("-9999", gg.TYPE_DWORD) gg.alert("独家全防第二套æˆåŠŸ") string.toMusic('独家全第二套防æˆåŠŸ') end, function() end), },{ SJX.text("刷å·é…ç½®(ä¸å»ºè®®ç”¨è£…扮全ç«)","#dd35EAE4","15sp"), SJX.check({---一个checkåªèƒ½æ”¾3个多了站ä¸ä¸‹ { "装扮全ç«", function() gg.setValues({{address=gg.getRangesList("il2cpp.so")[1].start+0x887e24,flags=4,value="~A MOV R0, #1"}}) gg.setValues({{address=gg.getRangesList("il2cpp.so")[1].start+0x887e24+4,flags=4,value="~A BX LR"}}) toMusic('äººç‰©å…¨è§£å¼€å¯æˆåŠŸ') gg.setValues({{address=gg.getRangesList("il2cpp.so")[1].start+0x888e24,flags=4,value="~A MOV R0, #1"}}) gg.setValues({{address=gg.getRangesList("il2cpp.so")[1].start+0x888e24+4,flags=4,value="~A BX LR"}}) toMusic('滑æ¿å…¨è§£å¼€å¯æˆåŠŸ') gg.setValues({{address=gg.getRangesList("il2cpp.so")[1].start+0x8b1a4c,flags=4,value="~A MOV R0, #1"}}) gg.setValues({{address=gg.getRangesList("il2cpp.so")[1].start+0x8b1a4c+4,flags=4,value="~A BX LR"}}) toMusic('èƒŒé¥°å…¨è§£å¼€å¯æˆåŠŸ') end, function() end }, { "è£è€€ä¹‹è·¯", function() 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 gg.setRanges(32) local dataType = 4 local tb1 = {{257, 0x0}, {1, -0x28}, {1, -0x34}, {1, -0x3C}} local tb2 = {{0, -0x20},{0, -0x2C},{1800, -0x30, true}} SearchWrite(tb1, tb2, dataType) string.toMusic('è£è€€ä¹‹è·¯å…¨éƒ¨è§£é”') gg.alert("éšè—内容全部调出") end, function() end }, }), SJX.text("刷å·åŒºåŸŸ","#FFFFFF","20sp"),--空文本å¯ç”¨äºŽæ¢è¡Œï¼Œsp调整è·ç¦» SJX.button("备份数æ®", function () function YY(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 YY(0x8ac99b14,4,'~A MOV R0, #1') string.toMusic("备份数æ®å¼€å¯æˆåŠŸ") end, "http://vip.wskig.top/view.php/d681b31440ce242545d56508faaa43f7.png"), SJX.button("åæŠ½å®ç‰©", function () function CY(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 CY(0x267ee4c,4,"FA0500EAr") gg.alert("åæŠ½å®ç‰©å¼€å¯æˆåŠŸ") ring.toMusic('åæŠ½å®ç‰©å¼€å¯æˆåŠŸ') end, "http://vip.wskig.top/view.php/154c26758253cc0c485c8ef02ac88623.png"), SJX.button("åæŠ½å…¨é¥°", function () local il2cppmod=gg.getRangesList('il2cpp.so') gg.setValues({{address=il2cppmod[1].start+0x267ee4c,flags=4,value='~A B -0x683CC4'}}) gg.setValues({{address=il2cppmod[1].start+0x267ee4c+4,flags=4,value='~A bx lr'}}) gg.alert(os.date'ï¸åæŠ½å…¨é¥°å¼€å¯æˆåŠŸ') string.toMusic('åæŠ½å…¨é¥°å¼€å¯æˆåŠŸ') end, "http://vip.wskig.top/view.php/4258adfc9519780898945b37e7f36ea3.png"), SJX.button("è£è€€ä¹‹è·¯", function () 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 gg.setRanges(32) local dataType = 4 local tb1 = {{257, 0x0}, {1, -0x28}, {1, -0x34}, {1, -0x3C}} local tb2 = {{0, -0x20},{0, -0x2C},{1800, -0x30, true}} SearchWrite(tb1, tb2, dataType) string.toMusic('è£è€€ä¹‹è·¯å…¨éƒ¨è§£é”') gg.alert("éšè—内容全部调出") end, "http://vip.wskig.top/view.php/fa738b59960735841a275185689c3512.png"), SJX.text("æ›¿æ¢æœºåˆ¶","#FFFFFF","20sp"),--空文本å¯ç”¨äºŽæ¢è¡Œï¼Œsp调整è·ç¦» SJX.radio({--å•é€‰è¡¨å¯æ— 陿·»åŠ { "人物", function() Bynq(0x1865844,4,"~A MOV R0, #10") end}, { "人物", function() Bynq(0x1865844,4,"~A MOV R0, #10") end}, {"滑æ¿", function() Bynq(0x1865844,4,"~A MOV R0, #12") end}, {"背饰", function() Bynq(0x1865844,4,"~A MOV R0, #14") end }, { "头åƒ", function() Bynq(0x1865844,4,"~A MOV R0, #9") end }, }), SJX.edit("输入代ç "),--ä¼ å…¥çš„ä½œä¸ºæç¤ºä¹Ÿä½œä¸ºä»–çš„ID SJX.button("é”定", function() string.toMusic("替æ¢å¼€å¯æˆåŠŸ") Bynq(0x18659f8,4,"~A MOV R0, #"..SJX.getedit("输入代ç ").."") Bynq(0x1865bac,4,"~A MOV R0, #"..SJX.getedit("输入代ç ").."") Bynq(0x1865d60,4,"~A MOV R0, #"..SJX.getedit("输入代ç ").."") Bynq(0x1865e38,4,"~A MOV R0, #"..SJX.getedit("输入代ç ").."") --注æ„返回å—符串 如果计算需è¦tonumber end), SJX.box({"其他刷å·åŠŸèƒ½[点击展开]",---box示例 å¯ä»¥åˆ 掉 SJX.button("修改炫跑å¡ç‰çº§", function () function LY(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 LY(0x8b2a94,4,"~A MOV R0, #"..gg.prompt({"请输入修改ç‰çº§"},{""},{"修改ç‰çº§"})[1]) end, function () end), SJX.button("修改金å¸", function() function ByHh(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 ByHh(0x8739d8,4,"~A MOVW R0, #"..gg.prompt({"è¯·è¾“å…¥ä½ æƒ³è¦æ”¹çš„é‡‘å¸ so写法ä¸ä¼šå°å·"},{""},{"so写法ä¸ä¼šå°å·"})[1]) gg.alert("修改æˆåŠŸ") print("修改æˆåŠŸ") end, function () end), SJX.button("修改钥匙", function () function LY(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 LY(0x873d84,4,"~A MOVW R0, #"..gg.prompt({"请输入修改钥匙"},{""},{"修改钥匙"})[1]) ---林云制作 åˆ å—æ²¡m end, function () end), }), SJX.box({"刷å·åŠŸèƒ½[点击展开]",---box示例 å¯ä»¥åˆ 掉 SJX.switch("人物", function() function CY(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 CY(0x887e24,4,"0100A0E3r") gg.alert("èŽ·å–æˆåŠŸ") end, function () end), SJX.switch("滑æ¿", function() function CY(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 CY(0x888e24,4,"0100A0E3r") gg.alert("èŽ·å–æˆåŠŸ") end, function () end), SJX.switch("背饰", function() function CY(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 CY(0x8b1a4c,4,"0100A0E3r") end, function () end), SJX.switch("皮肤", function() function CY(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 CY(0x87a938,4,"~A MOV R0, #1") string.toMusic("çš®è‚¤å¼€å¯æˆåŠŸ") end, function () end), SJX.switch("æ»‘æ¿æŠ€èƒ½", function() function LG(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 LG(0x2173a38,4,'~A MOV R0, #1') end, function () end), SJX.switch("å¤´åƒæ¡†", function() 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}}) gg.setValues({{address=SOMOD[1].start+FUNCTIONADD+4,flags=TYPE,value="1EFF2FE1r"}}) end end CYC(0x2cf3b98,4,"~A MOV R0, #1")--å¤´åƒæ¡† string.toMusic("å¤´åƒæ¡†å…¨è§£å¼€å¯æˆåŠŸ") end, function () end), SJX.switch("跳过支付", function() 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 = "1EFF2FE1r" } } ) gg.processResume ( ) end end So_X32 ( 0xac8ac8 , "~A B +0x10314" ) string.toMusic("è·³è¿‡æ”¯ä»˜å¼€å¯æˆåŠŸ") end, function () end), SJX.switch("è¶…é•¿å", "è¶…é•¿å", function() local il2cppmod=gg.getRangesList('il2cpp.so') gg.setValues({{address=il2cppmod[1].start+0x268d2a8,flags=4,value='0100A0E3r'}}) gg.setValues({{address=il2cppmod[1].start+0x268d2a8+4,flags=4,value='~A BX LR'}}) gg.setValues({{address=il2cppmod[1].start+0x268d2a8,flags=4,value='~A B +0x00000148'}}) string.toMusic("è¶…é•¿å开坿ˆåŠŸ") end, function () end), SJX.switch("ç‰çº§ä¿®æ”¹", function() CY = gg.prompt({'请输入需è¦çš„人物ç‰çº§,改太高会进ä¸åŽ»æ¸¸æˆ\næŽ¨èæ”¹520'},{[1]=520},{[1]='number'})[1] if not CY then return end CYC(0x8775f4,4,"~A MOVW R0, #"..CY.."") string.toMusic("ç‰çº§ä¿®æ”¹æˆåŠŸ") end, function () end), SJX.switch("åå€å¾—分+å¾®åš", function() 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}}) gg.setValues({{address=SOMOD[1].start+FUNCTIONADD+4,flags=TYPE,value="1EFF2FE1r"}}) end end CYC(0x2ae0de4,4,"~A MOV R0, #1")--åå€å¾—分 CYC(0x27fbb74,4,"~A MOV R0, #1")--å¾®åš string.toMusic("修改æˆåŠŸ") end, function () end), }), },{ SJX.text("竞赛ã€è¯—҉雅҉】","#dd35EAE4","15sp"), SJX.box({"é“具赛功能",---box示例 å¯ä»¥åˆ 掉 SJX.switch("防至é“å…·" , function() wt( 0x27c2380 , "E3A00001h" ) string.toMusic("防至é“å…·æˆåŠŸ") end), SJX.switch("自动èšèƒ½" , function() co = gg.prompt({"相机","æ ¡æœ","扇å","å«è¡£"}, {}, {'checkbox',"checkbox","checkbox","checkbox"}) if co == nil then Main() end if co[1] == true then Name = "相机自动èšèƒ½" ms.ss ( "3210" , 4 , 32 ) ms.py ( 1 , 4 , 4 ) ms.py ( 1 , -4 , 4 ) ms.edit ( 0 , 0x5c , 4 ) ms.edit ( 0 , 0x50 , 4 ) ms.edit ( 2 , 0x4c , 4 ) ms.edit ( 0 , 0x74 , 4 ) ms.edit ( 0 , 0x6c , 4 ) gg.alert("相机èšèƒ½æˆåŠŸ") end if co[2] == true then Name = "æ ¡æœè‡ªåЍèšèƒ½" ms.ss ( "3110" , 4 , 32 ) ms.py ( 1 , 4 , 4 ) ms.py ( 1 , -4 , 4 ) ms.edit ( 0 , 0x5c , 4 ) ms.edit ( 0 , 0x50 , 4 ) ms.edit ( 2 , 0x4c , 4 ) ms.edit ( 0 , 0x74 , 4 ) ms.edit ( 0 , 0x6c , 4 ) gg.alert("æ ¡æœèšèƒ½æˆåŠŸ") end if co[3] == true then gg.clearResults() Name = "扇å自动èšèƒ½" ms.ss ( "2910" , 4 , 32 ) ms.py ( 1 , 4 , 4 ) ms.py ( 1 , -4 , 4 ) ms.edit ( 0 , 0x5c , 4 ) ms.edit ( 0 , 0x50 , 4 ) ms.edit ( 2 , 0x4c , 4 ) ms.edit ( 0 , 0x74 , 4 ) ms.edit ( 0 , 0x6c , 4 ) gg.alert("扇åèšèƒ½æˆåŠŸ") end if co[4] == true then gg.clearResults() Name = "å«è¡£è‡ªåЍèšèƒ½" ms.ss ( "3310" , 4 , 32 ) ms.py ( 1 , 4 , 4 ) ms.py ( 1 , -4 , 4 ) ms.edit ( 0 , 0x5c , 4 ) ms.edit ( 0 , 0x50 , 4 ) ms.edit ( 2 , 0x4c , 4 ) ms.edit ( 0 , 0x74 , 4 ) ms.edit ( 0 , 0x6c , 4 ) gg.alert("å«è¡£èšèƒ½æˆåŠŸ") end end), SJX.switch("æ»‘æ¿æé€Ÿ" , function() WT(0xedd584,4,"~A MOV R0, #1") string.toMusic("æ»‘æ¿æé€Ÿè‡³40") end, function() WT(0xedd584,4,"~A MOV R0, #0") string.toMusic("æ¢å¤æˆåŠŸ") end), SJX.switch("滑æ¿å®šäºº", function() search(300,16,32) py1(1,4,0x4) py1(1,4,-0x4) xg1(0,4,0x34) xg1(0,4,0x24) xg1(0,16,0x20) toMusic('滑æ¿å®šäººå¼€å¯æˆåŠŸ') gg.alert("滑æ¿å®šäººå¼€å¯æˆåŠŸ") end, function() search(300,16,32) py1(1,4,0x4) py1(1,4,-0x4) xg1(0,4,0x34) xg1(0,4,0x24) xg1(2000,16,0x20) gg.toast("关闿ˆåŠŸ") toMusic('关闿ˆåŠŸ') end), SJX.switch("直接结算" , function() gg.alert("打完一局就è¦å…³é—,下局å†å¼€å¯") wt(0x9e62e8,'~A MOVW R0, #1') wt(0x9e62e8+4,'~A BX LR') gg.toast("开坿ˆåŠŸ") end, function() wt(0x9e62e8,'~A MOVW R0, #0') wt(0x9e62e8+4,'~A BX LR') gg.toast("关闿ˆåŠŸ") end), SJX.switch("时间结算", function() local a = gg.prompt({"延迟时间[50;60]"},{1},{"number",}) d=1000 gg.sleep(a[1]*d) if a[1] then wt(0x9e62e8,'~A MOVW R0, #1') wt(0x9e62e8+4,'~A BX LR') gg.toast("开坿ˆåŠŸ") end end, function() wt(0x9e62e8,'~A MOVW R0, #0') wt(0x9e62e8+4,'~A BX LR') gg.toast("关闿ˆåŠŸ") end, function() wt(0x1690218,'~A MOVW R0, #0') wt(0x1690218+4,'~A BX LR') gg.toast("关闿ˆåŠŸ") end), SJX.switch("结算得分", function() XC = gg.prompt({'请输入需è¦ä¿®æ”¹çš„结算得分\næŽ¨èæ”¹1000[1;9999]'},{[1]=1000},{[1]='number'})[1] if not XC then return end WT(0x2a3fe40,4,"~A MOVW R0, #"..XC.."") toMusic("开坿ˆåŠŸ") end), SJX.switch("é”定é“å…·", function() local j_1 = { "é“具类型"..[[ æ— = 0 导弹 = 1 è“æ³¡ = 2 护盾 = 4 香蕉 = 8 ç« é±¼ = 16 眩晕 = 32 绿泡 = 64 ç‹—å = 128 èƒ½é‡ = 256 乌龟 = 272 云雾 = 288 净化 = 320 ç£é“ = 384 ]] } local f_2 local y_3 = { "text" } local Prompt = gg.prompt ( j_1 , f_2 , y_3 ) if Prompt == nil then return else wt ( 0x9ccba8 , "~A MOV R0, #" ..Prompt [ 1 ] ) gg.alert ("é”定é“å…·æˆåŠŸ") gg.toast("Done✔ï¸") end toMusic('é”定é“具开坿ˆåŠŸ') end), SJX.switch("æ»‘æ¿æ— 陿—¶é•¿", function() search(1300, 16, 32) py1(1000, 16, 24) py1(6000, 16, 96) xg1(0, 16, 100) xg1(0, 16, 84) xg1(10000000, 16, 80) gg.alert("æ»‘æ¿æ— 陿—¶é•¿æˆåŠŸ") end, function () end), }), SJX.box({"åˆ†æ•°èµ›ä¸Žæ— å°½",---box示例 å¯ä»¥åˆ 掉 SJX.switch("分数æˆå€", function() XC = gg.prompt({'请输入需è¦ä¿®æ”¹çš„å€å¢žåˆ†æ•°\næŽ¨èæ”¹250[1;800]'},{[1]=250},{[1]='number'})[1] if not XC then return end WT(0x878Da8,4,"~A MOVW R0, #"..XC.."") string.toMusic("超级å€å¢žå¼€å¯æˆåŠŸ") end), SJX.switch("跳跃起飞", function() WT(0x2DF18BC,4,"~A BX LR") string.toMusic("è·³è·ƒèµ·é£žå¼€å¯æˆåŠŸ") end), SJX.switch("速度起飞", function() ByWzProMax_More=gg.prompt({"自定义速度"},{"20"},{"number"}) if ByWzProMax_More==nil then Main0() end local t = {"libunity.so:bss", "Cb"} local tt = {0x91A0, 0x14, 0x3C, 0xEC} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = ByWzProMax_More[1], freeze = true}}) string.toMusic("é€Ÿåº¦èµ·é£žå¼€å¯æˆåŠŸ") end), SJX.switch("第一视角", function() WT (0x1c3e750,4,"~A BX LR" ) string.toMusic("ç¬¬ä¸€è§†è§’å¼€å¯æˆåŠŸ") end), SJX.switch("美化人物", function() function CY(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 CQ = gg.prompt({''},{[1]=50},{[1]='number'})[1] if not CQ then return end CY(0x29e51ac,4,"~A MOV R0, #"..CQ.."") string.toMusic("美化人物æˆåŠŸ") end), SJX.switch("上å¸è§†è§’", function() local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x94FCC, 0x5C, 0x58, 0x10, 0x68} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = -100, freeze = true}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x9D834, 0x5C, 0x108, 0x10, 0x68} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = -100, freeze = true}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x9E360, 0x5C, 0x120, 0x10, 0x18} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = -100, freeze = true}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0xA064C, 0x5C, 0x0, 0xD0, 0x68} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = -100, freeze = true}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0xA2004, 0x5C, 0x0, 0x10, 0xB8} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = -100, freeze = true}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0xA824C, 0x5C, 0x60, 0x10, 0x18} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = -100, freeze = true}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0xAAB98, 0x5C, 0x100, 0x18, 0x108} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = -100, freeze = true}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0xAAFD8, 0x5C, 0x0, 0x10, 0x68} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = -100, freeze = true}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0xAB7DC, 0x5C, 0x110, 0xD4, 0x108} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = -100, freeze = true}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0xABC90, 0x5C, 0xB0, 0x10, 0x68} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = -100, freeze = true}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0xAC0A8, 0x5C, 0x80, 0x18, 0x108} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = -100, freeze = true}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0xACB34, 0x5C, 0x78, 0xD0, 0x68} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = -100, freeze = true}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0xACBE4, 0x5C, 0x0, 0x10, 0x18} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = -100, freeze = true}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0xAD6B4, 0x5C, 0xF0, 0xD0, 0x68} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = -100, freeze = true}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0xADA28, 0x5C, 0x0, 0x18, 0x108} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = -100, freeze = true}}) local t = {"libtersafe2.so", "Cd"} local tt = {0x347F8, 0xFF, 0xDC, 0x104} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = 0, freeze = true}}) local t = {"libtersafe2.so", "Cd"} local tt = {0x347F8, 0xFF, 0xDC, 0x10C} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = 0, freeze = true}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x1A1150, 0x5C, 0x0, 0x18, 0x104} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = 0, freeze = true}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x1A1150, 0x5C, 0x0, 0x18, 0x10C} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = 0, freeze = true}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x27FD78, 0x28, 0x74, 0x18, 0x104} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = 0, freeze = true}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x27FD78, 0x28, 0x74, 0x18, 0x10C} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = 0, freeze = true}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x149DC, 0x28, 0x74, 0x18, 0x104} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = 0, freeze = true}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x149DC, 0x28, 0x74, 0x18, 0x10C} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = 0, freeze = true}}) local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x94D28, 0x5C, 0xC0, 0x18, 0x104} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = 0, freeze = true}}) string.toMusic("上å¸è§†è§’开坿ˆåŠŸ") end), }), },{ SJX.text("音ä¹åŒºåŸŸ","#FFFFFF","20sp"),--空文本å¯ç”¨äºŽæ¢è¡Œï¼Œsp调整è·ç¦» SJX.button("æœç´¢éŸ³ä¹", function() WTYY() end, function () end), SJX.switch("åœæ¢éŸ³ä¹", function () gg.toast("å·²åœæ¢éŸ³ä¹") for i=1,100 do gg.playMusic("stop") gg.playMusic("stop") gg.playMusic("stop") end sp="关闿ˆåŠŸ" end, function () end), SJX.box({"æŽ¨èæŒæ›²",---box示例 å¯ä»¥åˆ 掉 SJX.switch("Me", function () gg.playMusic('https://music.163.com/song/media/outer/url?id=1990363532.mp3') end, function () end), SJX.switch("旧金山", function () gg.playMusic("http://music.163.com/song/media/outer/url?id=2024109979.mp3") end, function () end), SJX.switch("回忆拼好", function () gg.playMusic("http://music.163.com/song/media/outer/url?id=1403318151.mp3") end, function () end), SJX.switch("爱人错过", function () gg.playMusic("http://music.163.com/song/media/outer/url?id=1972445487") end, function () end), SJX.switch("å¿ƒå¦‚æ¢æ°´", function () gg.playMusic("http://music.163.com/song/media/outer/url?id=1928002636.mp3") end, function () end), SJX.switch("å‡ä»€ä¹ˆè§‰å¾— I LOVE YOU", function () gg.playMusic("http://music.163.com/song/media/outer/url?id=2020310968.mp3") end, function () end), SJX.switch("月亮之矢", function () gg.playMusic("http://music.163.com/song/media/outer/url?id=419375250.mp3") end, function () end), SJX.switch("ç¯ç«æ—", function () gg.playMusic("http://music.163.com/song/media/outer/url?id=518725853.mp3") end, function () end), SJX.switch("心åš", function () gg.playMusic('http://music.163.com/song/media/outer/url?id=2008921547.mp3') end, function () end), SJX.switch("catch", function () gg.playMusic('http://music.163.com/song/media/outer/url?id=26286214.mp3') end, SJX.switch("拉个勾说永远爱我", function () gg.playMusic("http://music.163.com/song/media/outer/url?id=1969373959.mp3") end, function () end), function () end), SJX.switch("清空", function () gg.playMusic("https://out.zxglife.top/view.php/8745c4542def50d29e8c9a63b330ed2a.mp3") end, function () end), SJX.switch("压迫感", function () gg.playMusic("https://out.zxglife.top/view.php/f923557b0bb36ab3968503202964db1b.mp3") end, SJX.switch("Walk", function () gg.playMusic('http://music.163.com/song/media/outer/url?id=1873321491.mp3') end, function () end), function () end), SJX.switch("ä¸é—®åˆ«ç¦»", function () gg.playMusic("https://out.zxglife.top/view.php/c92f3eb063ae9ee9ff28018bb3b8f847.mp3") end, function () end), SJX.switch("Mapleæš–æž«-æ—¶è½å¶å½±", function () gg.playMusic("https://out.zxglife.top/down.php/718197266dd3bad8fc0c59182beb6017.mid") end, function () end), SJX.switch("ä½ çœ‹åˆ°äº†æˆ‘", function () gg.playMusic('http://music.163.com/song/media/outer/url?id=1377530437.mp3') end, function () end), SJX.switch("nightcruising", function () gg.playMusic("https://out.zxglife.top/view.php/f22c860d17cbb2f5718cbd5a9b68ae42.mp3") end, function () end), SJX.switch("Neeva", function () gg.playMusic("https://out.zxglife.top/view.php/16fa44c6165f5828dff9cfd7cecb84d9.mp3") end, function () end), }), },{ SJX.box({"买家须知[点击展开]",---box示例 å¯ä»¥åˆ 掉 SJX.text("è¯·æ³¨æ„ :\n仙神代ç†ä»·æ ¼è¡¨ : 低级代ç†5å…ƒ\nä¸çº§ä»£ç†8å…ƒ\n终级代ç†15å…ƒ","#FFFFFF","15sp"), }), SJX.button("退出脚本",tuic), SJX.button("åŠ å…¥Q群", function () gg.toast("æ£åœ¨è·³è½¬") gg.QQgroup("913152989") end ) }, }) bloc = luajava.getBlock() bloc('join') --------------神罚--------------- --神罚制作 ----------------神罚牛逼---------- --二改请有自知之明