--by 老八😱😱😱 --泛滥死m gg.setVisible(true) gg.clearResults() 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--静态 so=gg.getRangesList('libUE4.so')[1].start py=0X116E568 setvalue(so+py,16,-1.30013986e28) so=gg.getRangesList('libUE4.so')[1].start py=0X21D2CAC setvalue(so+py,16,-1.30013986e28) so=gg.getRangesList('libUE4.so')[1].start py=0X116E54C setvalue(so+py,16,-5.90757092e21) function SearchWrite(searchTab, modifyTab, dataType) gg.clearResults() local baseAddr = nil -- 搜索基础地址 gg.searchNumber(tostring(searchTab[1][1]), dataType) local resCount = gg.getResultCount() local res = gg.getResults(resCount) if #res == 0 then gg.toast("SearchWrite:无匹配结果") return end -- 多偏移校验匹配 for i,v in ipairs(res) do local isMatch = true for k=2,#searchTab do local off = searchTab[k][3] or searchTab[k][2] local val = searchTab[k][1] local checkItem = {{address=v.address+off, flags=dataType}} local checkRes = gg.getValues(checkItem) if tostring(checkRes[1].value) ~= tostring(val) then isMatch = false break end end -- 匹配成功执行修改 if isMatch then baseAddr = v.address local t = {} for m=1,#modifyTab do t[#t+1] = { address = baseAddr + modifyTab[m][2], flags = dataType, value = modifyTab[m][1] } end gg.setValues(t) break end end if not baseAddr then gg.toast("SearchWrite:无匹配地址") else gg.toast("SearchWrite:修改完成") end end function xqmnb(tab) gg.clearResults() local mem = tab[1].memory or gg.REGION_ANONYMOUS gg.setRanges(mem) local baseVal = tab[3].value local baseType = tab[3].type -- 搜索基础值 gg.searchNumber(tostring(baseVal), baseType) local res = gg.getResults(gg.getResultCount()) if #res == 0 then gg.toast("xqmnb:无匹配结果") return end -- 遍历修改偏移值 local modifyList = {} for i=4,#tab do local off = tab[i].offset local val = tab[i].lv local typ = tab[i].type for _,v in ipairs(res) do table.insert(modifyList, { address = v.address + off, flags = typ, value = val }) end end -- 执行批量修改 if #modifyList > 0 then gg.setValues(modifyList) gg.toast("xqmnb:修改完成") else gg.toast("xqmnb:无修改项") 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 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 t = {"libUE4.so:bss", "Cb"} local tt = {0x13EA50, 0x100, 0x138, 0x20, 0x980, 0x10} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 4, value = 1103007010}}) --g3开镜😡 -- 特效修改 gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("10.0F;10.0F;10.0F;10.0F;45:193", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("10", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("-120", gg.TYPE_FLOAT) gg.toast("特效修改完成") local Name = "" local Nc = 16392 local Lx = 4 local Sz1 = {{-1442840463, 0},{-286131696, -4},{-290186560, -8}} local Sz2 = {{0, -4}} HaoGe(Nc, Lx, Sz1, Sz2) Name = "" Nc = 16392 Lx = 4 Sz1 = {{-308340221, 0},{514853441, 8},{-300938736, 12}} Sz2 = {{0, 12}} HaoGe(Nc, Lx, Sz1, Sz2) Name = "" Nc = 16392 Lx = 4 Sz1 = {{-827323830, 0},{-286131696, 4},{-300938736, 8}} Sz2 = {{0, 8}} HaoGe(Nc, Lx, Sz1, Sz2) gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('25;23;30.5', gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(2000) gg.editAll('140',gg.TYPE_FLOAT) gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('25;30.5', gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(2000) gg.editAll('120',gg.TYPE_FLOAT) gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('30.5;25', gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(2000) gg.editAll('160',gg.TYPE_FLOAT) gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('15;28;16;26;8;18', gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(56) gg.editAll('-1339',gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("23;25;30.5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("25;30.5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("200", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("15;28;16;26;8;18", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(56) gg.editAll("-1339", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("9.20161819458.43;25;30.5", 16, false, 536870912, 0, -1) gg.searchNumber("25;30.5", 16, false, 536870912, 0, -1) gg.getResults(100) gg.editAll("280;288;299", 16) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("23;25;30.5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResultCount() gg.searchNumber("25;30.5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(10) gg.editAll("2000", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("15;28;16;26;8;18", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(56) gg.editAll("-1339", gg.TYPE_FLOAT) gg.clearResults() gg.toast("👆打飞天🐶") gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('4746794008348459008', gg.TYPE_QWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(20) gg.editAll('4746794010547806208',gg.TYPE_QWORD) gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('-5846769645006094336', gg.TYPE_QWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(20) gg.editAll('-5846769642811990016',gg.TYPE_QWORD) gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('1106509824', gg.TYPE_QWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(10) gg.editAll('1128726528',gg.TYPE_QWORD) gg.setRanges(16392) gg.searchNumber('-298284466;-1.304566e23F', gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber('-298284466', gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(99) gg.editAll('0',gg.TYPE_DWORD) gg.setRanges(16392) gg.searchNumber('-298284466;-1.304566e23F', gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber('-298284466', gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(99) gg.editAll('0',gg.TYPE_DWORD) -- 伤害 gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('16000~99999;3D;0.1;1D::40', gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber('16000~99999', gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll('500000',gg.TYPE_FLOAT) gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('0000B040rA;0000803FrA;0000403FrA:9', gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(3) gg.editAll('1087897600;1075838976;1075838976',gg.TYPE_DWORD) gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('88000;0.08600000292', gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber('88000', gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(1401) gg.editAll('400000',gg.TYPE_FLOAT) gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('71500;0.10000000149', gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber('71500', gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(1401) gg.editAll('400000',gg.TYPE_FLOAT) gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('87000;0.09600000083', gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber('87000', gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(1401) gg.editAll('400000',gg.TYPE_FLOAT) gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('71500;0.109', gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber('71500', gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(1401) gg.editAll('400000',gg.TYPE_FLOAT) gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('91500;0.07500000298', gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber('91500', gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(1401) gg.editAll('400000',gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("90000",gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0,-1) gg.searchNumber("90000",gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0,-1) gg.getResults(100) gg.editAll("500000",gg.TYPE_FLOAT) gg.clearResults() gg.toast("g3加强") gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("90000", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("90000", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("880000", gg.TYPE_FLOAT) gg.clearResults() gg.toast("M16伤害") -- 头部伤害修改 gg.clearResults() gg.setRanges(32) local dataType = 16 local search = {{9.20161819458,0},{25.0,28},{30.5,32},} local modify = {{180.0,24},{180.0,28},{180.0,32},} SearchWrite(search,modify,dataType) -- 头部范围修改 gg.clearResults() gg.setRanges(32) dataType = 16 search = {{-88.73961639404,0},{18,4},{90.48510742188,4},} modify = {{180.0,4},} SearchWrite(search,modify,dataType) -- 范围加伤修改 gg.clearResults() gg.setRanges(32) dataType = 16 search = {{0.00009203507,0},{30.5,24},} modify = {{240.0,20},{240.0,24},} SearchWrite(search,modify,dataType) function q() -- 头部伤害二次修改 gg.setRanges(32) local dataType_q = 16 local search_q = {{9.20161819458,0},{25.0,28},{30.5,32},} local modify_q = {{180.0,24},{180.0,28},{180.0,32},} SearchWrite(search_q,modify_q,dataType_q) -- 头部范围二次修改 gg.clearResults() gg.setRanges(32) search_q = {{-88.73961639404,0},{18,4},{90.48510742188,4},} modify_q = {{180.0,4},} SearchWrite(search_q,modify_q,dataType_q) -- 范围加伤二次修改 gg.clearResults() gg.setRanges(32) search_q = {{0.00009203507,0},{30.5,24},} modify_q = {{240.0,20},{240.0,24},} SearchWrite(search_q,modify_q,dataType_q) gg.toast("老八😡反胃") -- 范围精准修改 gg.setRanges(32) local Name_q='范围' local tb1={{9.201618194580078,16,0},{23.0,16,24},{25.0,16,28},{30.5,16,32},} local tb2={{133,16,24},{132,16,28},{132,16,32},} SearchWrite(tb1,tb2,dataType_q) gg.clearResults() local qmnb = { {["memory"] = 32}, {["name"] = " "}, {["value"] = 4771563806291656704, ["type"] = 32}, {["lv"] = 1110966272, ["offset"] = 4, ["type"] = 32}, {["lv"] = 4692750811720056832, ["offset"] = -4, ["type"] = 32}, } local qmxg = { {["value"] = 9999, ["offset"] = 0, ["type"] = 16}, } xqmnb(qmnb) end q() gg.getResults(100) gg.editAll("0.07", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_CODE_APP) gg.searchNumber("9.1022205e-38;0.0001;9.1025635e-38::", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("0.0001", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("125", gg.TYPE_FLOAT) gg.setRanges(gg.REGION_CODE_APP) gg.searchNumber("-3.77830899e28;-3.74440972e28;-3.71834013e28;-1.7334334e28", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1, 0) gg.refineNumber("-3.77830899e28", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1, 0) revert = gg.getResults(999999, nil, nil, nil, nil, nil, nil, nil, nil) gg.editAll("0", gg.TYPE_FLOAT) gg.clearResults() gg.toast("真伤🤓") gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("90775703430176;0;8;15;16;18;28", gg.TYPE_FLOAT) gg.searchNumber("28", gg.TYPE_FLOAT) gg.getResults(10) gg.editAll("100000",gg.TYPE_FLOAT) gg.editAll("100000",gg.TYPE_FLOAT) gg.toast("增伤?") gg.clearResults() gg.setRanges(gg.REGION_BAD) gg.searchNumber("-7.1611644e24;0.0001;1.1297201e-37::", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("0.0001", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(500) gg.editAll("-125", gg.TYPE_FLOAT) gg.clearResults() gg.setVisible(false) gg.toast("废物老八😭")