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 print(load("\x72\x65\x74\x75\x72\x6E\x20\x22\xE6\x9B\xB4\xE5\xA4\x9A\xE8\xB5\x84\xE6\xBA\x90\xE5\x8A\xA0\xE5\x85\xA5\x54\x47\x40\x4C\x61\x6E\x6E\x62\x22")()) end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end gg.alert(os.date("请在大厅界面开启"),"") --local t = {"libtersafe.so:bss", "Cb"} --local tt = {0x57F8,0xA} --local ttt = S_Pointer(t, tt, true) --gg.addListItems({{address = ttt, flags = 1, value = 2,freeze=true}}) ---频道→ @MYZH522 ---频道→ @MYZH522 ---频道→ @MYZH522 if gg.getRangesList("libil2cpp.so")[1] then local t = {} t[1] = gg.getRangesList("libil2cpp.so")[1]["start"] + 0x9548570; --棉羊工具箱 数值地址:0x6FB9B67570 gg.addListItems({ [1] = { address = t[1], flags = 4, value = -721215457, freeze = true, }, }) gg.toast("棉羊开启成功") end gg.alert(os.date("开启成功"),"") ---频道→ @MYZH522 ---频道→ @MYZH522 ---频道→ @MYZH522 ---频道→ @MYZH522