toMusic('欢迎使用窝瓜项目测试') draw.setSize(49) draw.setStyle('填充') draw3 = require('draw3') text1 = draw3.text('窝瓜项目测试', 20,450)draw.setColor('#00FFFF')--------屏幕字体 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(0x2C4D6BCE) 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 readPointer(name, offset, i) local re = gg.getRangesList(name) local x64 = gg.getTargetInfo().x64 local va = {[true]=32, [false]=4} if re[i or 1] then local addr = re[i or 1].start + offset[1] for i = 2, #offset do addr = gg.getValues({{address=addr, flags=va[x64]}}) if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end function gg.edits(addr, Table) local Table1 = {{}, {}} for k, v in ipairs(Table) do local value = {address = addr+v[3], value = v[1], flags = v[2], freeze = v[4]} if v[4] then Table1[2][#Table1[2]+1] = value else Table1[1][#Table1[1]+1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) end function xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end function Main() SN = gg.choice({ "选择进程", "国体防闪", "部分功能", "局内功能", "加速功能", "探头路飞", "范围功能", "退出脚本", }, nil, "只适配2.8.3 32位\n框架✓ROOT✓虚拟机✓") if SN==1 then C2() end if SN==2 then C3() end if SN==3 then h() end if SN==4 then sz1() end if SN==5 then sz2() end if SN==6 then sz3() end if SN==7 then sz4() end if SN==8 then os.exit() end FX1=0 end function h() menu1 = gg.multiChoice({ '无后', '射速', '防抖', '聚点', '特效', '返回主页'}, nil,os.date("部分功能")) if menu1 == nil then else if menu1[1] == true then h1() end if menu1[2] == true then h2() end if menu1[3] == true then h3() end if menu1[4] == true then h4() end if menu1[5] == true then h5() end if menu1[6] == true then Main() end end GLWW=-1 end --XAX特效 0x301D1F4 修改0 恢复-1.30013986e28 function h5() so=gg.getRangesList('libUE4.so')[1].start py=0x301D1F4 setvalue(so+py,16,0,-1.30013986e28) end function h4() so=gg.getRangesList('libUE4.so')[1].start py=0x2868E44--聚点 setvalue(so+py,16,0) string.toMusic('开启成功')---语音 end function h2() so=gg.getRangesList('libUE4.so')[1].start py=0x340184C setvalue(so+py,16,0) string.toMusic('射速开启成功')---语音 end function h3() so=gg.getRangesList('libUE4.so')[1].start py=0x5B9A04C--防抖 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0x5C44790--防抖 setvalue(so+py,16,0) string.toMusic('开启成功')---语音 end function h1() so=gg.getRangesList('libUE4.so')[1].start py=0x286E298-- setvalue(so+py,16,0) string.toMusic('无后开启成功')---语音 end function C2() open = (self) gg.setProcessX() close = (self) toMusic('选择进程')---语音 end function C3() local t = {"libanogs.so:bss", "Cb"} local tt = {0xEB4} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = 4096, freeze = true}}) local tt = {0xF68} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = 4096, freeze = true}}) local tt = {0xF78} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = 4096, freeze = true}}) local tt = {0xFE4} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = 4096, freeze = true}}) toMusic('国体32位防闪开启成功')---语音 end function sz2() local cfg_file = gg.EXT_FILES_DIR.."/"..gg.getFile():match("[^/]+$")..'(sz2).lua' local chunk = loadfile(cfg_file) local cfg = nil if chunk ~= nil then cfg = chunk() end if cfg == nil then cfg = {false,false,false,false,0.11,false,false} end jz1=gg.prompt({ "开启加速V1", "关闭加速V1", "开启加了V2", "关闭加速V2", "加速V3调节", "开启自改加速V3", "关闭加速V3", "返回主页", },cfg,{"checkbox","checkbox","checkbox","checkbox","text","checkbox","checkbox","checkbox"}) if jz1 == nil then else gg.saveVariable(jz1, cfg_file) if jz1[1] == true then b1()end if jz1[2] == true then b2()end if jz1[3] == true then b3()end if jz1[4] == true then b4()end if jz1[5] == true then end if jz1[6] == true then b5()end if jz1[7] == true then b6()end if jz1[8] == true then Main() end end GLWW=-1 end function b1() so=gg.getRangesList("libUE4.so")[1].start py=0x5C99DA0 setvalue(so+py,16,0.0) py=0x7EC5BD4 setvalue(so+py,16,0.0) py=0x635C73C setvalue(so+py,16,22.0) end function b2() so=gg.getRangesList("libUE4.so")[1].start py=0x5C99DA0 setvalue(so+py,16,-6.154944759704602E27) py=0x7EC5BD4 setvalue(so+py,16,-1.238242388799446E28) py=0x635C73C setvalue(so+py,16,25.725290298461914) end function b3() so=gg.getRangesList("libUE4.so")[1].start py=0x5BA52C8 setvalue(so+py,16,0.0) py=0x5C99DA0 setvalue(so+py,16,0.0) py=0x635C73C setvalue(so+py,16,22.0) end function b4() so=gg.getRangesList("libUE4.so")[1].start py=0x5BA52C8 setvalue(so+py,16,-5.108018541693195E27) py=0x5C99DA0 setvalue(so+py,16,-6.154944759704602E27) py=0x635C73C setvalue(so+py,16,25.725290298461914) end function b5() so=gg.getRangesList("libUE4.so")[1].start py=0x5BA52C8 setvalue(so+py,16,0.0) py=0x5C99DB0 setvalue(so+py,16,jz1[5]) py=0x635C73C setvalue(so+py,16,22.0) end function b6() so=gg.getRangesList("libUE4.so")[1].start py=0x5BA52C8 setvalue(so+py,16,-5.108018541693195E27) py=0x5C99DB0 setvalue(so+py,16,9.999999974752427E-7) py=0x635C73C setvalue(so+py,16,25.725290298461914) end function sz1() local cfg_file = gg.EXT_FILES_DIR.."/"..gg.getFile():match("[^/]+$")..'(sz1).lua' local chunk = loadfile(cfg_file) local cfg = nil if chunk ~= nil then cfg = chunk() end if cfg == nil then cfg = {250,false,120,false,5,false,5,false,1405039,false} end szz1=gg.prompt({ "广角调节", "开启广角", "帧率调节", "开启锁帧", "开启弩箭穿墙", "关闭弩箭穿墙", "美化代码", "开启套装美化", "返回主页", },cfg,{"text","checkbox","text","checkbox","checkbox","checkbox","text","checkbox","checkbox"}) if szz1 == nil then else gg.saveVariable(szz1, cfg_file) if szz1[1] == true then end if szz1[2] == true then a1()end if szz1[3] == true then end if szz1[4] == true then a2()end if szz1[5] == true then a3() end if szz1[6] == true then a4()end if szz1[7] == true then end if szz1[8] == true then a5()end if szz1[9] == true then Main() end end GLWW=-1 end function a1() so=gg.getRangesList('libUE4.so')[1].start--cd广角 py=0x5C47EB4 setvalue(so+py,16,szz1[1]) end function a2() local t = {"libUE4.so:bss", "Cb"} local tt = {0x358200, 0x20} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = szz1[3]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x358200, 0x24} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = szz1[3]}}) end function a3() local t = staticstart({"libUE4.so:bss", "Cb",1}) local tt = {0x3979A0} local ttt = GotoPointer(t, tt) setvalue(ttt,Q,9074961892185783746) local t = staticstart({"libUE4.so:bss", "Cb",1}) local tt = {0x3979A0+0x4} local ttt = GotoPointer(t, tt) setvalue(ttt,Q,9074961892185783746) local t = staticstart({"libUE4.so:bss", "Cb",1}) local tt = {0x3979A0+0x8} local ttt = GotoPointer(t, tt) setvalue(ttt,Q,9074961892185783746) end function a4() local t = staticstart({"libUE4.so:bss", "Cb",1}) local tt = {0x3979A0} local ttt = GotoPointer(t, tt) setvalue(ttt,Q,3497450139768418399) local t = staticstart({"libUE4.so:bss", "Cb",1}) local tt = {0x3979A0+0x4} local ttt = GotoPointer(t, tt) setvalue(ttt,Q,3497450139768418399) local t = staticstart({"libUE4.so:bss", "Cb",1}) local tt = {0x3979A0+0x8} local ttt = GotoPointer(t, tt) setvalue(ttt,Q,3497450139768418399) end function a5() local t = {"libUE4.so:bss", "Cb"} local tt = {0x8D0B51C, 0x0, 0x2000, 0x2A0} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = szz1[7]}}) end function sz3() local cfg_file = gg.EXT_FILES_DIR.."/"..gg.getFile():match("[^/]+$")..'(sz3).lua' local chunk = loadfile(cfg_file) local cfg = nil if chunk ~= nil then cfg = chunk() end if cfg == nil then cfg = {300,300,280,280,280,100,false} end lf1=gg.prompt({ "左探头路飞上调节", "左探头路飞下调节", "右探头路飞上调节", "右探头路飞下调节", "探头路飞左调节", "探头路飞右调节", "是否开启探头路飞", "返回主页", },cfg,{"text","text","text","text", "text","text","checkbox","checkbox"}) if lf1 == nil then else gg.saveVariable(lf1, cfg_file) if lf1[1] == true then end if lf1[2] == true then end if lf1[3] == true then end if lf1[4] == true then end if lf1[5] == true then end if lf1[6] == true then end if lf1[7] == true then lf()end if lf1[8] == true then Main() end end GLWW=-1 end function lf() while true do--//循环 if gg.isVisible(true) then Yk = gg.alert("检测循环时打开修改器 是否退出?","退出","运行") gg.sleep(300) if Yk~=1 and CB~=2 then gg.setVisible(false) else end if Yk== 1 then os.exit() end end while true do--//循环 ddsl = readPointer('libUE4.so:bss', {0x3A1D8, 0x0, 0x48, 0x8, 0x17c}, 1) --定点锁链 lhsl = readPointer('libUE4.so:bss', {0x3A1D8,0x0,0x90,0x608,0x38}, 1) -----0x3A1D8+0x0+0x90+0x608+0x38 --灵魂锁链 ttsl = readPointer('libUE4.so:bss', {0x3A1D8,0x0,0x458,0x9B0,0x590,0x558}, 1) --探头锁链 local jznbsl = readPointer('libUE4.so:bss', {0x459148,0x20,0x270}, 1)--矩阵头 --矩阵南北 local jzdxsl = readPointer('libUE4.so:bss', {0x459148,0x20,0x27C}, 1)--+C --矩阵东西 local jzsxsl = readPointer('libUE4.so:bss', {0x459148,0x20,0x29C}, 1)--+2C --矩阵上下 zbxsl = readPointer('libUE4.so:bss', {0x3A1D8,0x0,0x1B0,0x1B0}, 1) --坐标x实体 zbysl = readPointer('libUE4.so:bss', {0x3A1D8,0x0,0x1B0,0x1B4}, 1) --坐标y实体 zbzsl = readPointer('libUE4.so:bss', {0x3A1D8,0x0,0x1B0,0x1B8}, 1) --坐标z实体 ttlf={} ttlf[1]={} ttlf[1].address=ttsl ttlf[1].flags=16 ttlf[2]={} ttlf[2].address=jznbsl ttlf[2].flags=16 ttlf[3]={} ttlf[3].address=jzdxsl ttlf[3].flags=16 ttlf[4]={} ttlf[4].address=jzsxsl ttlf[4].flags=16 ttlf[5]={} ttlf[5].address=zbxsl ttlf[5].flags=16 ttlf[6]={} ttlf[6].address=zbysl ttlf[6].flags=16 ttlf[7]={} ttlf[7].address=zbzsl ttlf[7].flags=16 jznb=gg.getValues(ttlf)[2].value--矩阵方位南北 jzdx=gg.getValues(ttlf)[3].value--矩阵方位东西 jzsx=gg.getValues(ttlf)[4].value--矩阵方位上下 zbx=gg.getValues(ttlf)[5].value--坐标x zby=gg.getValues(ttlf)[6].value--坐标y zbz=gg.getValues(ttlf)[7].value--坐标z while(true)do--开始循环 tt=gg.getValues(ttlf)[1].value--探头值 if tt<0 then--左探头 gg.edits(ddsl, {{0, 16, 0, false}}) gg.edits(lhsl, {{0, 4, 0, false}}) if jzsx>-0.8 and jzsx<0.5 then--视角中 if jznb<-0.5 and jznb>-1.2 then--南 gg.edits(zbxsl, {{zbx+lf1[6], 16, 0, true}}) gg.edits(zbysl, {{zby+lf1[5], 16, 0, true}}) gg.edits(zbzsl, {{zbz, 16, 0, true}}) gg.toast("南") else if jznb>0.5 and jznb<1.2 then--北 gg.edits(zbxsl, {{zbx-lf1[6], 16, 0, true}}) gg.edits(zbysl, {{zby-lf1[5], 16, 0, true}}) gg.edits(zbzsl, {{zbz, 16, 0, true}}) gg.toast("北") else if jzdx<-0.5 and jzdx>-1.2 then--西 gg.edits(zbxsl, {{zbx-lf1[5], 16, 0, true}}) gg.edits(zbysl, {{zby+lf1[6], 16, 0, true}}) gg.edits(zbzsl, {{zbz, 16, 0, true}}) gg.toast("西") else if jzdx>0.5 and jzdx<1.2 then--东 gg.edits(zbxsl, {{zbx+lf1[5], 16, 0, true}}) gg.edits(zbysl, {{zby-lf1[6], 16, 0, true}}) gg.edits(zbzsl, {{zbz, 16, 0, true}}) gg.toast("东") end end end end--东南西北结束 end--视角中结束 if jzsx>0.5 then--视角上 gg.edits(zbxsl, {{zbx, 16, 0, true}}) gg.edits(zbysl, {{zby, 16, 0, true}}) gg.edits(zbzsl, {{zbz+lf1[1], 16, 0, true}}) end--视角上结束 if jzsx<-0.8 then--视角下 gg.edits(zbxsl, {{zbx, 16, 0, true}}) gg.edits(zbysl, {{zby, 16, 0, true}}) gg.edits(zbzsl, {{zbz-lf1[2], 16, 0, true}}) end--视角下结束 end--左探头结束 if tt>0 then--右探头 gg.edits(ddsl, {{0, 16, 0, false}}) gg.edits(lhsl, {{0, 4, 0, false}}) if jzsx>-0.8 and jzsx<0.5 then--视角中 if jznb<-0.5 and jznb>-1.2 then--南 gg.edits(zbxsl, {{zbx-lf1[6], 16, 0, true}}) gg.edits(zbysl, {{zby+lf1[5], 16, 0, true}}) gg.edits(zbzsl, {{zbz, 16, 0, true}}) else if jznb>0.5 and jznb<1.2 then--北 gg.edits(zbxsl, {{zbx+lf1[6], 16, 0, true}}) gg.edits(zbysl, {{zby-lf1[5], 16, 0, true}}) gg.edits(zbzsl, {{zbz, 16, 0, true}}) else if jzdx>-1.2 and jzdx<-0.5 then--西 gg.edits(zbxsl, {{zbx-lf1[5], 16, 0, true}}) gg.edits(zbysl, {{zby-lf1[6], 16, 0, true}}) gg.edits(zbzsl, {{zbz, 16, 0, true}}) else if jzdx>0.5 and jzdx<1.2 then--东 gg.edits(zbxsl, {{zbx+lf1[5], 16, 0, true}}) gg.edits(zbysl, {{zby+lf1[6], 16, 0, true}}) gg.edits(zbzsl, {{zbz, 16, 0, true}}) end end end end--东南西北结束 end--视角中结束 if jzsx>0.5 then--视角上 gg.edits(zbxsl, {{zbx, 16, 0, true}}) gg.edits(zbysl, {{zby, 16, 0, true}}) gg.edits(zbzsl, {{zbz+lf1[3], 16, 0, true}}) end--视角上结束 if jzsx<-0.8 then--视角下 gg.edits(zbxsl, {{zbx, 16, 0, true}}) gg.edits(zbysl, {{zby, 16, 0, true}}) gg.edits(zbzsl, {{zbz-lf1[4], 16, 0, true}}) end--视角下结束 end--右探头结束 if tt == 0 then--不探头 gg.edits(lhsl, {{1000000, 4, 0, false}}) gg.edits(ddsl, {{1, 16, 0, false}}) gg.removeListItems(ttlf)--解冻 jznb=gg.getValues(ttlf)[2].value--矩阵方位南北 jzdx=gg.getValues(ttlf)[3].value--矩阵方位东西 jzsx=gg.getValues(ttlf)[4].value--矩阵方位上下 zbx=gg.getValues(ttlf)[5].value--坐标x zby=gg.getValues(ttlf)[6].value--坐标y zbz=gg.getValues(ttlf)[7].value--坐标z if gg.isVisible(true) then Yk = gg.alert("检测循环时打开修改器 是否退出?","退出","运行") gg.sleep(50) if Yk~=1 and CB~=2 then gg.setVisible(false) else end if Yk== 1 then os.exit() end end end end end end end function sz4() local cfg_file = gg.EXT_FILES_DIR.."/"..gg.getFile():match("[^/]+$")..'(sz4).lua' local chunk = loadfile(cfg_file) local cfg = nil if chunk ~= nil then cfg = chunk() end if cfg == nil then cfg = {300,305,false} end nc1=gg.prompt({ "头部范围25调节", "头部范围30.5调节", "是否开启头部范围", "返回主页", },cfg,{"text","text","checkbox","checkbox"}) if nc1 == nil then else gg.saveVariable(nc1, cfg_file) if nc1[1] == true then end if nc1[2] == true then end if nc1[3] == true then ncfw()end if nc1[4] == true then Main() end end GLWW=-1 end function ncfw() local qmnb= { {['memory']=32}, {['name']='范围'}, {['value']=9.201618194580078, ['type']=16}, {['lv']=25.0,['offset']=28, ['type']=16}, {['lv']=30.5,['offset']=32, ['type']=16}, } local qmxg= { {['value']=nc1[1],['offset']=28,['type']=16}, {['value']=nc1[2],['offset']=32,['type']=16}, } xqmnb(qmnb,qmxg) gg.toast("自改头部范围开启成功") end function sb() os.exit() end while true do if gg.isVisible(true) then FX1 = nil gg.setVisible(false) end if FX1 == nil then Main() end end