function DTNB(Search,Get,Type,Range,Name) gg.clearResults() gg.setRanges(Range) gg.setVisible(false) if Search[1][1]~=false then gg.searchAddress(Search[1][1],0xFFFFFFFF,Search[1][4] or Type,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,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 "修改"..tg_.."数据" or "" th=(th_) and "" or "" gg.setValues(t) t_=gg.getValues(t_) gg.loadResults(t_) gg.toast(""..Name..tg) tg_,th_=nil,nil else gg.toast("搜索不到",false) return false end else gg.toast("搜索不到") 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 so=gg.getRangesList('libUE4.so')[1].start py=0X2739E68--子弹坠落 setvalue(so+py,16,-18) so=gg.getRangesList('libUE4.so')[1].start py=0X2739E54 setvalue(so+py,16,0)--防坠落 so=gg.getRangesList('libUE4.so')[1].start py=0X2739E68--子弹坠落 setvalue(so+py,16,-18) so=gg.getRangesList('libUE4.so')[1].start py=0X2739E54 setvalue(so+py,16,0)--防坠落 so=gg.getRangesList('libUE4.so')[1].start py=0X2739E68--子弹坠落 setvalue(so+py,16,-18) so=gg.getRangesList('libUE4.so')[1].start py=0X2739E54 setvalue(so+py,16,0)--防坠落 so=gg.getRangesList('libUE4.so')[1].start py=0X2739E68--子弹坠落 setvalue(so+py,16,-18) so=gg.getRangesList('libUE4.so')[1].start py=0X2739E54 setvalue(so+py,16,0)--防坠落 so=gg.getRangesList('libUE4.so')[1].start py=0X2739E68--子弹坠落 setvalue(so+py,16,-18) so=gg.getRangesList('libUE4.so')[1].start py=0X2739E54 setvalue(so+py,16,0)--防坠落 so=gg.getRangesList('libUE4.so')[1].start py=0X2739E68--子弹坠落 setvalue(so+py,16,-18) so=gg.getRangesList('libUE4.so')[1].start py=0X2739E54 setvalue(so+py,16,0)--防坠落 so=gg.getRangesList('libUE4.so')[1].start py=0X2739E68--子弹坠落 setvalue(so+py,16,-18) so=gg.getRangesList('libUE4.so')[1].start py=0X2739E54 setvalue(so+py,16,0)--防坠落 so=gg.getRangesList('libUE4.so')[1].start py=0X2739E34--瞬击 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0XE59A5C--子弹变大 setvalue(so+py,16,-2.78596955e28) DTNB({{false,88000.0,0,16,nil,nil}},{{35000,0,16,false}},16,32,"械枪加伤") DTNB({{false,90000.0,0,16,nil,nil}},{{35000,0,16,false}},16,32,"枪械加伤") DTNB({{false,23.0,0,16,nil,nil},{25.0,4,16},{30.5,8,16}},{{100,4,16,false},{100,8,16,false}},16,32,"范围") DTNB({{false,-1883348481058764210,0,32,nil,nil}},{{-1883348485055444540,0,32,false}},32,16384,"修复") DTNB({{false,88000.0,0,16,nil,nil}},{{35000,0,16,false}},16,32,"头部部位") DTNB({{false,90000.0,0,16,nil,nil}},{{35000,0,16,false}},16,32,"头部提升") DTNB({{false,23.0,0,16,nil,nil},{25.0,4,16},{30.5,8,16}},{{100,4,16,false},{100,8,16,false}},16,32,"头部提升") DTNB({{false,-1883348481058764210,0,32,nil,nil}},{{-1883348485055444540,0,32,false}},32,16384,"头部部位") gg.clearResults() gg.setRanges(32)--头部伤害 local dataType = 16 local search = {{9.20161819458,0},{25.0,28},{30.5,32},} local modify = {{180.0,24},{180.0,28},{180.0,32},} so=gg.getRangesList('libUE4.so')[1].start py=0X2739E68--子弹坠落 setvalue(so+py,16,-18) so=gg.getRangesList('libUE4.so')[1].start py=0X2739E54 setvalue(so+py,16,0)--防坠落 so=gg.getRangesList('libUE4.so')[1].start py=0X2739E68--子弹坠落 setvalue(so+py,16,-18) so=gg.getRangesList('libUE4.so')[1].start py=0X2739E54 setvalue(so+py,16,0)--防坠落 so=gg.getRangesList('libUE4.so')[1].start py=0X2739E68--子弹坠落 setvalue(so+py,16,-18) so=gg.getRangesList('libUE4.so')[1].start py=0X2739E54 setvalue(so+py,16,0)--防坠落 so=gg.getRangesList('libUE4.so')[1].start py=0X2739E68--子弹坠落 setvalue(so+py,16,-18) so=gg.getRangesList('libUE4.so')[1].start py=0X2739E54 setvalue(so+py,16,0)--防坠落 so=gg.getRangesList('libUE4.so')[1].start py=0X2739E68--子弹坠落 setvalue(so+py,16,-18) so=gg.getRangesList('libUE4.so')[1].start py=0X2739E54 setvalue(so+py,16,0)--防坠落 so=gg.getRangesList('libUE4.so')[1].start py=0X2739E68--子弹坠落 setvalue(so+py,16,-18) so=gg.getRangesList('libUE4.so')[1].start py=0X2739E54 setvalue(so+py,16,0)--防坠落 so=gg.getRangesList('libUE4.so')[1].start py=0X2739E68--子弹坠落 setvalue(so+py,16,-18) so=gg.getRangesList('libUE4.so')[1].start py=0X2739E54 setvalue(so+py,16,0)--防坠落 so=gg.getRangesList('libUE4.so')[1].start py=0X2739E34--瞬击 setvalue(so+py,16,0) local dataType = 16 local search = {{9.20161819458,0},{25.0,28},{30.5,32},} local modify = {{180.0,24},{180.0,28},{180.0,32},} gg.clearResults() py4=0X223D3FC--头部部位 py5=0X26F1A38--头部部位 py6=0X26F1A3C--头部部位 py7=0X2A48B3C--头部提升 py8=0X2A48B40--头部提升 py9=0X2A48BF0--头部提升 py10=0X2739E68 py11=0X2739E34--瞬杀 py12=0X2739E68--瞬杀 setvalue(so+py,16,-2.78596955e28) 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"] xgdateType = qmxg[x]["type"] xgsz = qmxg[x]["value"] xgdj = qmxg[x]["freeze"] if xgdj == nil or xgdj == "" then gg.setValues({[1] = {address = xgpy, flags = xgdateType, value = xgsz}}) else gg.addListItems({[1] = {address = xgpy, flags = xgdateType, 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"] .. "Successfully opened,Altogether modify" .. xgsl .. "Article data") 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("Successfully opened,Altogether modify"..#t.."Article data") gg.addListItems(t) else gg.toast("开启成功", false) return false end else gg.toast("开启成功") return false end end qmnb = {{["memory"] = 32}, {["name"] = "10%"}, {["value"] = 4740038608910024704, ["type"] = 32}, {["lv"] = 4752423507886342144, ["offset"] = 4, ["type"] = 32}, {["lv"] = 1106509824, ["offset"] = 8, ["type"] = 32}, } qmxg = {{["value"] = 150, ["offset"] = 0, ["type"] = 16}, {["value"] = 150, ["offset"] = 4, ["type"] = 16}, {["value"] = 150, ["offset"] = 8, ["type"] = 16}, } xqmnb(qmnb) qmnb = {{["memory"] = 32}, {["name"] = "20%"}, {["value"] = 1091779028, ["type"] = 4}, {["lv"] = 1103626240, ["offset"] = 28, ["type"] = 4}, {["lv"] = 1106509824, ["offset"] = 32, ["type"] = 4},} qmxg = {{["value"] = 180, ["offset"] = 28, ["type"] = 16}, {["value"] = 180, ["offset"] = 32, ["type"] = 16}, } xqmnb(qmnb) qmnb = {{["memory"] = 32}, {["name"] = "30%"}, {["value"] = 69.5, ["type"] = gg.TYPE_FLOAT}, {["lv"] = 33, ["offset"] = -4, ["type"] = gg.TYPE_FLOAT}, {["lv"] = 35, ["offset"] = -8, ["type"] = gg.TYPE_FLOAT},} qmxg = {{["value"] = 260, ["offset"] = 0, ["type"] = gg.TYPE_FLOAT}, {["value"] = 260, ["offset"] = -4, ["type"] = gg.TYPE_FLOAT}, } xqmnb(qmnb) qmnb = {{["memory"] = 32}, {["name"] = "40%"}, {["value"] = 9.20161819458, ["type"] = gg.TYPE_FLOAT}, {["lv"] = 0, ["offset"] = 12, ["type"] = gg.TYPE_FLOAT}, {["lv"] = 0, ["offset"] = 16, ["type"] = gg.TYPE_FLOAT},} qmxg = {{["value"] = 220, ["offset"] = 24, ["type"] = gg.TYPE_FLOAT,}, {["value"] = 220, ["offset"] = 24, ["type"] = gg.TYPE_FLOAT,}, {["value"] = 220, ["offset"] = 28, ["type"] = gg.TYPE_FLOAT}, {["value"] = 220, ["offset"] = 32, ["type"] = gg.TYPE_FLOAT}, } xqmnb(qmnb) qmnb = {{["memory"] = 32}, {["name"] = "50%"}, {["value"] = -88.66608428955, ["type"] = gg.TYPE_FLOAT}, {["lv"] = 16, ["offset"] = 4, ["type"] = gg.TYPE_FLOAT}, {["lv"] = 26, ["offset"] = 8, ["type"] = gg.TYPE_FLOAT},} qmxg = {{["value"] = -530, ["offset"] = 8, ["type"] = gg.TYPE_FLOAT}, } xqmnb(qmnb) gg.searchNumber("-1.427811e28", 16, false, 536870912, 0, -1) gg.getResults(100) gg.editAll("0", 16) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("15;28;16;26;8;18", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(56) gg.editAll("-1339", gg.TYPE_FLOAT) gg.clearResults() gg.toast("100%") gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("25;23;30.5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(3) gg.editAll("160", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("25;30.5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(10) gg.editAll("250", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("30.5;25", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(10) gg.editAll("220", gg.TYPE_FLOAT) gg.clearResults() gg.toast("") gg.editAll("0", gg.TYPE_FLOAT) gg.clearResults() gg.toast("真伤") gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("90775703430176;0;8;15;16;18;28", gg.TYPE_FLOAT) gg.searchNumber("28", gg.TYPE_FLOAT) gg.getResults(10) gg.editAll("100000",gg.TYPE_FLOAT) gg.editAll("100000",gg.TYPE_FLOAT) gg.toast("增伤") gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("90000", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("90000", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("880000", gg.TYPE_FLOAT) gg.clearResults() gg.toast("M16伤害") gg.clearResults() gg.setRanges(gg.REGION_C_ALLOC) gg.setVisible(false) gg.searchNumber("578351706144768;564058054983680", gg.TYPE_QWORD) gg.refineNumber("578351706144768", gg.TYPE_QWORD) gg.getResults(50000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setRanges(gg.REGION_C_ALLOC) gg.setVisible(false) gg.searchNumber("582749752655872;620137442967552", gg.TYPE_QWORD) gg.refineNumber("582749752655872", gg.TYPE_QWORD) gg.getResults(50000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setRanges(gg.REGION_C_ALLOC) gg.setVisible(false) gg.searchNumber("620137442967552;579451217772544", gg.TYPE_QWORD) gg.refineNumber("620137442967552", gg.TYPE_QWORD) gg.getResults(50000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setRanges(gg.REGION_C_ALLOC) gg.setVisible(false) gg.searchNumber("566257078239232;573957954600960", gg.TYPE_QWORD) gg.refineNumber("566257078239232", gg.TYPE_QWORD) gg.getResults(50000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setVisible(false) gg.searchNumber("573953659633664;582749752655872", gg.TYPE_QWORD) gg.refineNumber("573953659633664", gg.TYPE_QWORD) gg.getResults(50000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setVisible(false) gg.searchNumber("572854148005888;620137442967552", gg.TYPE_QWORD) gg.refineNumber("572854148005888;", gg.TYPE_QWORD) gg.getResults(50000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setVisible(false) gg.searchNumber("565157566611456;566257078239232", gg.TYPE_QWORD) gg.refineNumber("565157566611456", gg.TYPE_QWORD) gg.getResults(50000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setVisible(false) gg.searchNumber("562954248388607;578351706144768", gg.TYPE_QWORD) gg.refineNumber("562954248388607", gg.TYPE_QWORD) gg.getResults(50000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setRanges(gg.REGION_C_ALLOC) gg.setVisible(false) gg.searchNumber("65795~590336;67109633;131330", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.refineNumber("65795~590336", gg.TYPE_DWORD) gg.getResults(50000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setVisible(false) gg.searchNumber("4398046511104;544434349408256", gg.TYPE_QWORD) gg.refineNumber("4398046511104", gg.TYPE_QWORD) gg.getResults(50000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setVisible(false) gg.searchNumber("577252194516992;288233678981562368", gg.TYPE_QWORD) gg.refineNumber("577252194516992", gg.TYPE_QWORD) gg.getResults(50000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setRanges(gg.REGION_C_ALLOC) gg.searchNumber("2.24207754e-44;2.66246708e-44", gg.TYPE_FLOAT) gg.refineNumber("2.24207754e-44", gg.TYPE_FLOAT) gg.getResults(99999) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setRanges(gg.REGION_C_ALLOC) gg.searchNumber("134658;131330;67109633;67109377", gg.TYPE_DWORD) gg.refineNumber("134658", gg.TYPE_DWORD) gg.getResults(100000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setRanges(gg.REGION_C_ALLOC) gg.clearResults() gg.searchNumber("133635;131330;67109633;67109377", gg.TYPE_DWORD) gg.refineNumber("133635", gg.TYPE_DWORD) gg.getResults(100000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setRanges(gg.REGION_C_ALLOC) gg.clearResults() gg.searchNumber("135682;131330;67109633;67109377", gg.TYPE_DWORD) gg.refineNumber("135682", gg.TYPE_DWORD) gg.getResults(100000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setRanges(gg.REGION_C_ALLOC) gg.clearResults() gg.searchNumber("131842;131330;67109633;67109377", gg.TYPE_DWORD) gg.refineNumber("131842", gg.TYPE_DWORD) gg.getResults(100000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.getRangesList("libtersafe.so") gg.setValues({ [1] = { address = 172931491840, flags = 4, value = 131842 } }) gg.getRangesList("libtersafe.so") gg.setValues({ [1] = { address = 25465687971904, flags = 4, value = 131842 } }) gg.getRangesList("libtersafe.so") gg.setValues({ [1] = { address = 2843676720, flags = 4, value = 131842 } }) gg.getRangesList("libtersafe.so") gg.setValues({ [1] = { address = 172929541920, flags = 4, value = 131842 } }) gg.getRangesList("libtersafe.so") gg.setValues({ [1] = { address = 2843676956, flags = 4, value = 131842 } }) gg.toast("禁止泛滥")