function setvalue(address,flags,value,freeze) if address == 0 then return end local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value tt[1].freeze=freeze if freeze==false then gg.setValues(tt) end gg.addListItems(tt) end function getvalue(address,flags,value,freeze) if address == 0 then return end local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags gg.addListItems(tt) end function autovalue(address,flags,_o,_v,freeze) if address == 0 then return end local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].freeze=freeze local _v_ = gg.getValues(tt)[1].value if math.abs(_v_-_o) < 1e-7 then tt[1].value=_v else tt[1].value=_o end if freeze==false then gg.setValues(tt) end gg.addListItems(tt) end function readD(address) return gg.getValues({{address = address, flags = 4}})[1].value 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 _Q = tonumber(0x167ba0fe) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end local _S = gg.getRangesList(N_So[1])[1] 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 else S[_].value = S[_].value & 0xFFFFFFFFFF 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 ttt = Get_Address(t_So, t_Offset, _bit) if ttt ~= nil then local _A = string.format('0x%X', ttt) return _A end return 0 end function RDI(address) return gg.getValues({{address = address, flags = 4}})[1].value & 0xFFFFFFFF end function RQI(address) return gg.getValues({{address = address, flags = gg.TYPE_QWORD}})[1].value end function PS() 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 setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) gg.addListItems(tt) end gc0=gg.getRangesList('libUE4.so')[1].start gc=gg.getRangesList('libgcloud.so')[1].start gc1=gc0+0x63587BC safe=gc+0x1000 py=0x14CF8418 setvalue(gc0+py,4,0) py=0x1000 setvalue(gc+py,4,506015744) py=0x1004 setvalue(gc+py,4,1476395080) py=0x1008 setvalue(gc+py,4,-702611200) py=0x100C setvalue(gc+py,32,gc1) py=0x1018 setvalue(gc+py,4,-698416192) py=0x12840E60 setvalue(gc0+py,32,gc+0x1018) gg.clearList() function Main() menu = gg.multiChoice({ "加速(开)", "加速(关)", "挥拳提速(翻倍)", "挥拳加速1", "挥拳加速提速版2", "除草除树", "退出脚本", }, nil, os.date" 跑起来的那一刻 还以为真的拥有了传家宝/. 推荐使用挥拳加速可减少冒烟概率 by兔头 ") if menu == nil then else if menu[1] == true then A1() end if menu[2] == true then A2() end if menu[3] == true then A3() end if menu[4] == true then A4() end if menu[5] == true then A5() end if menu[6] == true then A6() end if menu[7] == true then kk() end end XGCK = -1 end function A1() local b={"libUE4.so:bss","Cb"} local function p(o)return S_Pointer(b,o,true)end local function f(m,v) local c={0x9FB410,0x30,0x20,0xA0,m,0x6B8,0x1c8} if gg.getValues({{address=p(c),flags=16}})[1].value==v then local s={0x9FB410,0x30,0x20,0xA0,m,0x6B8,0x0} local a=tonumber(p(s))or tonumber(p(s):gsub("0x",""),16) gg.setValues({{address=p({0x9FB410,0x30,0x3478,0x670}),flags=32,value=a}})--修改本人地皮 end end--以上为锁地皮 f(0x10,1000000256.0)f(0xA0,2000000512.0)f(0x118,1000000256.0)f(0x140,2000000512.0)--判断地皮是否加载 py=0x12523FF8 setvalue(gc0+py,32,safe) --加速 end function A2() py=0x12523FF8 setvalue(gc0+py,32,gc1) end function A3() local UE4={0x9FB410,0x30,0x3478,0x660,0x280} local UE5={0x9FB410,0x30,0x3478,0x660,0x28C} while true do gg.sleep(5) local a=RDI(S_Pointer({"libUE4.so"},{0x15744410,0x30,0x3478,0x3438},true))==1 setvalue(S_Pointer({"libUE4.so"},{0x153A5004},true),4,a and 1 or 0,false) gg.setValues({ {address=S_Pointer({"libUE4.so:bss","Cb"},UE4,true),flags=16,value=a and-999 or 2}, {address=S_Pointer({"libUE4.so:bss","Cb"},UE5,true),flags=16,value=a and 500 or 2048} }) end end function A4() local b={"libUE4.so:bss","Cb"} local function p(o)return S_Pointer(b,o,true)end local function f(m,v) local c={0x9FB410,0x30,0x20,0xA0,m,0x6B8,0x1c8} if gg.getValues({{address=p(c),flags=16}})[1].value==v then local s={0x9FB410,0x30,0x20,0xA0,m,0x6B8,0x0} local a=tonumber(p(s))or tonumber(p(s):gsub("0x",""),16) gg.setValues({{address=p({0x9FB410,0x30,0x3478,0x670}),flags=32,value=a}}) end end f(0x10,1000000256.0)f(0xA0,2000000512.0)f(0x118,1000000256.0)f(0x140,2000000512.0) local py=0x12523FF8 while true do gg.sleep(5) local a=RDI(S_Pointer({"libUE4.so"},{0x15744410,0x30,0x3478,0x3438},true))==1 if a then setvalue(gc0+py,32,safe) else py=0x12523FF8 setvalue(gc0+py,32,gc1) end end end function A5() local b={"libUE4.so:bss","Cb"} local function p(o)return S_Pointer(b,o,true)end local function f(m,v) local c={0x9FB410,0x30,0x20,0xA0,m,0x6B8,0x1c8} if gg.getValues({{address=p(c),flags=16}})[1].value==v then local s={0x9FB410,0x30,0x20,0xA0,m,0x6B8,0x0} local a=tonumber(p(s))or tonumber(p(s):gsub("0x",""),16) gg.setValues({{address=p({0x9FB410,0x30,0x3478,0x670}),flags=32,value=a}}) end end f(0x10,1000000256.0)f(0xA0,2000000512.0)f(0x118,1000000256.0)f(0x140,2000000512.0) local UE4={0x9FB410,0x30,0x3478,0x660,0x280} local UE5={0x9FB410,0x30,0x3478,0x660,0x28C} local py=0x12523FF8 while true do gg.sleep(5) local a=RDI(S_Pointer({"libUE4.so"},{0x15744410,0x30,0x3478,0x3438},true))==1 setvalue(gc0+(a and py or 0x12523FF8),32,a and safe or gc1) setvalue(S_Pointer({"libUE4.so"},{0x153A5004},true),4,a and 1 or 0,false) gg.setValues({ {address=S_Pointer({"libUE4.so:bss","Cb"},UE4,true),flags=16,value=a and -999 or 2}, {address=S_Pointer({"libUE4.so:bss","Cb"},UE5,true),flags=16,value=a and 500 or 2048} }) end end function A6() local t = {"libUE4.so:bss", "Cb"} local tt = {0x9F6B28,0x4} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0}}) end function kk() os.exit()end while true do if gg.isVisible(true) then XGCK = 1 gg.setVisible(false)end gg.clearResults() if XGCK == 1 then Main()end end