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(0x1c00f400) 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 setvalue(address,flags,value) local tt = {} tt[1] = {} tt[1].address = address tt[1].flags = flags tt[1].value = value gg.setValues(tt) end

local t = {"libil2cpp.so:bss", "Cb"} local tt = {0x2DB20, 0xA0, 0xE0} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 165675026, freeze = true}})

local t = {"libtersafe.so:bss", "Cb"} local tt = {0x6110} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 2, freeze = true}})

local t = {"libtersafe.so:bss", "Cb"} local tt = {0x2698} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 2, freeze = true}}) gg.clearResults() gg.clearList() gg.alert("开启成功")

S_Pointer 函数:查找内存地址并修改值

原文地址: https://www.cveoy.top/t/topic/pZ3Z 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录