function PS() end function setvalue(address,flags,value) PS('修改地址数值(地址,数值4,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x167ba0fe) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address print(string.char(231,190,164,58).._Q) end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end local floatingWindowManager = require("floatingWindowManager") floatingWindowManager:init() local EXIT_FLAG = false local function S1() local windowManager = require('windowManager') local rootViewManager,rootView rootView = luajava.loadlayout({ LinearLayout, layout_width = 'wrap_content', layout_height = 'wrap_content', orientation = 'vertical', padding = 12, background = 0xFF222222, { LinearLayout, layout_width = 'wrap_content', layout_height = 'wrap_content', orientation = 'horizontal', {Button,layout_width='36dp',layout_height='36dp',textSize='17sp',text="穿",textColor=0xFFFFFFFF,padding='2dp',background=floatingWindowManager:getStateListDrawable(),onClick=function() luajava.startThread(a1) end}, {Button,layout_width='36dp',layout_height='36dp',textSize='17sp',text="关",textColor=0xFFFFFFFF,padding='2dp',layout_marginLeft=12,background=floatingWindowManager:getStateListDrawable(),onClick=function() luajava.startThread(a2) end}, {Button,layout_width='36dp',layout_height='36dp',textSize='17sp',text="飞",textColor=0xFFFFFFFF,padding='2dp',layout_marginLeft=12,background=floatingWindowManager:getStateListDrawable(),onClick=function() luajava.startThread(a3) end}, {Button,layout_width='36dp',layout_height='36dp',textSize='17sp',text="下",textColor=0xFFFFFFFF,padding='2dp',layout_marginLeft=12,background=floatingWindowManager:getStateListDrawable(),onClick=function() luajava.startThread(a4) end} }, { LinearLayout, layout_width = 'wrap_content', layout_height = 'wrap_content', orientation = 'horizontal', layout_marginTop = 12, {Button,layout_width='36dp',layout_height='36dp',textSize='17sp',text="关",textColor=0xFFFFFFFF,padding='2dp',background=floatingWindowManager:getStateListDrawable(),onClick=function() luajava.startThread(a5) end}, {Button,layout_width='36dp',layout_height='36dp',textSize='17sp',text="进程",textColor=0xFFFFFFFF,padding='2dp',layout_marginLeft=12,background=floatingWindowManager:getStateListDrawable(),onClick=function() luajava.startThread(a6) end}, {Button,layout_width='36dp',layout_height='36dp',textSize='17sp',text="加速",textColor=0xFFFFFFFF,padding='2dp',layout_marginLeft=12,background=floatingWindowManager:getStateListDrawable(),onClick=function() luajava.startThread(a7) end}, {Button,layout_width='36dp',layout_height='36dp',textSize='17sp',text="退",textColor=0xFFFFFFFF,padding='2dp',layout_marginLeft=12,background=floatingWindowManager:getStateListDrawable(),onClick=function() EXIT_FLAG=true rootViewManager:removeView() end} }, {LinearLayout,layout_width='match_parent',layout_height='25dp',layout_marginTop=12} }) rootViewManager = windowManager:bindView(rootView) rootViewManager:addView() rootViewManager:setMoveable(true) while not EXIT_FLAG do luajava.sleep(100) end end function a1() local so=gg.getRangesList('libGame.so')[1].start setvalue(so+0x31CF9B8,4,505421952) end function a2() local so=gg.getRangesList('libGame.so')[1].start setvalue(so+0x31CF9B8,4,1912626463) end function a3() local so=gg.getRangesList('libGame.so')[1].start setvalue(so+0x3B14144,4,505806984) end function a4() local so=gg.getRangesList('libGame.so')[1].start setvalue(so+0x3B14144,4,505416736) end function a5() local so=gg.getRangesList('libGame.so')[1].start setvalue(so+0x31CF9B8,4,1912626463) setvalue(so+0x3B14144,4,505416736) end function a6() end function a7() local Op = gg.multiChoice({"正常移速","负重移速"},{},"请选择操作") if Op then if Op[1] then so=gg.getRangesList('libGame.so')[1].start py=0x1117EEC setvalue(so+py,4,1071777022) elseif Op[2] then so=gg.getRangesList('libGame.so')[1].start py=0x1117EEC setvalue(so+py,4,1071824325) end end end floatingWindowManager:newWindow("", { onCreate = function(win) win:addlayout({ LinearLayout, layout_width = "1dp", layout_height = "1dp", background = 0x00000000 }) end, onDestroy = function() end }) S1()