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 function MIAONEI(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) gg.sleep(400) gg.toast("\n"..Name.."\n修改"..#t.."数据") else gg.toast("\n"..Name.."\n") return false end else gg.toast("\n"..Name.."\n") return false 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 gg.toast("found "..#data.." data") 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 gg.toast("ART", false) return false end else gg.toast("ART") return false end end function mnnb(Search, Write,Neicun,Mingcg,Shuzhiliang) gg.clearResults() gg.setRanges(Neicun) gg.setVisible(false) gg.searchNumber(Search[1][1], Search[1][3]) count = gg.getResultCount() result = gg.getResults(count) gg.clearResults() data = {} base = Search[1][2] if (count > 0) then for i, v in ipairs(result) do v.isUseful = true end for k=2, #Search do tmp = {} offset = Search[k][2] - base 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.."条数据") t = {} 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 item = {} item[#item+1] = t[#t] item[#item].freeze = true gg.addListItems(item) end end end gg.setValues(t) gg.toast(Mingcg.."已修改"..#t.."条数据") gg.sleep(400) else gg.toast(Mingcg.."开启失败", false) return false end else gg.toast("搜索失败") return false end 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 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 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 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 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..'开启失败') 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..'开启失败') 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..'开启成功,共修改'..sum..'条数据.') else gg.toast(Name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据.') end end function PS() end function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end jiaqun =gg.alert('RS7','进入脚本') function HG() menu = gg.choice({ '探头开',--1 '探头关',--2 '飞速',--3 '飞速关',--4 '秒落地',--5 '锁20延迟',--6 '大厅一键',--7 "特效", '退出脚本'}, nil,'楼主') if menu == 1 then A() end if menu == 2 then B() end if menu == 3 then C() end if menu == 4 then D() end if menu == 5 then E() end if menu == 6 then F() end if menu == 7 then G() end if meun == 8 then H() end if menu == 9 then Exit() end XGCK=-1 end function A() function readPointer(name, offset, i) local re = gg.getRangesList(name) local x64 = gg.getTargetInfo().x64 local va = {[true]=32, [false]=4} if re[i or 1] then local addr = re[i or 1].start + offset[1] for i = 2, #offset do addr = gg.getValues({{address=addr, flags=va[x64]}}) if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end function gg.edits(addr, Table) local Table1 = {{}, {}} for k, v in ipairs(Table) do local value = {address = addr+v[3], value = v[1], flags = v[2], freeze = v[4]} if v[4] then Table1[2][#Table1[2]+1] = value else Table1[1][#Table1[1]+1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) end--动态基址配置 local ttsl = readPointer('libUE4.so:bss', {0x1EA3A8,0x20,0x2CC,0x30C,0x618,0x3FC,0x514}, 1) ttlf={} ttlf[1]={} ttlf[1].address=ttsl ttlf[1].flags=16 while true do--开始循环 tt=gg.getValues(ttlf)[1].value--读取 if tt == -1 then--左探头 gg.toast('上') local addr=readPointer("libUE4.so:bss",{0x1EA3A8, 0x20, 0x2CC, 0x310, 0x134}, 1) gg.edits(addr, {{-3.5, 16, 0, false}})--上 end if tt == 1 then--右探头 gg.toast('下') local addr=readPointer("libUE4.so:bss",{0x1EA3A8, 0x20, 0x2CC, 0x310, 0x134}, 1) gg.edits(addr, {{3.5, 16, 0, false}})--下 end if tt == 0 then--不探头 gg.toast('楼主') local addr=readPointer("libUE4.so:bss",{0x1EA3A8, 0x20, 0x2CC, 0x310, 0x134}, 1) gg.edits(addr, {{0, 16, 0, false}})--定 so=gg.getRangesList('libUE4.so')[1].start py=0X26F1700 setvalue(so+py,16,0)--秒定 end end--结束 end function B() local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EA3A8, 0x20, 0x2CC, 0x310, 0x134} 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, 0x13C} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 443}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x202E24, 0xA8, 0xF0} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = -980}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EA3A8, 0x20, 0x2CC, 0x310, 0x134} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 0}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EA3A8, 0x20, 0x2CC, 0x310, 0x13C} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 0}}) so=gg.getRangesList('libUE4.so')[1].start py=0X26F1700 setvalue(so+py,16,-3.74440972e28) gg.toast("关闭") end function C() mnnb({{10.0,0,16},{46.0,4,16},},{{9999999,0,16},},32,"命中特效",true) 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},} SearchWrite(search,modify,dataType) gg.clearResults() gg.setRanges(32)--头部范围 local dataType = 16 local search = {{-88.73961639404,0},{18,4},{90.48510742188,4},} local modify = {{180.0,4},} SearchWrite(search,modify,dataType) gg.clearResults() gg.setRanges(32)--范围加伤 local dataType = 16 local search = {{0.00009203507,0},{30.5,24},} local modify = {{240.0,20},{240.0,24},} SearchWrite(search,modify,dataType) 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}})--开枪防拉 gg.toast("去除开枪") 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 = 0.8}}) 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 = 75}}) local t = {"libUE4.so", "Cd"} local tt = {0x1EA3A8, 0x20, 0x320, 0x19F4} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 0.13}}) gg.toast("上下坡防拉") 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 = 70}})--浮空 local t = {"libUE4.so", "Cd"} local tt = {0x5C2A20, 0x78, 0x68, 0x3C8} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1.79999995232}})--A全局 so=gg.getRangesList('libUE4.so')[1].start py=0XCB8B40 setvalue(so+py,16,-3.83692277e21) so=gg.getRangesList('libUE4.so')[1].start py=0X267C928 setvalue(so+py,16,5.6) so=gg.getRangesList('libUE4.so')[1].start py=0X26FCA44 setvalue(so+py,16,0.28000000119) so=gg.getRangesList('libUE4.so')[1].start py=0X270878C setvalue(so+py,16,0) 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.5) 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) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EA3A8,0x20,0x2CC,0x60} local ttt = S_Pointer(t, tt) local tt = {0x1EA3A8, 0x20, 0x2CC, 0x14F0} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 9999}}) gg.setValues({{address = ttt, flags = 16, value = 2}}) gg.clearResults() gg.setRanges(32) gg.searchNumber("2.0;2,048.0;300.0;0.05000000075", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("0.05000000075", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("80000000", gg.TYPE_FLOAT) local t = {"libUE4.so", "Cd"} local tt = {0x5C2A20, 0x20, 0x1C8, 0x3C0} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = 0.75, freeze = true}}) gg.toast("飞速开启成功") end function D() local t = {"libUE4.so", "Cd"} local tt = {0x5C2A20, 0x78, 0x68, 0x3C8} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1}})--A全局 so=gg.getRangesList('libUE4.so')[1].start py=0XCB8B40 setvalue(so+py,16,-3.83692305e21) so=gg.getRangesList('libUE4.so')[1].start py=0X267C928 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X26FCA44 setvalue(so+py,16,9.99999997e-7) so=gg.getRangesList('libUE4.so')[1].start py=0X270878C setvalue(so+py,16,-1.86389771e-20) 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) local t = {"libUE4.so", "Cd"} local tt = {0x5C2A20, 0x20, 0x1C8, 0x3C0} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = 1}}) gg.toast("飞速关闭成功") end function E() gg.clearResults() gg.setRanges(32) gg.searchNumber('1024', 16) resultCounts = gg.getResultsCount() L21_80 = gg.getResults(resultCounts) for _FORV_3_ = 1, resultCounts do values = {} values[1] = {} values[1].address = L21_80[_FORV_3_].address - 4 values[1].flags = 16 values = gg.getValues(values) if values[1].value == 5000 then values = {} values[1] = {} values[1].address = L21_80[_FORV_3_].address - 8 values[1].flags = 16 values = gg.getValues(values) if values[1].value == 3000 then values = {} values[1] = {} values[1].address = L21_80[_FORV_3_].address - 12 values[1].flags = 16 values = gg.getValues(values) if values[1].value == 0.5 then setvalues = {} setvalues[1] = {} setvalues[1].address = L21_80[_FORV_3_].address setvalues[1].flags = 16 setvalues[1].value = 200000 setvalues[2] = {} setvalues[2].address = L21_80[_FORV_3_].address - 4 setvalues[2].flags = 16 setvalues[2].value = 200000 setvalues[3] = {} setvalues[3].address = L21_80[_FORV_3_].address - 8 setvalues[3].flags = 16 setvalues[3].value = 200000 setvalues[4] = {} setvalues[4].address = L21_80[_FORV_3_].address - 12 setvalues[4].flags = 16 setvalues[4].value = 200000 gg.setValues(setvalues) gg.toast('秒落地') end end end end end function F() so=gg.getRangesList('libUE4.so')[1].start py=0X2A954C4 setvalue(so+py,16,0) gg.toast("锁20延迟开启成功") end function G() so=gg.getRangesList('libUE4.so')[1].start py=0XDB0AF8 setvalue(so+py,16,0)--午后 so=gg.getRangesList('libUE4.so')[1].start py=0X26BC7AC 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=0X2739E54 setvalue(so+py,16,0)--防坠落 so=gg.getRangesList('libUE4.so')[1].start py=0XDB10B8 setvalue(so+py,16,100)--据点 gg.toast('大厅开启') gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("23;25;30.5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(10) gg.editAll("100", gg.TYPE_FLOAT) gg.clearResults() gg.toast("开启成功") gg.clearResults() so=gg.getRangesList('libUE4.so')[1].start py=0x20843D0 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X19457C8 setvalue(so+py,16,0) gg.toast('除草除雾') local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EFEEC, 0x82C, 0x6E0} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = 1000, freeze = true}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EFEEC, 0x82C, 0x6E4} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 16, value = 1000, freeze = true}}) gg.toast('改帧率开启') so=gg.getRangesList('libUE4.so')[1].start py=0x2098300 setvalue(so+py,16,0)--黑体 gg.toast('黑体开启') gg.setRanges(16384) gg.setVisible(false) gg.searchNumber("360.0;0.00100000005;-9.38575022e22", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.refineNumber("360.0;0.00100000005", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(2) gg.editAll("-1.4235595e-27;220.70928955078", gg.TYPE_FLOAT) gg.toast('视角开启') end function H() gg.clearResults() gg.searchNumber("403007", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1, 0) gg.processResume() revert = gg.getResults(100, nil, nil, nil, nil, nil, nil, nil, nil) gg.editAll("1405032", gg.TYPE_DWORD) end function Exit() os.exit() end while(true)do if gg.isVisible(true) then XGCK=1 gg.setVisible(false) end gg.clearResults() if XGCK==1 then gg.toast('楼主') HG() end end