function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x167ba0fe) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address print(string.char(231,190,164,58).._Q) end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end function PS() end function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function A1() local t = {"libunity.so:bss", "Cb"} local tt = {0x8df70,0x0,0x28,0x0,0xB8,0x1c8,0x20,0xb8,0x18,0x30,0x20,0x18,0x10,0xE00} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value = 2, freeze = true}}) end function A2() local t = {"libunity.so:bss", "Cb"} local tt = {0x8df70,0x0,0x28,0x0,0xB8,0x1c8,0x20,0xb8,0x18,0x30,0x20,0x18,0x10,0xE00} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value =1, freeze = true}}) end function Main() menu = gg.multiChoice({ "开加速", "关加速", "Exit", }, nil, os.date"加速") if menu == nil then else if menu[1] == true then A1() end if menu[2] == true then A2() end if menu[3] == true then kk() end end XGCK = -1 end function kk() os.exit()end while true do if gg.isVisible(true) then XGCK = 1 gg.setVisible(false)end gg.clearResults() if XGCK == 1 then Main()end end