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 = {0x1E5C2C,0x0,0x20,0x32C,0x380,0xC} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = -9999}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1E5C2C,0x0,0x20,0x32C,0x380,0x44} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = -9999}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1E5C2C,0x0,0x20,0x32C,0x380,0x7C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = -9999}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1E5C2C,0x0,0x20,0x32C,0x380,0xB4} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = -9999}}) so=gg.getRangesList('libUE4.so')[1].start py=0X116E568 setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0x22D2CAC setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X116E578--蓝 setvalue(so+py,16,0) 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 = {0x1E5C2C,0x0,0x20,0x32C,0x380,0xC} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = -450}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1E5C2C,0x0,0x20,0x32C,0x380,0x44} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = -450}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1E5C2C,0x0,0x20,0x32C,0x380,0x7C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = -450}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x1E5C2C,0x0,0x20,0x32C,0x380,0xB4} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = -450}}) so=gg.getRangesList('libUE4.so')[1].start py=0X116E53C setvalue(so+py,16,0) so=gg.getRangesList('libUE4.so')[1].start py=0X116E568 setvalue(so+py,16,0) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("25;23;30.5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(3) gg.editAll("160", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("25;30.5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(10) gg.editAll("250", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("30.5;25", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(10) gg.editAll("220", gg.TYPE_FLOAT) gg.clearResults() gg.toast("头范围") gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("25;23;30.5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(3) gg.editAll("160", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("25;30.5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(10) gg.editAll("250", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("30.5;25", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(10) gg.editAll("220", gg.TYPE_FLOAT) gg.clearResults() gg.toast("头") gg.clearResults() gg.setRanges(32) gg.searchNumber("25;30.5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(999) gg.editAll("371;365", gg.TYPE_FLOAT) gg.alert("头部范围") gg.setRanges(gg.REGION_CODE_APP) gg.searchNumber("-298284466", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(15) gg.editAll("0", gg.TYPE_DWORD) gg.clearResults() gg.toast("瞬击") gg.clearList() gg.searchNumber("9.20161819458;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("345", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_CODE_APP) gg.searchNumber("150;85;45;-129;-85", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("55", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(30) gg.editAll("99", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("9.201618;30.5;25", 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(10) gg.editAll("500", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber(9.201618194580078, gg.TYPE_FLOAT) gg.getResultsCount() gg.clearResults() gg.clearResults() gg.setRanges(gg.REGION_BAD) gg.alert("辞世爆头") gg.getResults(10) gg.editAll("400", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_C_DATA | gg.REGION_CODE_APP) 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("2", gg.TYPE_DWORD) gg.clearResults() gg.clearResults() gg.setRanges(gg.REGION_C_DATA | gg.REGION_CODE_APP) gg.searchNumber("-1,883,348,481,058,764,210", gg.TYPE_QWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(99) gg.editAll("-1,883,348,485,055,444,540", gg.TYPE_QWORD) gg.clearResults() gg.toast("2") gg.setRanges(131072) gg.searchNumber("-88.66608428955;26:512", 16, false, 536870912, 0, -1) gg.searchNumber("26", 16, false, 536870912, 0, -1) gg.getResults(2) gg.editAll("-999", 16) gg.clearResults() gg.searchNumber("-88.73961639404;28:512", 16, false, 536870912, 0, -1) gg.searchNumber("28", 16, false, 536870912, 0, -1) gg.getResults(2) gg.editAll("-999", 16) gg.clearResults() gg.setRanges(32) gg.searchNumber("9.201618;30.5;25", 16, false, 536870912, 0, -1) gg.searchNumber("30.5;25", 16, false, 536870912, 0, -1) gg.getResults(10) gg.editAll("500", 16) gg.clearResults() gg.setRanges(16) gg.searchNumber("2048D;1F", 16, false, 536870912, 0, -1) gg.searchNumber("1", 16, false, 536870912, 0, -1) gg.getResults(100) gg.editAll("1", 16) gg.clearResults() gg.setRanges(16384) gg.searchNumber("9.1022205e-38;0.0001;9.1025635e-38::", 16, false, 536870912, 0, -1) gg.searchNumber("0.0001", 16, false, 536870912, 0, -1) gg.getResults(100) gg.editAll("1", 16) gg.clearResults() gg.setRanges(131072) gg.searchNumber("-7.1611644e24;0.0001;1.1297201e-37::", 16, false, 536870912, 0, -1) gg.searchNumber("0.0001", 16, false, 536870912, 0, -1) gg.getResults(500) gg.editAll("-500", 16) gg.toast("辞世自用") gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("30.5;25", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(10) gg.editAll("220", gg.TYPE_FLOAT) gg.clearResults() gg.toast("辞世") gg.clearResults() gg.setRanges(32) gg.searchNumber("25;30.5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(999) gg.editAll("371;365", gg.TYPE_FLOAT) gg.refineNumber("65795~590336", gg.TYPE_DWORD) gg.getResults(50000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setVisible(false) gg.searchNumber("4398046511104;544434349408256", gg.TYPE_QWORD) gg.refineNumber("4398046511104", gg.TYPE_QWORD) gg.getResults(50000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setVisible(false) gg.searchNumber("577252194516992;288233678981562368", gg.TYPE_QWORD) gg.refineNumber("577252194516992", gg.TYPE_QWORD) gg.getResults(50000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setRanges(gg.REGION_C_ALLOC) gg.searchNumber("2.24207754e-44;2.66246708e-44", gg.TYPE_FLOAT) gg.refineNumber("2.24207754e-44", gg.TYPE_FLOAT) gg.getResults(99999) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setRanges(gg.REGION_C_ALLOC) gg.searchNumber("134658;131330;67109633;67109377", gg.TYPE_DWORD) gg.refineNumber("134658", gg.TYPE_DWORD) gg.getResults(100000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setRanges(gg.REGION_C_ALLOC) gg.clearResults() gg.searchNumber("133635;131330;67109633;67109377", gg.TYPE_DWORD) gg.refineNumber("133635", gg.TYPE_DWORD) gg.getResults(100000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setRanges(gg.REGION_C_ALLOC) gg.clearResults() gg.searchNumber("135682;131330;67109633;67109377", gg.TYPE_DWORD) gg.refineNumber("135682", gg.TYPE_DWORD) gg.getResults(100000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.setRanges(gg.REGION_C_ALLOC) gg.clearResults() gg.searchNumber("131842;131330;67109633;67109377", gg.TYPE_DWORD) gg.refineNumber("131842", gg.TYPE_DWORD) gg.getResults(100000) gg.editAll("67109633", gg.TYPE_DWORD) gg.clearResults() gg.getRangesList("libtersafe.so") gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("10;45", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("10", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(500) gg.editAll("99999", gg.TYPE_FLOAT) gg.clearResults() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("10;45") gg.searchNumber("10") gg.getResults(100) gg.editAll("2700", gg.TYPE_FLOAT) gg.clearResults() gg.clearResults() gg.setRanges(gg.REGION_BAD) gg.searchNumber("-88.66608428955;26:512") gg.searchNumber("26") gg.getResults(2) gg.editAll("-460", gg.TYPE_FLOAT) gg.clearResults() gg.searchNumber("-88.73961639404;28:512") gg.searchNumber("28") gg.getResults(2) gg.editAll("-560", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("9.201618;30.5;25") gg.searchNumber("30.5;25") gg.getResults(10) gg.editAll("253", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_C_BSS) gg.searchNumber("2048D;1F") gg.searchNumber("1") 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.searchNumber("0.0001") gg.getResults(100) gg.editAll("125", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_BAD) gg.searchNumber("-7.1611644e24;0.0001;1.1297201e-37::") gg.searchNumber("0.0001") gg.getResults(500) gg.editAll("-125", gg.TYPE_FLOAT) gg.clearResults() gg.clearResults() gg.setRanges(gg.REGION_C_DATA | gg.REGION_CODE_APP) gg.searchNumber("-1.2382424e28;-1.4239333e28;-1.1144502e28;-1.8331474e27;-7.1608877e24::") gg.refineNumber("-1.1144502e28") gg.getResults(2) gg.editAll("7.5", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_C_DATA | gg.REGION_CODE_APP) gg.searchNumber("-1.2382424e28;-1.4239333e28;-1.1144502e28;-1.8331474e27;-7.1608877e24::") gg.refineNumber("-1.1144502e28") gg.getResults(2) gg.editAll("7.5", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_C_DATA | gg.REGION_CODE_APP) gg.searchNumber("-1.2382424e28;-1.4239333e28;-1.1144502e28;-1.8331474e27;-7.1608877e24::") gg.refineNumber("-1.1144502e28") gg.getResults(2) gg.editAll("7.5", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_CODE_APP) gg.searchNumber("-1,883,348,481,058,764,210") gg.searchNumber("-1,883,348,481,058,764,210") gg.getResults(99) gg.editAll("-1,883,348,485,055,444,540", gg.TYPE_QWORD) gg.clearResults() gg.searchNumber("-298284466;-1.304566e23F") gg.searchNumber("-298284466") gg.getResults(99) gg.editAll("0", gg.TYPE_DWORD) gg.clearResults() gg.setRanges(gg.REGION_CODE_APP) gg.searchNumber("-298284466;-1.304566e23F") gg.searchNumber("-298284466") gg.getResults(99999) gg.editAll("0", gg.TYPE_DWORD) gg.clearResults() gg.setRanges(gg.REGION_CODE_APP) gg.searchNumber("h4E8A38EEE000DDE5") gg.refineNumber("h4E8A38EE") gg.getResults(7243) gg.editAll("1000;-3000;600;0", gg.TYPE_BYTE) gg.clearResults() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("10;45") gg.searchNumber("10") gg.getResults(100) gg.editAll("2700", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("10;45", 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("666", gg.TYPE_FLOAT) gg.clearResults() gg.clearResults() gg.setRanges(gg.REGION_C_DATA | gg.REGION_CODE_APP) gg.searchNumber("0.10000000149,64.50088500977", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1, 0) gg.refineNumber("0.10000000149", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1, 0) gg.getResults(100000, nil, nil, nil, nil, nil, nil, nil, nil) gg.editAll("8", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("9.201618,30.5,25", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1, 0) gg.refineNumber("25,30.5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1, 0) gg.getResults(100000, nil, nil, nil, nil, nil, nil, nil, nil) gg.editAll("250", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_C_DATA | gg.REGION_CODE_APP) gg.searchNumber("0.10000000149,64.50088500977", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.refineNumber("0.10000000149", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(50) gg.editAll("8", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_BAD) gg.searchNumber("-88.66608428955,26:512", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("26", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(2) gg.editAll("-460", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("9.201618,30.5,25", 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(10) gg.editAll("250", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_C_DATA | gg.REGION_CODE_APP) 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.clearResults() gg.clearResults() gg.setRanges(gg.REGION_C_DATA | gg.REGION_CODE_APP) gg.searchNumber("-1,883,348,481,058,764,210", gg.TYPE_QWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(99) gg.editAll("-1,883,348,485,055,444,540", gg.TYPE_QWORD) gg.clearResults() gg.searchNumber("-88.73961639404,28:512", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("28", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(2) gg.editAll("-560", gg.TYPE_FLOAT) gg.editAll("-1,883,348,485,055,444,540", gg.TYPE_QWORD) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("10,45", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("10", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(500) gg.editAll("99999", gg.TYPE_FLOAT) gg.clearResults()