function JueQing(Search, Write,Neicun,Mingcg,Shuzhiliang) gg.clearResults() gg.setRanges(Neicun) gg.setVisible(false) gg.searchNumber(Search[1][1], Search[1][3]) 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 = Search[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(Mingcg.."搜索到"..#data.."条数据") local t = {} local base = Search[1][2] if Shuzhiliang == "" and Shuzhiliang > 0 and Shuzhiliang < #data then Shuzhiliang=Shuzhiliang else Shuzhiliang=#data end for i=1, Shuzhiliang do for k, w in ipairs(Write) 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(Mingcg.."已修改"..#t.."条数据") gg.addListItems(t) else gg.toast(Mingcg.."开启失败", false) return false end else gg.toast("搜索失败") return false end end function PS() end function setvalue(address,flags,value) PS('『WAHAB』؄OP. PRIVATE _FLASH') 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 function SH(Search,Modification) gg.clearResults() gg.searchNumber(Search[1][1],Search[1][2],false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Name..'『WAHAB』؄OP') return end local Result=gg.getResults(gg.getResultCount()) local sum=0 for i=2,#Search do for index=1,#Result do if gg.getValues({{address=Result[index].address+Search[i][3],flags=Search[i][2]}})[1].value~=Search[i][1]then Result[index].Usable=true sum=sum+1 end end end if sum==#Result then gg.toast(Name..'『WAHAB』؄OP') return end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in pairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value[3],flags=value[2],value=value[1],freeze=true} sum=sum+1 if value[4]then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end end end end gg.setValues(Data) gg.addListItems(Freeze) if Freeze==0 then gg.toast(Name..'『WAHAB』؄OP『WAHAB』؄OP'..sum..'『WAHAB』؄OP.') else gg.toast(Name..'『WAHAB』؄OP『WAHAB』؄OP'..sum..'『WAHAB』؄OP'..Freezes..'『WAHAB』؄OP.') 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"] gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) xgsl = xgsl + 1 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) xgjg = true end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "开启成功,共修改" .. xgsl .. "条数据") else gg.toast(qmnb[2]["name"] .. "开启成功") end end end end function Main() SN = gg.multiChoice({ "开启", "关闭", "退出", }, nil, "") if SN == nil then else if SN[1] == true then a() end if SN[2] == true then b() end if SN[3] == true then os.exit() end end XGCK = -1 end function a() so=gg.getRangesList('libUE4.so')[1].start py=0X267C928 setvalue(so+py,16,999)--WAHAB OP gg.toast(" FLASH... /n 🇨🇳ʙʏ !¡!_🔥__『秋季』؄OP🔥_!¡!⁩ ") local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EA3A8, 0x20, 0x2CC, 0x14F0} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 999}})--翻倍 local t = {"libUE4.so", "Cd"} local tt = {0x5C2A20, 0x20, 0x1C8, 0x3CC} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = -9999}})--小翻倍 local t = {"libUE4.so", "Cd"} local tt = {0x5C2A20, 0x24, 0x6C, 0x24} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1.40129846e-39}})--开枪防拉 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1E17CC, 0x87C, 0x18, 0x3D4} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 0.07}}) so=gg.getRangesList('libUE4.so')[1].start py=0XCADA50 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0XCADC2C setvalue(so+py,16,0)-- so=gg.getRangesList('libUE4.so')[1].start py=0XCADE2C setvalue(so+py,16,0)-- so=gg.getRangesList('libUE4.so')[1].start py=0XCADE80 setvalue(so+py,16,0)-- so=gg.getRangesList('libUE4.so')[1].start py=0XCAE20C setvalue(so+py,16,-9.90654263e27)-- so=gg.getRangesList('libUE4.so')[1].start py=0XCAE2A4 setvalue(so+py,16,0)-- so=gg.getRangesList('libUE4.so')[1].start py=0XCAFF20 setvalue(so+py,16,1.5)-- so=gg.getRangesList('libUE4.so')[1].start py=0XCB86D0 setvalue(so+py,16,6)----WAHAB OP gg.toast(" FLASH... /n 🇨🇳ʙʏ !¡!_🔥__🇵🇰_『秋季』؄OP🔥_!¡!⁩ ") so=gg.getRangesList('libUE4.so')[1].start py=0XCB8AFC setvalue(so+py,16,-3.83692305e21)-- so=gg.getRangesList('libUE4.so')[1].start py=0XCB8B34 setvalue(so+py,16,0)-- so=gg.getRangesList('libUE4.so')[1].start py=0X1250170 setvalue(so+py,16,0)-- so=gg.getRangesList('libUE4.so')[1].start py=0X12501F8 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X267C928 setvalue(so+py,16,999)-- so=gg.getRangesList('libUE4.so')[1].start py=0X26E20D8 setvalue(so+py,16,0)-- so=gg.getRangesList('libUE4.so')[1].start py=0X26E20DC setvalue(so+py,16,0)-- so=gg.getRangesList('libUE4.so')[1].start py=0X26F1700 setvalue(so+py,16,0)-- so=gg.getRangesList('libUE4.so')[1].start py=0X26FCA34 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X26FCA38 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X270FD5C setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X2728CA0 setvalue(so+py,16,0.00100000005) so=gg.getRangesList('libUE4.so')[1].start py=0X2C33484 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X2C3349C setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X2C33524 setvalue(so+py,16,9) so=gg.getRangesList('libUE4.so')[1].start py=0X2C33528 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X2D082A0 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X2D082A4 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py = 0X270878C gg.toast(" FLASH... /n 🇨🇳ʙʏ !¡!_🔥__『秋季』؄OP__🔥_!¡!⁩ ") setvalue(so+py,16,3)----WAHAB OP so=gg.getRangesList('libUE4.so')[1].start py=0X2705D24 gg.toast(" FLASH... /n 🇨🇳ʙʏ !¡!_🔥__『秋季』؄OP__🔥_!¡!⁩ ") setvalue(so+py,16,0)----WAHAB OP so=gg.getRangesList('libUE4.so')[1].start py=0XCDF648 gg.toast(" FLASH... /n 🇨🇳ʙʏ !¡!_🔥__『秋季』؄OP__🔥_!¡!⁩ ") setvalue(so+py,16,0)----WAHAB OP so=gg.getRangesList('libUE4.so')[1].start py=0XCB8A54 setvalue(so+py,16,-9.90654263e27) so=gg.getRangesList('libUE4.so')[1].start py=0X26FCA44 setvalue(so+py,16,0.285) so=gg.getRangesList('libUE4.so')[1].start py=0X2D0853C setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X2D08288 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X2D082A0 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X2D082A4 setvalue(so+py,16,0) gg.toast(" FLASH... /n 🇨🇳ʙʏ !¡!_🔥__『秋季』؄OP__🔥_!¡!⁩ ") end function b() so=gg.getRangesList('libUE4.so')[1].start py=0X267C928 setvalue(so+py,16,0) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EA3A8, 0x20, 0x2D8, 0x1558} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 88}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x2494A0, 0xB4, 0xD90, 0x19F4} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EA3A8, 0x20, 0x2CC, 0x310, 0x138} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 35}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EA3A8, 0x20, 0x2CC, 0x14F0} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1}}) local t = {"libUE4.so", "Cd"} local tt = {0x5C2A20, 0x20, 0x1C8, 0x3CC} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 0.0001}}) local t = {"libUE4.so", "Cd"} local tt = {0x5C2A20, 0x24, 0x6C, 0x24} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1.40129846e-41}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1E17CC, 0x87C, 0x18, 0x3D4} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 0.00005}}) so=gg.getRangesList('libUE4.so')[1].start py=0XCADA50 setvalue(so+py,16,-1.33640717e28) so=gg.getRangesList('libUE4.so')[1].start py=0XCADC2C setvalue(so+py,16,-2.13605127e28)-- so=gg.getRangesList('libUE4.so')[1].start py=0XCADE2C setvalue(so+py,16,-3.74440972e28)-- so=gg.getRangesList('libUE4.so')[1].start py=0XCADE80 setvalue(so+py,16,-3.74440972e28)-- so=gg.getRangesList('libUE4.so')[1].start py=0XCAE20C setvalue(so+py,16,-9.90656152e27)-- so=gg.getRangesList('libUE4.so')[1].start py=0XCAE2A4 setvalue(so+py,16,-9.00722502e15)-- so=gg.getRangesList('libUE4.so')[1].start py=0XCAFF20 setvalue(so+py,16,0)-- so=gg.getRangesList('libUE4.so')[1].start py=0XCB86D0 setvalue(so+py,16,-1.3697734e28)-- so=gg.getRangesList('libUE4.so')[1].start py=0XCB8AFC setvalue(so+py,16,-3.83692277e21)-- so=gg.getRangesList('libUE4.so')[1].start py=0XCB8B34 setvalue(so+py,16,-2.02910561e20)-- so=gg.getRangesList('libUE4.so')[1].start py=0X1250170 setvalue(so+py,16,1477779456)-- so=gg.getRangesList('libUE4.so')[1].start py=0X12501F8 setvalue(so+py,16,1477779456) so=gg.getRangesList('libUE4.so')[1].start py=0X267C928 setvalue(so+py,16,0)-- so=gg.getRangesList('libUE4.so')[1].start py=0X26E20D8 setvalue(so+py,16,-3.86856262e25)-- so=gg.getRangesList('libUE4.so')[1].start py=0X26E20DC setvalue(so+py,16,-2.8323923e28)-- so=gg.getRangesList('libUE4.so')[1].start py=0X26F1700 setvalue(so+py,16,-3.74440972e28)-- so=gg.getRangesList('libUE4.so')[1].start py=0X26FCA34 setvalue(so+py,16,-6.15494476e27) so=gg.getRangesList('libUE4.so')[1].start py=0X26FCA38 setvalue(so+py,16,-2.53646207e30) so=gg.getRangesList('libUE4.so')[1].start py=0X270FD5C setvalue(so+py,16,-5.84304308e27) so=gg.getRangesList('libUE4.so')[1].start py=0X2728CA0 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X2C33484 setvalue(so+py,16,6.16304121e-33) so=gg.getRangesList('libUE4.so')[1].start py=0X2C3349C setvalue(so+py,16,2.64700415e-23) so=gg.getRangesList('libUE4.so')[1].start py=0X2C33524 setvalue(so+py,16,10.90734863281) so=gg.getRangesList('libUE4.so')[1].start py=0X2C33528 setvalue(so+py,16,-1.88909657e26) so=gg.getRangesList('libUE4.so')[1].start py=0X2D082A0 setvalue(so+py,16,-6.15262313e27) so=gg.getRangesList('libUE4.so')[1].start py=0X2D082A4 setvalue(so+py,16,-9.98393277e27) so=gg.getRangesList('libUE4.so')[1].start py = 0X270878C setvalue(so + py, 16,-1.86389771e-20) so=gg.getRangesList('libUE4.so')[1].start py=0X2705D24 setvalue(so+py,16,-2.78601489e28) so=gg.getRangesList('libUE4.so')[1].start py=0XCDF648 setvalue(so+py,16,-1.23824239e28) so=gg.getRangesList('libUE4.so')[1].start py=0XCB8A54 setvalue(so+py,16,-9.90656152e27) so=gg.getRangesList('libUE4.so')[1].start py=0X26FCA44 setvalue(so+py,16,9.99999997e-7) gg.toast(" FLASH_OFF... /n 🇨🇳ʙʏ !¡!_🔥__『看你母呢』؄OP__🔥_!¡!⁩ ") end while true do if gg.isVisible(true) then XGCK = 1 gg.setVisible(false) end gg.clearResults() if XGCK == 1 then Main() end end