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--静态 local KKB=gg.getRangesList("libUE4.so:bss")[1].start local KKB=KKB+0x1EA3A8 local KKB=MNB(KKB)+0x20 local KKB=MNB(KKB)+0x2CC local KKB=MNB(KKB)+0xFC --一 MNBMVP(KKB-0x9C,1.3,16,true)--自身全局 MNBMVP(KKB-0xD4,0,16,true)--冻加 local KKB=gg.getRangesList("libUE4.so:bss")[1].start local KKB=KKB+0x1EA3A8 local KKB=MNB(KKB)+0x20 local KKB=MNB(KKB)+0x2CC local KKB=MNB(KKB)+0x310 local KKB=MNB(KKB)+0x180 MNBMVP(KKB+8,9999,16,true)--游速--8192改9999 local KKB=gg.getRangesList("libUE4.so:bss")[1].start local KKB=KKB+0x1EA3A8 local KKB=MNB(KKB)+0x20 local KKB=MNB(KKB)+0x2CC local KKB=MNB(KKB)+0x310 local KKB=MNB(KKB)+0x16C MNBMVP(KKB+0,2.5,16,true)--人物自身 local KKB=gg.getRangesList("libUE4.so:bss")[1].start local KKB=KKB+0x1EA3A8 local KKB=MNB(KKB)+0x20 local KKB=MNB(KKB)+0x2CC local KKB=MNB(KKB)+0x310 local KKB=MNB(KKB)+0x170 MNBMVP(KKB+0,-1,16)--惯性 local KKB=gg.getRangesList("libUE4.so:bss")[1].start local KKB=KKB+0x1EA3A8 local KKB=MNB(KKB)+0x20 local KKB=MNB(KKB)+0x2CC local KKB=MNB(KKB)+0x310 local KKB=MNB(KKB)+0x174 MNBMVP(KKB+0,99999,16,true)--人物自身 local KKB=gg.getRangesList("libUE4.so:bss")[1].start local KKB=KKB+0x1EA3A8 local KKB=MNB(KKB)+0x20 local KKB=MNB(KKB)+0x2CC local KKB=MNB(KKB)+0x310 local KKB=MNB(KKB)+0x2C MNBMVP(KKB+0,0,16,true)--冻加 by_wanhe({'libUE4.so:bss','Cb'},{0x1EA3A8,0x20,0x2CC,0x310,0x7C4},"修改","2200",16,"670") so=gg.getRangesList('libUE4.so')[1].start py=0XCB8B40 setvalue(so+py,16,-3.83692277e21) so=gg.getRangesList('libUE4.so')[1].start py=0X267C928 setvalue(so+py,16,2.5) so=gg.getRangesList('libUE4.so')[1].start py=0X270878C setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X2C33484 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X2C3349C setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X2C33528 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X2D082A0 setvalue(so+py,16,0) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EA3A8, 0x20, 0x2CC, 0x310, 0x138} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 70}})--上下坡 local t = {"libUE4.so:bss", "Cb"} local tt = {0x1EA3A8, 0x20, 0x2D8, 0x1558} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 70}})--浮空 local t = {"libUE4.so", "Cd"} local tt = {0x5C2A20, 0x78, 0x68, 0x3C8} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 0.6}})--A全局 local t = {"libUE4.so:bss", "Cb"} local tt = {0x62678,0xA8,0x2DC,0x24} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 4, value = 1000000}})--去除开枪