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 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 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 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 function edit(orig,ret)_om=orig[1].memory or orig[1][1]_ov=orig[3].value or orig[3][1]_on=orig[2].name or orig[2][1]gg.clearResults()gg.setRanges(_om)gg.searchNumber(_ov,orig[3].type or orig[3][2])sz=gg.getResultCount()if sz<1 then gg.toast(_on.."开启失败")else sl=gg.getResults(720)for i=1,sz do ist=true for v=4,#orig do if ist==true and sl[i].value==_ov then cd={{}}cd[1].address=sl[i].address+(orig[v].offset or orig[v][2])cd[1].flags=orig[v].type or orig[v][3]szpy=gg.getValues(cd)cdlv=orig[v].lv or orig[v][1]cdv=szpy[1].value if cdlv==cdv then pdjg=true ist=true else pdjg=false ist=false end end end if pdjg==true then szpy=sl[i].address for x=1,#(ret)do xgpy=szpy+(ret[x].offset or ret[x][2])xglx=ret[x].type or ret[x][3]xgsz=ret[x].value or ret[x][1]xgdj=ret[x].freeze or ret[x][4]xgsj={{address=xgpy,flags=xglx,value=xgsz}}if xgdj==true then xgsj[1].freeze=xgdj gg.addListItems(xgsj)else gg.setValues(xgsj)end end xgjg=true end end if xgjg==true then gg.toast(_on.."开启成功")else gg.toast(_on.."开启失败")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 gg.toast("搜索到"..#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) gg.toast("已修改"..#t.."条数据") gg.addListItems(t) else gg.toast("not found", false) return false end else gg.toast("Not Found") 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 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(0x315fdca1) 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 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(0x315fdca1) 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 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 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 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 end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A 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 end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end function xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then --gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else --gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() 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 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("🕹:修改"..#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("🕹:搜索0条数据.修改失败", false) return false end else gg.toast("🕹:搜索0条数据.修改失败") return false end 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 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 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 Main() while true do if gg.isVisible(true) then XGCK=1 gg.setVisible(false) end if XGCK==1 then menu = gg.choice({ 'Hook[开]', 'Hook[关]', '天空上色', '跳伞加速', "防封", '退出脚本'}, 2018,'局内开启,心绪天天开心') if menu == 1 then A1() end if menu == 2 then A2() end if menu == 3 then A3() end if menu == 4 then A4() end if menu == 5 then A5() end if menu == 6 then Exit() end XGCK=-1 end end end function A1() local t = {"libUE4.so:bss", "Cb"} local tt = {0x48AAD0, 0x4C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = -1}}) ---慢动作 local t = {"libUE4.so:bss", "Cb"} local tt = {0x48AAD0, 0x50} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = -1}}) ---慢动作 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 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("🕹:修改"..#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("🕹:搜索0条数据.修改失败", false) return false end else gg.toast("🕹:搜索0条数据.修改失败") return false end end local function readD ( a ) return gg.getValues ( { { address = a , flags = 4 } } ) [ 1 ].value 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 addListltems(address,flags,value,freeze) t={} t[1]={} t[1].address=address t[1].flags=flags t[1].value=value t[1].freeze=freeze gg.addListItems(t) end local function RUI(address) return gg.getValues({{address = address, flags = gg.TYPE_QWORD}})[1].value end if not gg.getRangesList(("libUE4.so")) or #gg.getRangesList(("libUE4.so")) == 0 then os.exit(print(("01 获取失败"))) end so=gg.getRangesList('libUE4.so')[1].start py=0x3D0C7A0 setvalue(so+py,16,8.47963525e-21) local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x78,0x5A8,0x7C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 120}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x4E64D0,0x50,0x438,0x410,0x10,0x40C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 120}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x20,0x300,0x7F4-0x20+0x4+0x4+0x8+0x4} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 0.1}}) ---慢动作 local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x20,0x300,0x7F4-0x20+0x4+0x4+0x8} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 0.1}}) ---慢动作 local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x20,0x300,0x7F4-0x20+0x4+0x4+0x4} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 0.1}}) ---慢动作 local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x20,0x300,0x7F4} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 0.05}}) ---慢动作 local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x550,0x80} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 2200}})----人物全局 local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x550,0x5d0,0xa28} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 0.12}})----人物全局 local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x3F8,0x40,0x230,0x458} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 0}}) local tt = {0x4DE9E0,0x30,0x3F8,0x40,0x230,0x45C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 0}})--去除打击特效 local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x80} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 200000000000000000000}}) local chiqiang = readPointer('libUE4.so:bss', {0x4DE9E0,0x30,0x550,0x80+0x2b24}, 1) ttlf={} ttlf[1]={} ttlf[1].address=chiqiang ttlf[1].flags=4 while(true)do local tt = {0x4DE9E0,0x30,0x550,0xEB8,0x908,0x260} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 0.00001}})--秒出枪 local tt = {0x4DE9E0,0x30,0x550,0xEB8,0x908,0x248} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = -10000000}})--秒切枪 local tt = {0x4DE9E0,0x30,0x550,0xEB8,0x908,0x254} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = -10000000}})--秒切枪 chiqiang=gg.getValues(ttlf)[1].value if chiqiang == 1 or 2 or 3 then local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x550,0xEB8,0x908,0x18b8-0x5C4} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 900000000000}})--瞬击 local tt = {0x4DE9E0,0x30,0x550,0xEB8,0x908,0x18b8} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 0.0003}})--射速 local tt = {0x4DE9E0,0x30,0x550,0xEB8,0x908,0x260} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 0.00001}})--秒出枪 local tt = {0x4DE9E0,0x30,0x550,0xEB8,0x908,0x248} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = -10000000}})--秒切枪 local tt = {0x4DE9E0,0x30,0x550,0xEB8,0x908,0x254} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = -10000000}})--秒切枪 local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x550,0xEB8,0x80} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = -1}})--枪口无火焰 local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x550,0xEB8,0x908,0x108c} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 0}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x550,0xEB8,0x908,0x1090} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 0}})--无弹孔 end mk=gg.getRangesList('libUE4.so')[1].start add = RUI(mk + 0xD808C30) hgy=0x4 while(hgy <= 0x1000) do hgy=hgy+0x2 addr=add+hgy addr=RUI(add+hgy)+0x0 if readD(addr+0x80) == 1065353216 and readD(addr+0x88) == 770 then setvalue(addr+0x80,16,5000) end end if gg.isVisible(true) then Yk = gg.alert("无敌慢动作加速","返回主页","继续") if Yk~=1 and CB~=2 then gg.setVisible(false) else end if Yk== 1 then Main() end end end end function A2() local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x550,0x5d0,0xa28} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 1}})----人物全局 local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x20,0x300,0x7F4-0x20+0x4+0x4+0x8+0x4} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 1}}) ---慢动作 local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x20,0x300,0x7F4-0x20+0x4+0x4+0x8} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 1}}) ---慢动作 local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x20,0x300,0x7F4-0x20+0x4+0x4+0x4} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 1}}) ---慢动作 local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x20,0x300,0x7F4} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 0.0005}}) ---慢动作 local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x550,0x80} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 1}})----人物全局 so=gg.getRangesList('libUE4.so')[1].start py=0x7986B18 setvalue(so+py,16,8.50279631e-21) so=gg.getRangesList('libUE4.so')[1].start py=0x7986B14 setvalue(so+py,16,8.47715371e-21) so=gg.getRangesList('libUE4.so')[1].start py=0x7986B10 setvalue(so+py,16,8.47221648e-21) end function A3() gg.clearResults() gg.setRanges(1048576) gg.searchNumber('8200',4) gg.searchAddress('018') gg.getResults(5) gg.editAll('6',4) end function A5() local t = {"libtprt.so", "Cd"} local tt = {0x21000} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1234, freeze = true}}) local t = {"libtprt.so:bss", "Cb"} local tt = {0x20} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1234, freeze = true}}) local t = {"libtprt.so:bss", "Cb"} local tt = {0xFC} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1234, freeze = true}}) local t = {"libtprt.so:bss", "Cb"} local tt = {0x154} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1234, freeze = true}}) local t = {"libtprt.so:bss", "Cb"} local tt = {0x484} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1234, freeze = true}}) local t = {"libtprt.so:bss", "Cb"} local tt = {0x3DC} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1234, freeze = true}}) local t = {"libtprt.so:bss", "Cb"} local tt = {0x408} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1234, freeze = true}}) local t = {"libtprt.so:bss", "Cb"} local tt = {0x40C} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1234, freeze = true}}) end function A4() local chiqiang = readPointer('libUE4.so:bss', {0x4DE9E0,0x30,0x550,0x3F8,0x1C0,0x2a4+0x24}, 1) ttlf={} ttlf[1]={} ttlf[1].address=chiqiang ttlf[1].flags=16 while(true)do chiqiang=gg.getValues(ttlf)[1].value if chiqiang == 0 then local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x550,0x80} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 2.2}})---官方加速 local tt = {0x1F3470} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = -0.1}})---官方加速 end if chiqiang == 100 then local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x550,0x80} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 1}})---官方加速 local tt = {0x1F3470} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 1}})---官方加速 local t = {"libUE4.so:bss", "Cb"} local tt = {0x4DE9E0,0x30,0x20,0x300,0x7F4} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 0.0005}}) ---慢动作 end if gg.isVisible(true) then Yk = gg.alert(",和平64位加速","返回主页","继续") if Yk~=1 and CB~=2 then gg.setVisible(false) else end if Yk== 1 then Main() end end end end function Exit() print("") os.exit() end while true do if gg.isVisible(true) then XGCK = 1 gg.setVisible(false) end gg.clearResults() if XGCK == 1 then Main() end end