function setvalue(address,flags,value) local refinevalues={} refinevalues[1]={} refinevalues[1].address=address refinevalues[1].flags=flags refinevalues[1].value=value gg.setValues(refinevalues) end gg.setVisible(true);function Toxic(Range,Type,Search,Write) gg.clearResults() gg.setRanges(Range) gg.setVisible(false) gg.searchNumber(Search[1][1],Type) 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=v.flags 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("\n🔍Searched"..#data.."data\n🔰Start offset") local t={} local base=Search[1][2] for i =1,#data do for k,w in ipairs(Write)do offset=w[2]-base t[#t+1]={} t[#t].address=data[i]+offset t[#t].flags=Type t[#t].value=w[1] if(w[3]==true)then local item={} item[#item+1]=t[#t] item[#item].freeze=true gg.addListItems(item) end end end gg.setValues(t) gg.sleep(400) gg.toast("\n☣️"..Name.."༄ᵀᵉᵃᵐ 𝐓☯︎𝚇𝙸𝙲 シ︎"..#t.."data") else gg.toast("\n❌"..Name.."Failure❌") return false end else gg.toast("\n❌"..Name.."Failure❌") return false end end local time=os.clock() function readWrite(Search,Get,Type,Range,Name) gg["clearResults"]() gg["setRanges"](Range) gg["setVisible"](false) if Search[1][1]~=false then _G["gg"]["searchAddress"](Search[1][1],0xFFFFFFFF,Search[1][4] or Type,_G["gg"]["SIGN_EQUAL"],Search[1][5] or 1,Search[1][6] or -1) end gg["searchNumber"](Search[1][2],Search[1][4] or Type,false,_G["gg"]["SIGN_EQUAL"],Search[1][5] or 1,Search[1][6] or -1) local count=gg["getResultCount"]() local result=gg["getResults"](count) gg["clearResults"]() local data={} local base=Search[1][3] 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] or Type end tmp=gg["getValues"](tmp) for i,v in ipairs(tmp) do if v.flags==16 or v.flags==64 then values=tostring(v.value):sub(1,6) num=tostring(num):sub(1,6) else values=v.value end if tostring(values)~=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 local t,t_={},{} local base=Search[1][3] for i =1,#data do for k,w in ipairs(Get) do offset=w[2] - base if w[1]==false then t_[#t_+1]={} t_[#t_].address=data[i]+offset t_[#t_].flags=Type th_=(th_) and th_+1 or 1 else t[#t+1]={} t[#t].address=data[i]+offset t[#t].flags=w[3] or Type t[#t].value=w[1] tg_=(tg_) and tg_+1 or 1 if (w[4]==true) then local item={} item[#item+1]=t[#t] item[#item].freeze=w[4] gg["addListItems"](item) end end end end tg=(tg_) and "\n modify"..tg_.."data" or "" th=(th_) and "" or "" gg["setValues"](t) t_=gg["getValues"](t_) gg["loadResults"](t_) gg["toast"]("\n"..Name..tg) tg_,th_=nil,nil else gg["toast"]("Not searchable",false) return false end else gg["toast"]("Not searchable") return false end 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 gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);gg.setVisible(true);function HaoGe(Nc,Type,Search,Write) gg.clearResults() gg.setRanges(Nc) gg.setVisible(false) gg.searchNumber(Search[1][1],Type) 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=v.flags 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 local t={} local base=Search[1][2] for i =1,#data do for k,w in ipairs(Write)do offset=w[2]-base t[#t+1]={} t[#t].address=data[i]+offset t[#t].flags=Type t[#t].value=w[1] if(w[3]==true)then local item={} item[#item+1]=t[#t] item[#item].freeze=true gg.addListItems(item) end end end gg.setValues(t) else return false end else return false 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"] xgdj = qmxg[x]["freeze"] if xgdj == nil or xgdj == "" then gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) else gg.addListItems({[1] = {address = xgpy, flags = xglx, freeze = xgdj, value = xgsz}}) end xgsl = xgsl + 1 xgjg = true 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) end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "开启成功,一共修改" .. xgsl .. "条数据") else gg.toast(qmnb[2]["name"] .. "未搜索到数据,开启失败") end end end end function SearchWrite(Search, Write, Type) gg.clearResults() gg.setVisible(false) gg.searchNumber(Search[1][1], Type) 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 = v.flags 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 local t = {} local base = Search[1][2] for i =1, #data do for k, w in ipairs(Write) do offset = w[2] - base t[#t+1] = {} t[#t].address = data[i] + offset t[#t].flags = Type t[#t].value = w[1] if (w[3] == true) then local item = {} item[#item+1] = t[#t] item[#item].freeze = true gg.addListItems(item) end end end gg.setValues(t) gg.toast("开启成功,一共修改"..#t.."条数据") gg.addListItems(t) else gg.toast("未搜索到数据,开启失败", false) return false end else gg.toast("Not Found") return false end end function setvalue(name,offset,flags,value) address = gg.getRangesList(name)[1].start+offset local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function HOME() on = " ᴏɴ 🟢 " AS = gg.choice({ "sky fly on ", "sky fly off ", " 🚫 ᴇxɪᴛ "},nil," ") ----------------------------------------------------------------------------------------- if AS == nil then else if AS == 1 then A1() end if AS == 2 then A2() end if AS == 3 then Exit() end end ASHU = -1 end function A1() setvalue(gg.getRangesList('libUE4.so')[1].start+0x2C3BA14,16,"h 61 D9 08 41") setvalue(gg.getRangesList('libUE4.so')[1].start+0xCBCB00,16,"h 00 00 50 E3") setvalue(gg.getRangesList('libUE4.so')[1].start+0x2684E28,16,"h 00 00 20 40") setvalue(gg.getRangesList('libUE4.so')[1].start+0x2704F44,16,"h 9A 99 99 3E") setvalue(gg.getRangesList('libUE4.so')[1].start+0x2710C8C,16,"h 00 00 00 00") setvalue(gg.getRangesList('libUE4.so')[1].start+0x2C3B974,16,"h 00 00 00 00") setvalue(gg.getRangesList('libUE4.so')[1].start+0x2C3B98C,16,"h 00 00 00 00") setvalue(gg.getRangesList('libUE4.so')[1].start+0x2C3BA18,16,"h 00 00 00 00") setvalue(gg.getRangesList('libUE4.so')[1].start+0x2D107D0,16,"h 00 00 00 00") setvalue(gg.getRangesList('libUE4.so')[1].start+0x27B3A4,16,0) -- --DarkPhoenix setvalue(gg.getRangesList('libUE4.so')[1].start+0xCB3EE0,16,1.0) -- --DarkPhoenix setvalue(gg.getRangesList('libUE4.so')[1].start+0x3033B9C,16,0) -- --DarkPhoenix local t = {"libUE4.so", "Cd"} local tt = {0x5C2A00, 0x78, 0x68, 0x3C8} --DarkPhoenix local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1.79999995232}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8, 0x20, 0x2CC, 0x310, 0x13C} --DarkPhoenix local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 8000}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x2115D4, 0xA8, 0x30} --DarkPhoenix local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = -8000}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8, 0x20, 0x2CC, 0x310, 0x138} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 100}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x62EB8,0xA8,0x2DC,0x24} --DarkPhoenix local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 4, value = 10086886}}) local t = {"libUE4.so", "Cd"} local tt = {0x5C2A00, 0x78, 0x68, 0x3CC} --DarkPhoenix local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = -9999}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1E21EC, 0x87C, 0x18, 0x3D4} --DarkPhoenix local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = -9999}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1F090C, 0x82C, 0x6E0} --DarkPhoenix local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 62, freeze = true}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1F090C, 0x82C, 0x6E4} --DarkPhoenix local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 62, freeze = true}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x2CC,0x60} --DarkPhoenix local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 0.06}})--DarkPhoenix local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8, 0x20, 0x2D8, 0x1558} --DarkPhoenix local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 70}})--浮空 local t = {"libUE4.so:bss", "Cb"} local tt = {0x62EB8,0xA8,0x2DC,0x24} --DarkPhoenix local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 4, value = 10086110}})--去除开枪 gg.toast("开启成功") local t = {"libUE4.so:bss", "Cb"} --DarkPheonix local tt = {0x1EADC8,0x20,0x320,0x3D8} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 999999}})--DarkPhoenix local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8, 0x20, 0x2CC, 0x14F0} --DarkPhoenix local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 24}})--DarkPhoenix gg.setRanges(32) Name='phoenix' local tb1= { {2048.0,16,0}, {300.0,16,8}, {0.05000000074505806,16,16}, {2.0,16,20}, } local tb2= { {99999,16,16}, } SH(tb1,tb2,dataType) gg.toast("on ") --]] end function A2() setvalue(gg.getRangesList('libUE4.so')[1].start+0x2C3BA14,16,"h 80 84 2E 41") setvalue(gg.getRangesList('libUE4.so')[1].start+0xCBCB00,16,"h 01 00 50 E3") setvalue(gg.getRangesList('libUE4.so')[1].start+0x2684E28,16,"h 4B 4A EA A9") setvalue(gg.getRangesList('libUE4.so')[1].start+0x2704F44,16,"h 5A B0 BB A4") setvalue(gg.getRangesList('libUE4.so')[1].start+0x2710C8C,16,"h 48 0A B0 9E") setvalue(gg.getRangesList('libUE4.so')[1].start+0x2C3B974,16,"h 59 00 00 0A") setvalue(gg.getRangesList('libUE4.so')[1].start+0x2C3B98C,16,"h 53 00 00 1A") setvalue(gg.getRangesList('libUE4.so')[1].start+0x2C3BA18,16,"h 2D 43 1C EB") setvalue(gg.getRangesList('libUE4.so')[1].start+0x2D107D0,16,"h A5 0A 9F ED") setvalue(gg.getRangesList('libUE4.so')[1].start+0x27B3A4,16,"h CC C4 73 04") -- --DarkPhoenix setvalue(gg.getRangesList('libUE4.so')[1].start+0xCB3EE0,16,"h 00 00 00 00") -- --DarkPhoenix setvalue(gg.getRangesList('libUE4.so')[1].start+0x3033B9C,16,"h 40 E0 84 E5") -- --DarkPhoenix --]] local t = {"libUE4.so", "Cd"} local tt = {0x5C2A00, 0x78, 0x68, 0x3C8} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1.0}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8, 0x20, 0x2CC, 0x310, 0x13C} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 443}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x2115D4, 0xA8, 0x30} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = -980}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8, 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 = {0x62EB8,0xA8,0x2DC,0x24} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 4, value = 10000}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x2CC,0x60} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1.0}})--A减速 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8, 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 = {0x1EADC8, 0x20, 0x2CC, 0x14F0} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1.0}})--翻倍 gg.toast("off") end function Exit() gg.skipRestoreState() gg.setVisible(true) os.exit() end while true do Time = os.date("%G-%m-%d | TIME: %H:%M:%S") if gg.isVisible(true) then gg.setVisible(false) HOME() end if ASHU == 1 then HOME() end end --------------------E_N_D------------------------