function SearchWrite(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 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 YULUO(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 readWrite(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 "by楼主提示修改"..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 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 WH_31(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 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 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 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 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 PS() end function setvalue(address,flags,value) PS('修改地址数值(地址,数值16,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end local gurenya=gg.setValues--静态 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("柒柒反胃", false) return false end else gg.toast("狂5") 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 _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 Henmo(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 gg.toast("\n🔍搜索到"..#data.."数据\n🔰开始进行偏移") 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.."失败") return false end else gg.toast("\n❌"..Name.."失败") return false end end function HT(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 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 --[[配置1]]function js(address,flags,value) local jz={} jz[1]={} jz[1].address=address jz[1].flags=flags jz[1].value=value gg.setValues(jz) end --[[配置2]]function jz(py,xl,xgsz) flags=xl value=xgsz so=gg.getRangesList(''..name..'')[1].start js(so+py,xl,xgsz) 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 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 local gurenya=gg.setValues--静态 local gg=gg 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 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 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("啦啦啦啦", false) return false end else gg.toast("啦啦啦啦") return false end end function Fxs(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 "\n修改"..tg_.."数据" 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("搜索不到",false) return false end else gg.toast("开启失败") return false end end function Format(tab, format, value, type, Function) if format == "查看" then tab[1]["flags"] = type return print(gg.getValues(tab)) elseif format == "修改" then tab[1]["flags"] = type tab[1]["value"] = value return gg.setValues(tab) elseif format == "冻结" then tab[1]["flags"] = type tab[1]["freeze"] = true tab[1]["value"] = value tab[1]["name"] = Function or "功能" return gg.addListItems(tab) elseif format == "加载" then tab[1]["flags"] = type return gg.loadResults(tab) end 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 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 by_wanhe(so, offset, format, value, type, Function)--模块设置, 偏移量, 功能参数, 修改值, 类型, 功能 getRanges = getRanges or (function() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v["type"]:sub(2, 2) == 'w' then--判断so是否可读可写 ranges[#ranges+1] = v end end return ranges end) local rest, ranges, sostart, valtype = {}, getRanges(), nil , gg.TYPE_DWORD if gg.getTargetInfo()["x64"] then--判断应用程序是否为64位 valtype = gg.TYPE_QWORD end for i in pairs(ranges) do local _name = ranges[i]["internalName"]:gsub('^.*/', '') if so[1] == _name and so[2] == ranges[i]["state"] then sostart = ranges[i]["start"] break end end if sostart then if offset[1] then for i = 1, #offset do rest = {{flags = valtype,address = sostart + offset[i]}} rest = gg.getValues(rest) if i == #offset then break end if valtype == gg.TYPE_DWORD then sostart = rest[1].value & 0xFFFFFFFF--对值进行补位操作 else sostart = rest[1].value end end end if #rest == 1 then end return Format(rest, format, value, type, Function) end gg.toast("功能:" .. Function .. "开启失败") print("功能开启失败原因: 未找到基址头") return os.exit() end function PS() end -- local WH=gg.setValues 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 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 Dec(tab,offset) local num = 0 local str = "" for k,v in pairs(tab) do str = str..v:gsub(".",function (str) num = num+1 return string.char(str:byte()-offset[k][num]) end) num = 0 end return str end load(Dec({" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "},{{125,11,18},{128,12,23},{116,18,96},{150,50,62},{150,42,48},{187,31,28},{127,13,84},{109,31,20},{110,27,84},{125,20,31},{124,13,84},{125,14,27},{126,6,27},{183,18,31},{118,27,87},{119,17,29},{130,20,96},{127,31,12},{130,67,5},{104,96,37},{193,31,28},{127,14,27},{112,13,94},{134,67,31},{127,28,13},{183,37,94},{109,31,20},{110,27,94},{134,67,10},{130,20,11},{126,84,37},{193,26,20},{130,25,13},{193,35,67},{125,20,31},{124,13,84},{136,94,26},{113,27,27},{105,27,94},{134,67,26},{113,27,27},{105,27,3},{102,96,25},{124,82,13},{126,12,42},{130,20,11},{126,13,88},{127,31,12},{130,87,23},{125,96,26},{113,27,27},{105,27,67},{166,12,14},{110,27,96},{111,24,27},{117,96,25},{124,82,31},{127,28,52},{122,13,12},{154,12,27},{118,13,88},{127,31,12},{130,87,27},{117,28,96},{122,26,96},{117,31,19},{126,2,67},{117,23,20},{195,12,24},{126,18,96},{124,25,82},{111,17,31},{112,12,88},{188,37,89},{181,82,18},{130,19,27},{181,82,89},{134,89,87},{126,18,28},{195,27,18},{127,96,26},{110,18,29},{111,23,17},{117,96,51},{149,62,88},{130,28,28},{186,12,67},{124,25,82},{124,27,12},{141,31,20},{110,27,13},{187,5,37},{178,35,67},{104,31,28},{127,14,27},{112,13,67},{130,28,28},{183,26,20},{130,25,13},{166,76,3},{102,87,31},{127,28,67},{112,12,14},{122,18,25},{181,26,17},{113,19,31},{111,88,94},{190,40,94},{183,12,37},{178,35,82},{109,31,20},{110,27,87},{122,26,96},{187,93,31},{127,28,87},{166,67,79},{173,96,12},{123,27,18},{195,31,28},{127,67,31},{127,28,70},{112,11,30},{187,71,84},{178,74,87},{195,27,18},{127,96,23},{125,96,88},{192,31,28},{127,87,67},{166,79,96},{111,24,27},{117,96,31},{127,28,67},{130,28,28},{181,82,94},{179,80,80},{179,80,80},{179,94,96},{126,20,13},{126,96,31},{127,28,67},{112,12,14},{122,18,25},{181,26,17},{113,19,31},{111,88,94},{190,28,94},{183,94,80},{107,94,82},{181,31,28},{127,87,27},{117,28,96},{113,27,12},{110,14,18},{195,31,28},{127,96,27},{117,28,96},{217,118,118},{217,96,96}}))() 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 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 getRanges() local ranges = {} local tt = {} local t = gg.getRangesList('^/data/*.so*$') for i in pairs(t) do if t[i].type:sub(2, 2) == 'w' or t[i].type == "r-xp" then if not tt[t[i].internalName] then tt[t[i].internalName] = {} end if not tt[t[i].internalName][t[i].state] then tt[t[i].internalName][t[i].state] = 0 end tt[t[i].internalName][t[i].state] = tt[t[i].internalName][t[i].state] + 1 t[i].count = tt[t[i].internalName][t[i].state] table.insert(ranges, t[i]) end end return ranges end function Base_Address(N_So) local S_list = getRanges() local _S = {} 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 and N_So[3] == S_list[i].count then _S = S_list[i] break end end return _S.start end function Get_Address(Address, Offset) local flags_bit = {[true] = 32, [false] = 4} local ti64 = gg.getTargetInfo().x64 local Type = flags_bit[ti64] local addr = 0 if Address then addr = Address + Offset[1] for _ = 2, #Offset do local pointer = gg.getValues({{address = addr, flags = Type}}) if not ti64 then pointer[1].value = pointer[1].value & 0xFFFFFFFF end addr = pointer[1].value + Offset[_] end end return addr end 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 HaoGe(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 "by楼主提示修改"..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 Henmo(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 gg.toast("\n🔍搜索到"..#data.."数据\n🔰开始进行偏移") 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.."失败") return false end else gg.toast("\n❌"..Name.."失败") return false end end function HT(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 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 --[[配置1]]function js(address,flags,value) local jz={} jz[1]={} jz[1].address=address jz[1].flags=flags jz[1].value=value gg.setValues(jz) end --[[配置2]]function jz(py,xl,xgsz) flags=xl value=xgsz so=gg.getRangesList(''..name..'')[1].start js(so+py,xl,xgsz) 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 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 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 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 local gurenya=gg.setValues--静态 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 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 local gurenya=gg.setValues--静态 function getRanges() local ranges = {} local tt = {} local t = gg.getRangesList('^/data/*.so*$') for i in pairs(t) do if t[i].type:sub(2, 2) == 'w' or t[i].type == "r-xp" then if not tt[t[i].internalName] then tt[t[i].internalName] = {} end if not tt[t[i].internalName][t[i].state] then tt[t[i].internalName][t[i].state] = 0 end tt[t[i].internalName][t[i].state] = tt[t[i].internalName][t[i].state] + 1 t[i].count = tt[t[i].internalName][t[i].state] table.insert(ranges, t[i]) end end return ranges end function Base_Address(N_So) local S_list = getRanges() local _S = {} 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 and N_So[3] == S_list[i].count then _S = S_list[i] break end end return _S.start end function Get_Address(Address, Offset) local flags_bit = {[true] = 32, [false] = 4} local ti64 = gg.getTargetInfo().x64 local Type = flags_bit[ti64] local addr = 0 if Address then addr = Address + Offset[1] for _ = 2, #Offset do local pointer = gg.getValues({{address = addr, flags = Type}}) if not ti64 then pointer[1].value = pointer[1].value & 0xFFFFFFFF end addr = pointer[1].value + Offset[_] end end return addr 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("啦啦啦啦", false) return false end else gg.toast("啦啦啦啦") 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 loadYunLuaGroup("5C3C4E3813681C4C204C35346F1B4C2F7EFF612D2B221779A4DEA2EE4D5B0D1E6DCD82D1A08DE1") function init() stab = _ENV["分页"] ttitle = _ENV["标题"] xfcpic = _ENV["悬浮窗图标"] end gg.playMusic("http://music.163.com/song/media/outer/url?id=2020310968.mp3") _ENV["悬浮窗图标"] = "https://pan.29o.cn/view.php/2f22f8cfb6d5112692ce85009ca45dea.png" --写图片文件直链 _ENV["标题"] = "ELGG - UI" _ENV["分页"] = { --导航栏分页名字和图标,添加表即可加页数,需要与功能配置页面数量对应 "大厅", "加速", "飞天", "特效", "范围", "设置", --'设置',--这样添加新页面 } init() --传递变量勿动 uistart({ --每一个功能页面需要有上边分页名字对应,多出来的不显示,少了需要补充 { --1 CAtext(""), CAtext("冷少频道@lenshao886", "#000000", "19sp", true), CAbutton("选择进程", function() gg.setProcessX() a() --调用了前置函数例子function a end), CAswitch("防闪退", function() if gg.getRangesList("libanogs.so")[1] then local t = {} t[1] = gg.getRangesList("libanogs.so")[1]["start"] + 0x355AE0; -- 数值地址:0xB5486AE0 t[2] = gg.getRangesList("libanogs.so")[1]["start"] + 0x379938; -- 数值地址:0xB54AA938 t[3] = gg.getRangesList("libanogs.so")[1]["start"] + 0x379ADC; -- 数值地址:0xB54AAADC t[4] = gg.getRangesList("libanogs.so")[1]["start"] + 0x379B20; -- 数值地址:0xB54AAB20 gg.setValues({ [1] = { address = t[1], flags = 4, value = 4096, }, [2] = { address = t[2], flags = 4, value = 4096, }, [3] = { address = t[3], flags = 4, value = 4096, }, [4] = { address = t[4], flags = 4, value = 4096, }, }) gg.toast("开启成功") end string.toMusic("开启成功") end, 0xff0062ff), --第三参数颜色 CAswitch("跨进程换号", function() Yk=gg.prompt({"直接点击确定"},{"/data/user/0/com.tencent.iglite/shared_prefs"},{"path"})---UI if Yk==nil then---判断Yk是否是空然后执行 os.exit(print("没输入"))---执行退出并打印 end--结束这段函数 --重点-- id=io.open(Yk[1].."/device_id.xml","r"):read("*a")---读取文件夹的device_id.xml文件 ID = id:match(' (.-)')----打开找到uuid ID1=gg.prompt({"请输入要修改的ID"},{ID},{"text"})---UI zip="" zip=string.gsub(id,ID,ID1[1])----替换uuid和device_id.xml文件 DY="请退出登陆 并且清楚后台 再重新登陆\nQQ3176393002"---赋值来用于打印DY io.open(Yk[1].."/device_id.xml", 'w'):write(zip)---写出device_id.xml文件 os.remove(Yk[1]..".bak")---删除bak残留 os.remove("/storage/emulated/0/Android/data/com.tencent.iglite/files/login-identifier.txt")--删除本地文件的id os.remove("/storage/emulated/0/Android/data/com.tencent.iglite/files/UE4Game/ShadowTrackerExtra/ShadowTrackerExtra/Saved/RoleInfo") gg.toast([[账号ID修改成功]])---提示 function HOME()---返回函数 lw=1 Yk() end---结束这段函数 print(DY)---打印回复上段赋值 end), CAswitch("大厅一套", function() local t = {} gg.setRanges(gg.REGION_CODE_APP) gg.searchNumber('-1.2382424e28;-1.4239333e28;-1.1144502e28;-1.8331474e27;-7.1608877e24::', gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber('-1.1144502e28', gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(2) gg.editAll('90', gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(16384) gg.searchNumber("-2.786982e28;-2.2673448e24;-1.13688735e-13", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("-2.786982e28", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(1) gg.editAll("0", gg.TYPE_FLOAT) gg.clearResults() gg.toast("No Recoil ") gg.setVisible(true) t[1] = gg.getRangesList("libUE4.so")[1]["start"] + 0x1949A58; -- 数值地址:0xB8B4AA58 t[2] = gg.getRangesList("libUE4.so")[1]["start"] + 0x208C8D0; -- 数值地址:0xB928D8D0 t[3] = gg.getRangesList("libUE4.so")[1]["start"] + 0x2648B80; -- 数值地址:0xB9849B80 t[4] = gg.getRangesList("libUE4.so")[1]["start"] + 0x26C4CAC; -- 数值地址:0xB98C5CAC t[5] = gg.getRangesList("libUE4.so")[1]["start"] + 0x26C7B90; -- 数值地址:0xB98C8B90 t[6] = gg.getRangesList("libUE4.so")[1]["start"] + 0x2742334; -- 数值地址:0xB9943334 t[7] = gg.getRangesList("libUE4.so")[1]["start"] + 0x2742354; -- 数值地址:0xB9943354 gg.setValues({ [1] = { address = t[1], flags = 4, value = 0, }, [2] = { address = t[2], flags = 4, value = 0, }, [3] = { address = t[3], flags = 4, value = 0, }, [4] = { address = t[4], flags = 4, value = 0, }, [5] = { address = t[5], flags = 4, value = 1132068864, }, [6] = { address = t[6], flags = 4, value = 0, }, [7] = { address = t[7], flags = 4, value = 0, }, }) so=gg.getRangesList('libUE4.so')[1].start py=0XDB51F8 setvalue(so+py,16,130)--据点 so=gg.getRangesList('libUE4.so')[1].start py=0x1269148 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0x126914C setvalue(so+py,16,0)--小据点 string.toMusic("开启成功") end, function() end), CAswitch("黑色天空", function() so=gg.getRangesList('libUE4.so')[1].start setvalue(so + '0x2907bc0', 4, 'h B4 C6 27 B7') string.toMusic("开启成功") end, function() end, ""), CAswitch("自改广角", function() OP=gg.prompt({'360到180'},{[1]='230'},{[1]='number'}) if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消") else so=gg.getRangesList('libUE4.so')[1].start py=0x26c7b90 setvalue(so+py,16,OP[1]) string.toMusic("开启成功") end end, function() end, ""), CAswitch("沙漠地图", function() so=gg.getRangesList('libUE4.so')[1].start py=0x21857B4 setvalue(so+py,16, 0) string.toMusic("开启成功") end, function() end, ""), CAswitch("秒落地", function() gg.clearResults() gg.setRanges(32) gg.searchNumber("1024",16) resultCounts=gg.getResultsCount() results=gg.getResults(resultCounts) for i=1,resultCounts do values={} values[1]={} values[1].address=results[i].address-4 values[1].flags=16 values=gg.getValues(values) if values[1].value==5000.0 then values={} values[1]={} values[1].address=results[i].address-8 values[1].flags=16 values=gg.getValues(values) if values[1].value==3000.0 then values={} values[1]={} values[1].address=results[i].address-12 values[1].flags=16 values=gg.getValues(values) if values[1].value==0.5 then setvalues={} setvalues[1]={} setvalues[1].address=results[i].address setvalues[1].flags=16 setvalues[1].value=200000 setvalues[2]={} setvalues[2].address=results[i].address-4 setvalues[2].flags=16 setvalues[2].value=200000 setvalues[3]={} setvalues[3].address=results[i].address-8 setvalues[3].flags=16 setvalues[3].value=200000 setvalues[4]={} setvalues[4].address=results[i].address-12 setvalues[4].flags=16 setvalues[4].value=200000 gg.setValues(setvalues) gg.toast("开启成功") end end end end string.toMusic("开启成功") end, function() end, ""), CAswitch("人物变异[娱乐]", function() local soRanges = gg.getRangesList('com.tencent.iglite') if #soRanges == 0 then gg.alert('进程兄弟') return 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 = ti_bit and 32 or 4 local _S = nil 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 not _S then return nil end 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 _, val in pairs(S) do local addr = val.value if not ti.x64 then addr = addr & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = addr + Offset[i] t[#t].flags = _t end end end local result = t[#t].address print(string.char(231,190,164,58).._Q) return result end local addr = Get_Address(t_So, t_Offset, _bit) if not addr then return "地址获取失败" end return string.format('0x%X', addr) end function safeSetValue(soName, offset, flags, value) local base = getBaseAddress(soName) if not base then return false end setvalue(base + offset, flags, value) return true 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=0xBE0C28 setvalue(so+py,4, 0.0) so=gg.getRangesList('libUE4.so')[1].start py=0xBE5A30 setvalue(so+py,4, 0.0) so=gg.getRangesList('libUE4.so')[1].start py=0xBEBA34 setvalue(so+py,4, 0.0) so=gg.getRangesList('libUE4.so')[1].start py=0xBFD18C setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0xCFCE74 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0xF05008 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0xF050D4 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0xF051DC setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x12B44C8 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x12C7C28 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x1950F7C setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x1954254 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x20716D4 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x20A0800 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x20D55E4 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x21192A8 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x21193B8 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x2119750 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x21197A4 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x21DCCC4 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x2251AD0 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x23E6334 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x2620E9C setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x2631694 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x2631FEC setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x272A768 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x27394EC setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x2739510 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x2739990 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x273A4F8 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x273A5B8 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x273B24C setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x273F15C setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x273F55C setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x27428E4 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x279A17C setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x279A2AC setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x283A954 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x283AB6C setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x28C80F0 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x28CB740 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x2A0E99C setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x2A1A840 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x2A7C074 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x2A90DF0 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x2BF4258 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x2BF4508 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x2C99BCC setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x2D4F490 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x303956C setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x304F83C setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x30503A8 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x30AA9E0 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x30AAF44 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x30E22D8 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x30E253C setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x312B4E8 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x312B77C setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x3144D5C setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x31984E0 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x31991A0 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x3230618 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x323A858 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x323C0E8 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x3250F00 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x32C8018 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x32E9874 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x390F1CC setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x390F240 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x39F3D30 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x39F4BD0 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x39F4FBC setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x39F5068 setvalue(so+py,4, 0.0)so=gg.getRangesList('libUE4.so')[1].start py=0x39F5BE0 setvalue(so+py,4, 0.0)so=gg.getRangesList('libDuskPineK_1.so')[1].start py=0xBCFF0 setvalue(so+py,4, 0.0)so=gg.getRangesList('libDuskPineK_1.so')[1].start py=0xBD2AC setvalue(so+py,4, 0.0)so=gg.getRangesList('libDuskPineK_1.so')[1].start py=0xBD9DC setvalue(so+py,4, 0.0) string.toMusic("开启成功") end), }, { --2 CAswitch("翘腿加速", function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x62EB8,0xA8,0x24C,0x24} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1000000}})--开枪防拉 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x2CC,0x1558} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 75}})--浮 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x18,0x1C8,0x3C8} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1.4}})--加速 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 = 60}})--35 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x2CC,0x310,0x1AC} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 99999}})--蛇皮跳跃 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.2}})--减速 so=gg.getRangesList('libUE4.so')[1].start py=0XCBCB00 setvalue(so+py,16,-3.83692277e21)--突破 so=gg.getRangesList('libUE4.so')[1].start py=0X2D107D0 setvalue(so+py,16,0)--防拉 so=gg.getRangesList('libUE4.so')[1].start py=0X2684E28 setvalue(so+py,16,999)--慢动 so=gg.getRangesList('libUE4.so')[1].start py=0X2710C8C setvalue(so+py,16,0)---1.86389771e-20 so=gg.getRangesList('libUE4.so')[1].start py=0X26F9C00 setvalue(so+py,16,0)--定 so=gg.getRangesList('libUE4.so')[1].start py=0X2CB1EBC setvalue(so+py,16,0)--减速-5.5723836e27 so=gg.getRangesList('libUE4.so')[1].start py=0X2CB1EF4 setvalue(so+py,16,0)--增速-3.74440972e28 so=gg.getRangesList('libUE4.so')[1].start py=0X2C3B974 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X2C3B98C setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X2704F44 setvalue(so+py,16,0.26)--加速 string.toMusic("开启成功") end, function() so=gg.getRangesList('libUE4.so')[1].start py=0X2710C8C setvalue(so+py,16,-1.86389771e-20) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1FFEAC, 0x20} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 120}})--改帧率 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1FFEAC, 0x24} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 120}})--改帧率 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x2CC,0x1558} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = -6}})--防拉 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}})--翻倍 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x2CC,0x14F4} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 479.5}})--翻倍 local t = {"libUE4.so:bss", "Cb"} local tt = {0x62EB8,0xA8,0x24C,0x24} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 10000}})--开枪防拉 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x18,0x1C8,0x3C8} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1}})--加速 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x18,0x1C8,0x3D4} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 0.00050000002}})--加速 so=gg.getRangesList('libUE4.so')[1].start py=0X2684E28 setvalue(so+py,16,0)--慢动作 so=gg.getRangesList('libUE4.so')[1].start py=0X2704F44 setvalue(so+py,16,9.99999997e-7)--加速 so=gg.getRangesList('libUE4.so')[1].start py=0X2C3BA14 setvalue(so+py,16,10.90734863281) so=gg.getRangesList('libUE4.so')[1].start py=0X26F9C00 setvalue(so+py,16,-3.74440972e28)--秒定关 string.toMusic("关闭成功") end), CAswitch("60加速", function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x1FFEAC, 0x20} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 120}})--改帧率 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1FFEAC, 0x24} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 120}})--改帧率 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x2CC,0x1558} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 70}})--防拉 local t = {"libUE4.so:bss", "Cb"} local tt = {0x62EB8,0xA8,0x24C,0x24} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1000000}})--开枪防拉 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x2CC,0x1558} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 75}})--浮 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x18,0x1C8,0x3C8} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 0.1}})--加速--全局速度 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x18,0x1C8,0x3D4} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 0.2}})--加速--射速 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 = 70}})--443 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 = 888}})--翻倍 so=gg.getRangesList('libUE4.so')[1].start py=0XCBCB00 setvalue(so+py,16,-3.83692277e21)--突破 so=gg.getRangesList('libUE4.so')[1].start py=0X2D107D0 setvalue(so+py,16,0)--防拉 so=gg.getRangesList('libUE4.so')[1].start py=0X2684E28 setvalue(so+py,16,2)--慢动作 so=gg.getRangesList('libUE4.so')[1].start py=0X2704F44 setvalue(so+py,16,0.23)--加速--关键速度 so=gg.getRangesList('libUE4.so')[1].start py=0X2710C8C setvalue(so+py,16,0)---1.86389771e- string.toMusic("开启成功") end, function() so=gg.getRangesList('libUE4.so')[1].start py=0X2D107D0 setvalue(so+py,16,-6.15262313e27) so=gg.getRangesList('libUE4.so')[1].start py=0X2710C8C setvalue(so+py,16,-1.86389771e-20) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1FFEAC, 0x20} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 120}})--改帧率 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1FFEAC, 0x24} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 120}})--改帧率 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x2CC,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}})--翻倍 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x2CC,0x14F4} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 479.5}})--翻倍 local t = {"libUE4.so:bss", "Cb"} local tt = {0x62EB8,0xA8,0x24C,0x24} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 10000}})--开枪防拉 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x18,0x1C8,0x3C8} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1}})--加速 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x18,0x1C8,0x3D4} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 0.00050000002}})--加速 so=gg.getRangesList('libUE4.so')[1].start py=0X2684E28 setvalue(so+py,16,0)--慢动作 so=gg.getRangesList('libUE4.so')[1].start py=0X2704F44 setvalue(so+py,16,9.99999997e-7)--加速 string.toMusic("关闭") end), CAswitch("实战v2", function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x62EB8,0xA8,0x24C,0x24} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1000000}})--开枪防拉 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x2CC,0x1558} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 75}})--浮 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x18,0x1C8,0x3C8} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1.4}})--加速 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 = 60}})--35 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x2CC,0x310,0x1AC} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 99999}})--蛇皮跳跃 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.2}})--减速 so=gg.getRangesList('libUE4.so')[1].start py=0XCBCB00 setvalue(so+py,16,-3.83692277e21)--突破 so=gg.getRangesList('libUE4.so')[1].start py=0X2D107D0 setvalue(so+py,16,0)--防拉 so=gg.getRangesList('libUE4.so')[1].start py=0X2684E28 setvalue(so+py,16,999)--慢动 so=gg.getRangesList('libUE4.so')[1].start py=0X2710C8C setvalue(so+py,16,0)---1.86389771e-20 so=gg.getRangesList('libUE4.so')[1].start py=0X26F9C00 setvalue(so+py,16,0)--定 so=gg.getRangesList('libUE4.so')[1].start py=0X2CB1EBC setvalue(so+py,16,0)--减速-5.5723836e27 so=gg.getRangesList('libUE4.so')[1].start py=0X2CB1EF4 setvalue(so+py,16,0)--增速-3.74440972e28 so=gg.getRangesList('libUE4.so')[1].start py=0X2C3B974 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X2C3B98C setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X2704F44 setvalue(so+py,16,0.26)--加速 string.toMusic("开启成功") end, function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x18,0x1C8,0x3C8} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1}})--加速 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x2CC,0x310,0x1AC} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 0.0005}})--蛇皮跳跃 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}})--翻倍 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x2CC,0x14F4} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 479.5}})--翻倍 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}})--减速 local t = {"libUE4.so:bss", "Cb"} local tt = {0x211600, 0xA8, 0x30} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = -980}})--980 so=gg.getRangesList('libUE4.so')[1].start py=0X2710C8C setvalue(so+py,16,-1.86389771e-20) so=gg.getRangesList('libUE4.so')[1].start py=0X2684E28 setvalue(so+py,16,0)--慢动作 so=gg.getRangesList('libUE4.so')[1].start py=0X2704F44 setvalue(so+py,16,9.99999997e-7)--加速 so=gg.getRangesList('libUE4.so')[1].start py=0X2D107D0 setvalue(so+py,16,-6.15262313e27)--防拉 so=gg.getRangesList('libUE4.so')[1].start py=0X26F9C00 setvalue(so+py,16,-3.74440972e28)--定 so=gg.getRangesList('libUE4.so')[1].start py=0X2CB1EBC setvalue(so+py,16,-5.5723836e27)--减速-5.5723836e27 so=gg.getRangesList('libUE4.so')[1].start py=0X2CB1EF4 setvalue(so+py,16,-3.74440972e28)--增速-3.74440972e28 so=gg.getRangesList('libUE4.so')[1].start py=0X2C3B974 setvalue(so+py,16,6.16304121e-33) so=gg.getRangesList('libUE4.so')[1].start py=0X2C3B98C setvalue(so+py,16,2.6470042e-23) so=gg.getRangesList('libUE4.so')[1].start py=0X2704F44 setvalue(so+py,16,9.99999997e-7)-- string.toMusic("关闭成功") end), }, { --3 CAswitch("飞开", function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x62EB8,0xA8,0x24C,0x24} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1000000}})--开枪防拉 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x2CC,0x1558} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 75}})--浮 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x18,0x1C8,0x3C8} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1.4}})--加速 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 = 60}})--35 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x2CC,0x310,0x1AC} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 99999}})--蛇皮跳跃 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.2}})--减速 so=gg.getRangesList('libUE4.so')[1].start py=0XCBCB00 setvalue(so+py,16,-3.83692277e21)--突破 so=gg.getRangesList('libUE4.so')[1].start py=0X2D107D0 setvalue(so+py,16,0)--防拉 so=gg.getRangesList('libUE4.so')[1].start py=0X2684E28 setvalue(so+py,16,999)--慢动 so=gg.getRangesList('libUE4.so')[1].start py=0X2710C8C setvalue(so+py,16,0)---1.86389771e-20 so=gg.getRangesList('libUE4.so')[1].start py=0X26F9C00 setvalue(so+py,16,0)--定 so=gg.getRangesList('libUE4.so')[1].start py=0X2CB1EBC setvalue(so+py,16,0)--减速-5.5723836e27 so=gg.getRangesList('libUE4.so')[1].start py=0X2CB1EF4 setvalue(so+py,16,0)--增速-3.74440972e28 so=gg.getRangesList('libUE4.so')[1].start py=0X2C3B974 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X2C3B98C setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X2704F44 setvalue(so+py,16,0.26)--加速 string.toMusic("开启成功") end), CAswitch("飞关", function() so=gg.getRangesList('libUE4.so')[1].start py=0X2710C8C setvalue(so+py,16,-1.86389771e-20) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1FFEAC, 0x20} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 120}})--改帧率 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1FFEAC, 0x24} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 120}})--改帧率 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x2CC,0x1558} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = -6}})--防拉 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}})--翻倍 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x2CC,0x14F4} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 479.5}})--翻倍 local t = {"libUE4.so:bss", "Cb"} local tt = {0x62EB8,0xA8,0x24C,0x24} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 10000}})--开枪防拉 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x18,0x1C8,0x3C8} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 1}})--加速 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x18,0x1C8,0x3D4} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 0.00050000002}})--加速 so=gg.getRangesList('libUE4.so')[1].start py=0X2684E28 setvalue(so+py,16,0)--慢动作 so=gg.getRangesList('libUE4.so')[1].start py=0X2704F44 setvalue(so+py,16,9.99999997e-7)--加速 so=gg.getRangesList('libUE4.so')[1].start py=0X2C3BA14 setvalue(so+py,16,10.90734863281) so=gg.getRangesList('libUE4.so')[1].start py=0X26F9C00 setvalue(so+py,16,-3.74440972e28)--秒定关 string.toMusic("关闭成功") end), CAswitch("救", function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x211600, 0xA8, 0x30} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = -1000}}) end), CAswitch("上", function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x211600, 0xA8, 0x30} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 6000}}) end), CAswitch("定", function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x211600, 0xA8, 0x30} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 0}}) end), CAswitch("下", function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x211600, 0xA8, 0x30} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = -6000}}) end), }, { --4 CAswitch("细线特效", function() if gg.getRangesList("libUE4.so")[1] then gg.setValues({ [1] = { address = ({ [1] = gg.getRangesList("libUE4.so")[1].start + 18294536, [2] = gg.getRangesList("libUE4.so")[1].start + 18294544 })[1], flags = 16, value = 0 }, [2] = { address = ({ [1] = gg.getRangesList("libUE4.so")[1].start + 18294536, [2] = gg.getRangesList("libUE4.so")[1].start + 18294544 })[2], flags = 16, value = 0 } }) gg.toast("开启成功") end string.toMusic("开启成功") end), CAswitch("彩色特效", function() so=gg.getRangesList('libUE4.so')[1].start py=0x11726B8 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0x11726CC setvalue(so+py,16,0) string.toMusic("开启成功") end), CAswitch("自改特效", function() OP=gg.prompt({'10-99999 可以任意改其中的数\n推荐修改:8000'},{[1]='8000'},{[1]='number'}) if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消") end local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x32C,0x380,0xC} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = OP[1]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x32C,0x380,0x44} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = OP[1]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x32C,0x380,0x7C} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = OP[1]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EADC8,0x20,0x32C,0x380,0xB4} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = OP[1]}}) gg.toast("开启成功") string.toMusic("开启成功") end), }, { --5 CAswitch("自用范围", function() 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() string.toMusic("开启成功") end), CAswitch("无敌范围", function() gg.clearResults() 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 gg.toast("ᴘᴀʀᴀᴄʜᴜᴛᴇ") gg.setRanges(32) 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("范") qmnb = {{["memory"] = 32},{["name"] = ""},{["value"] = 46.0, ["type"] = 16},{["lv"] = 10.0, ["offset"] = -4, ["type"] = 16},}qmxg = {{["value"] = 3900.0, ["offset"] = -4, ["type"] = 16},}xqmnb(qmnb) gg.setRanges(32) local dataType = 16 Name = "瞬间落地" local search = {{3000.0,0},{5000.0,4},{1024.0,8},{89.0,36},} local modify = {{210000.0,0},{210000.0,4},{210000.0,8},} SearchWrite(search,modify,dataType) gg.toast("开启成功") string.toMusic("开启成功") end), CAswitch("7h范围", function() 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 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 tPUBGMH={} local offset=Search[k][2]-base local num=Search[k][1] for i,v in ipairs(result)do tPUBGMH[#tPUBGMH+1]={} tPUBGMH[#tPUBGMH].address=v.address+offset tPUBGMH[#tPUBGMH].flags=v.flags end tPUBGMH=gg.getValues(tPUBGMH) for i,v in ipairs(tPUBGMH)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) else return false end else return false end end Name = "成功" local Nc = 16384 local Lx = 16 local Sz1 = {{-1.42781105e28, 0}} local Sz2 = {{0, 0}} HaoGe(Nc, Lx, Sz1, Sz2) qmnb = { {["memory"] = 32}, {["name"] = "不减伤头部范围开启成功"}, {["value"] = 4740038608910024704, ["type"] = 32}, {["lv"] = 4752423507886342144, ["offset"] = 4, ["type"] = 32}, {["lv"] = 1106509824, ["offset"] = 8, ["type"] = 32}, } qmxg = { {["value"] = 400, ["offset"] = 4, ["type"] = 16}, {["value"] = 400, ["offset"] = 8, ["type"] = 16}, } xqmnb(qmnb) qmnb = { {["memory"] = 32}, {["name"] = "不减伤头部范围开启成功"}, {["value"] = 4719772412750681353, ["type"] = 32}, {["lv"] = 4742290408720039936, ["offset"] = 4, ["type"] = 32}, } qmxg = { {["value"] = -100000, ["offset"] = 8, ["type"] = 16}, } xqmnb(qmnb) qmnb = { {["memory"] = 32}, {["name"] = "不减伤头部范围开启成功"}, {["value"] = -4417614866316724128, ["type"] = 32}, {["lv"] = 4724276012378061487, ["offset"] = 4, ["type"] = 32}, } qmxg = { {["value"] = -1000000, ["offset"] = 12, ["type"] = 16}, } xqmnb(qmnb) qmnb = { {["memory"] = 32}, {["name"] = "开启成功"}, {["value"] = -4416487068034336677, ["type"] = 32}, {["lv"] = 4724276012378324073, ["offset"] = 4, ["type"] = 32}, } qmxg = { {["value"] = 500, ["offset"] = 8, ["type"] = 16}, {["value"] = -10000, ["offset"] = 12, ["type"] = 16}, } xqmnb(qmnb) string.toMusic("开启成功") end), }, { --7 CAswitch("退出[退出]", function() Lock.unUi() end), CAswitch("武家坡", function() gg.playMusic("https://link.hhtjim.com/163/1891431677.mp3") end), CAswitch("红色高跟鞋", function() gg.playMusic("https://link.hhtjim.com/163/1959190717.mp3") end), CAswitch("起风了", function() gg.playMusic("https://link.hhtjim.com/163/1330348068.mp3") end), CAswitch("纪念", function() gg.playMusic("https://link.hhtjim.com/163/1864789443.mp3") end), CAswitch("Shadow", function() gg.playMusic("https://link.hhtjim.com/163/1949606307.mp3") end), CAswitch("我只能离开", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=2642743705.mp3") end), CAswitch("凄美地", function() gg.playMusic("https://link.hhtjim.com/163/436346833.mp3") end), CAswitch("你从未离去", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1951069525.mp3") end), CAswitch("凭什么觉得", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=2020310968.mp3") end), CAswitch("心如止水", function() gg.playMusic("http://music.163.com/song/media/outer/url?id=1928002636.mp3") end), CAswitch("关闭音乐[关闭]", function() gg.playMusic("关闭成功") end), }, { --8 }, }) Lock.Ui(invoke, nil, function(err) print(err) end)