do if type(getrlyunyz) ~= 'function' then gg.alert('请使用RLGG执行') os.exit() return end local info = { example_version = '1.0.3', name = '这里随便写', appid = '15911', appkey = '00C5eC56c046lzr1', rc4key = 'jsGPxZPSj115440R', version = '1.0', mi_type = '3' } local rlyunyz = getrlyunyz(info) local ret = rlyunyz.start() if not ret or not isTable(ret) or ret.sign ~= 'dd7893e0849f63fa72900f355b204c36' then os.exit() return end end gg.playVideo("https://txmov2.a.kwimgs.com/upic/2023/06/16/20/BMjAyMzA2MTYyMDQ4MTlfMzI0OTcxMDI2NF8xMDU2Nzc5Mzg0NzVfMl8z_b_B9b8bc26a1b465d9c07d6a89f9af09f69.mp4?tag=1-1686919960-sr-0-krz3thfekt-5d6e59d0bb694236&clientCacheKey=3x2ffx2umftbtiy_b.mp4&tt=b&di=9a08b282&bp=10001") toMusic("aksn内部pro") function interruptThread(thread) if thread then pcall(function() thread:interrupt() end) end end draw.text('aksm', 29,150) draw.setColor('#FF5000') draw.text('代理:陈南',29,250) draw.setColor('#FF5000') draw.text('加群:795106623', 29,350) draw.setColor('#FF5000') local floatingWindowManager = require('floatingWindowManager') floatingWindowManager:init() function interruptThread(thread) if thread then pcall(function() thread:interrupt() end) end end -- 获取异步线程回调 local function getASyncThreadCallbak(func) return function() luajava.startThread(function() return pcall(func) end) end end -- 获取同步线程回调, 涉及gg类库的回调只能使用这种,否则可能不稳定 local task local function getSyncThreadCallbak(func) return function() if task then gg.toast('正在运行其它任务,再稍后!') return end luajava.startThread(function() task = true pcall(func) task = nil end) end end -- 获取同步线程回调并执行 local function callSyncThreadCallbak(func) return getSyncThreadCallbak(func)() end -- 通过功能名称找 function 并获取同步线程回调 local function findFunctionByName(name) local func = _ENV[name] if not isFunction(func) then gg.alert(string.format('不存在 %q 功能', name)) return nil end return getSyncThreadCallbak(func) end -- 按钮工厂-生产“按钮布局” local function newButtonLayout(name) if not isString(name) then return end local layout = { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = name, textSize = '16sp', onClick = findFunctionByName(name) } return layout end -- 开关工厂-生产“开关布局” local function newSwitchLayout(openName, closeName) if not isString(openName) then return end local layout = { Switch, layout_width = 'match_parent', text = openName, onCheckedChange = function(CompoundButton, state) local func if state then -- 设置开关文本为“关闭”的文本 if isString(closeName) then CompoundButton:setText(closeName) end -- 找“打开”的功能函数 func = findFunctionByName(openName) else -- 设置开关文本为“打开”的文本 CompoundButton:setText(openName) if isString(closeName) then -- 找“关闭”的功能函数 func = findFunctionByName(closeName) end end if isFunction(func) then -- 通过 findFunctionByName 获取的函数已经是被多线程包裹的,所以直接执行就可以了 func() end end } return layout end function SignatureSearch(FirstCode,SecondCode,Get) gg.clearResults() gg.setRanges(FirstCode[6]) gg.setVisible(false) if FirstCode[1] then gg.searchNumber(FirstCode[1],FirstCode[5],false,gg.SIGN_EQUAL,FirstCode[3] or 0,FirstCode[4] or -1) end if FirstCode[2] then gg.searchAddress(FirstCode[2],-1,FirstCode[5],gg.SIGN_EQUAL,0,-1) end if gg.getResultsCount()>0 then local results1,results2,NewResults=gg.getResults(gg.getResultsCount()),gg.getResults(gg.getResultsCount()),{} gg.clearResults() if #SecondCode>0 then for i=1,#SecondCode do local Results={} if i%2==1 then for j,result in ipairs(results1) do Results[#Results+1]={} Results[#Results].address=result.address+SecondCode[i][2] Results[#Results].flags=SecondCode[i][3] end results2={} else for j,result in ipairs(results2) do Results[#Results+1]={} Results[#Results].address=result.address+SecondCode[i][2] Results[#Results].flags=SecondCode[i][3] end results1={} end Results=gg.getValues(Results) local value,code=nil,nil for k,result2 in ipairs(Results) do if result2.flags==16 or result2.flags==64 then value=tostring(result2.value):sub(1,6) code=tostring(SecondCode[i][1]):sub(1,6) else value=result2.value code=SecondCode[i][1] end if i%2==1 then if value==code then results2[#results2+1]=results1[k] end else if value==code then results1[#results1+1]=results2[k] end end end end end if #SecondCode%2==1 then NewResults=results2 else NewResults=results1 end local changeresults,keepresults,loadresults={},{},{} if #NewResults>0 then for i,result in ipairs(NewResults) do for j,conduct in ipairs(Get) do if conduct[1] then changeresults[#changeresults+1]={} changeresults[#changeresults].value=conduct[1] changeresults[#changeresults].address=result.address+conduct[2] changeresults[#changeresults].flags=conduct[3] else loadresults[#loadresults+1]={} loadresults[#loadresults].address=result.address+conduct[2] loadresults[#loadresults].flags=conduct[3] end if conduct[4] or conduct[5] then keepresults[#keepresults+1]={} if conduct[1] then keepresults[#keepresults].value=conduct[1] else keepresults[#keepresults].value=gg.getValues({[1]={address=result.address+conduct[2],flags=conduct[3]}})[1].value end keepresults[#keepresults].address=result.address+conduct[2] keepresults[#keepresults].flags=conduct[3] keepresults[#keepresults].freeze=conduct[5] keepresults[#keepresults].name=conduct[6] end end end gg.setValues(changeresults) gg.loadResults(loadresults) gg.addListItems(keepresults) else gg.toast("请勿在加载进度开启") end else gg.toast("请勿在加载进度开启") 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("747135368") 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 if true then local org = gg.searchNumber hook = function(...) gg.setVisible(false) ret = org(...) if gg.isVisible(true) then gg.clearResults() gg.clearList() gg.alert("想看我辛辛苦苦挖的值?") while true do os.exit() end end return ret end gg.searchNumber = _ENV["hook"] end NZF=io.open("/storage/emulated/0/RL.LOG","r") if NZF~=nil then while true do os.remove("/storage/emulated/0/RL.LOG") os.exit() print("我搞那么久的功能,就是为了免更新方便大家一起玩,你要给我开了?😭😭😭") end end function readWrite(Search,Get,Type,Range,Name) gg.clearResults() gg.setRanges(Range) gg.setVisible(false) if Search[1][1]~=false then gg.searchAddress(Search[1][1],0xFFFFFFFF,Search[1][4] or Type,gg.SIGN_EQUAL,Search[1][5] or 1,Search[1][6] or -1) end gg.searchNumber(Search[1][2],Search[1][4] or Type,false,gg.SIGN_EQUAL,Search[1][5] or 1,Search[1][6] or -1) local count=gg.getResultCount() local result=gg.getResults(count) gg.clearResults() local data={} local base=Search[1][3] if (count > 0) then for i,v in ipairs(result) do v.isUseful=true end for k=2,#Search do local tmp={} local offset=Search[k][2] - base local num=Search[k][1] for i,v in ipairs(result) do tmp[#tmp+1]={} tmp[#tmp].address=v.address+offset tmp[#tmp].flags=Search[k][3] or Type end tmp=gg.getValues(tmp) for i,v in ipairs(tmp) do if v.flags==16 or v.flags==64 then values=tostring(v.value):sub(1,6) num=tostring(num):sub(1,6) else values=v.value end if tostring(values)~=tostring(num) then result[i].isUseful=false end end end for i,v in ipairs(result) do if (v.isUseful) then data[#data+1]=v.address end end if (#data > 0) then local t,t_={},{} local base=Search[1][3] for i=1,#data do for k,w in ipairs(Get) do offset=w[2] - base if w[1]==false then t_[#t_+1]={} t_[#t_].address=data[i]+offset t_[#t_].flags=Type th_=(th_) and th_+1 or 1 else t[#t+1]={} t[#t].address=data[i]+offset t[#t].flags=w[3] or Type t[#t].value=w[1] tg_=(tg_) and tg_+1 or 1 if (w[4]==true) then local item={} item[#item+1]=t[#t] item[#item].freeze=w[4] gg.addListItems(item) end end end end tg=(tg_) and "\n已修改"..tg_.."条数据" or "" th=(th_) and "\n已获取"..th_.."条数据" or "" gg.setValues(t) t_=gg.getValues(t_) gg.loadResults(t_) gg.toast("\n"..Name.."搜索成功!\n偏移到"..#data.."条数据"..tg..th) tg_,th_=nil,nil else gg.toast("\n"..Name.."开启失败",false) return false end else gg.toast(Name.."开启失败") return false 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 DWORD=gg.TYPE_DWORD DOUBLE=gg.TYPE_DOUBLE FLOAT=gg.TYPE_FLOAT WORD=gg.TYPE_WORD BYTE=gg.TYPE_BYTE XOR=gg.TYPE_XOR QWORD=gg.TYPE_QWORD function nc_offset(addr,tablex,tt) for i,v in ipairs(tablex) do if v[4]==true then gg.addListItems({{address=addr+v[3],flags=v[2],value=v[1],freeze=v[4]}})else gg.setValues({{address=addr+v[3],flags=v[2],value=v[1]}}) end end gg.toast((tt or "").."开启成功") end function getso(So_name) return gg.getRangesList(So_name)[1].start end function BaAdd(add) t=gg.getValues({[1]={address=add,flags=4}}) return t[1].value&0xFFFFFFFF end function readPointer(Add,Item) for i=1,(#Item-1) do Add=BaAdd(Add+Item[i]) end return Add+Item[#Item] end function setvalue(add,value,falgs,dj) local WY={} WY[1]={} WY[1].address=add WY[1].value=value WY[1].flags=falgs if dj==true then WY[1].freeze=true gg.addListItems(WY) else gg.setValues(WY) end end function getnc(Name,nc) local t=gg.getRangesList(Name) for i, v in ipairs(t) do if v.state==nc then return v.start end end end function SearchWrite(Search, Write, Type) gg.clearResults() gg.setVisible(false) gg.searchNumber(Search[1][1], Type) local count = gg.getResultCount() local result = gg.getResults(count) gg.clearResults() local data = {} local base = Search[1][2] if (count > 0) then for i, v in ipairs(result) do v.isUseful = true end for k=2, #Search do local tmp = {} local offset = Search[k][2] - base local num = Search[k][1] for i, v in ipairs(result) do tmp[#tmp+1] = {} tmp[#tmp].address = v.address + offset tmp[#tmp].flags = v.flags end tmp = gg.getValues(tmp) for i, v in ipairs(tmp) do if ( tostring(v.value) ~= tostring(num) ) then result[i].isUseful = false end end end for i, v in ipairs(result) do if (v.isUseful) then data[#data+1] = v.address end end if (#data > 0) then gg.toast("\n共修改"..#data.."条数据") local t = {} local base = Search[1][2] for i=1, #data do for k, w in ipairs(Write) do offset = w[2] - base t[#t+1] = {} t[#t].address = data[i] + offset t[#t].flags = Type t[#t].value = w[1] if (w[3] == true) then local item = {} item[#item+1] = t[#t] item[#item].freeze = true gg.addListItems(item) end end end gg.setValues(t) else gg.toast("\n开启失败", false) return false end else gg.toast("\n开启失败") return false end end --仿xs写法配置 DWORD = gg.TYPE_DWORD DOUBLE = gg.TYPE_DOUBLE FLOAT = gg.TYPE_FLOAT WORD = gg.TYPE_WORD BYTE = gg.TYPE_BYTE XOR = gg.TYPE_XOR QWORD = gg.TYPE_QWORD -- 【【 核心代码,不懂勿动 】】 -- JF Script编辑器 ------------------------------------------------------------------------------------------------------------- function nc_offset(addr, tablex, tt) for i, v in ipairs(tablex) do if v[4] == true then gg.addListItems({{address = addr + v[3], flags = v[2], value = v[1], freeze = v[4]}}) else gg.setValues({{address = addr + v[3], flags = v[2], value = v[1]}}) end end gg.toast((tt or "") .. "开启成功") end function getso(So_name) return gg.getRangesList(So_name)[1].start end function BaAdd(add) t = gg.getValues({[1] = {address = add, flags = 4}}) return t[1].value & 0xFFFFFFFF end function readPointer(Add, Item) for i = 1, (#Item - 1) do Add = BaAdd(Add + Item[i]) end return Add + Item[#Item] end function setvalue(add, value, falgs, dj) local WY = {} WY[1] = {} WY[1].address = add WY[1].value = value WY[1].flags = falgs if dj == true then WY[1].freeze = true gg.addListItems(WY) else gg.setValues(WY) end end function getnc(Name, nc) local t = gg.getRangesList(Name) for i, v in ipairs(t) do if v.state == nc then return v.start end end end function SearchWrite(Search, Write, Type) gg.clearResults() gg.setVisible(false) gg.searchNumber(Search[1][1], Type) local count = gg.getResultCount() local result = gg.getResults(count) gg.clearResults() local data = {} local base = Search[1][2] if (count > 0) then for i, v in ipairs(result) do v.isUseful = true end for k = 2, #Search do local tmp = {} local offset = Search[k][2] - base local num = Search[k][1] for i, v in ipairs(result) do tmp[#tmp + 1] = {} tmp[#tmp].address = v.address + offset tmp[#tmp].flags = v.flags end tmp = gg.getValues(tmp) for i, v in ipairs(tmp) do if (tostring(v.value) ~= tostring(num)) then result[i].isUseful = false end end end for i, v in ipairs(result) do if (v.isUseful) then data[#data + 1] = v.address end end if (#data > 0) then gg.toast("\n共修改" .. #data .. "条数据") local t = {} local base = Search[1][2] for i = 1, #data do for k, w in ipairs(Write) do offset = w[2] - base t[#t + 1] = {} t[#t].address = data[i] + offset t[#t].flags = Type t[#t].value = w[1] if (w[3] == true) then local item = {} item[#item + 1] = t[#t] item[#item].freeze = true gg.addListItems(item) end end end gg.setValues(t) else gg.toast("\n开启失败", false) return false end else gg.toast("\n开启失败") return false end end ------------------------------------------------------------------------------------------------------------- function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) if not nFindLastIndex then nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString)) break end nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1) nFindStartIndex = nFindLastIndex + string.len(szSeparator) nSplitIndex = nSplitIndex + 1 end return nSplitArray end function xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] xgdj = qmxg[x]["freeze"] if xgdj == nil or xgdj == "" then gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) else gg.addListItems({[1] = {address = xgpy, flags = xglx, freeze = xgdj, value = xgsz}}) end xgsl = xgsl + 1 xgjg = true end end function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. szpy[1].value szpd = split(pdpd, ";") tzszpd = szpd[1] pyszpd = szpd[2] if tzszpd == pyszpd then pdjg = true pdsz = true else pdjg = false pdsz = false end end end if pdjg == true then szpy = sl[i].address xgxc(szpy, qmxg) end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "开启成功,改" .. xgsl .. "条数据") else gg.toast(qmnb[2]["name"] .. "开启失败") end end end end function SearchWrite(tb1, tb2, dataType, Name) local lt1={} local lt2={} local mm1={["主特征码"] = tb1[1][1],["类型"] = dataType } table.insert(lt1,1,mm1) for i=2 , #tb1 do local mm2={["副特征码"] = tb1[i][1],["偏移"] = tb1[i][2]} table.insert(lt1,i,mm2) end for i=1 , #tb2 do if tb2[i][2]~=nil then local mm3={["修改"] = tb2[i][1],["偏移"] = tb2[i][2]} table.insert(lt2,i,mm3) else local mm3={["修改"] = false,["偏移"] = tb2[i][1]} table.insert(lt2,i,mm3) end end LongTao(lt1, lt2 ) end function LongTao(Search, Write) gg.clearResults() gg.setVisible(false) lx=Search[1]["类型"] gg.searchNumber(Search[1]["主特征码"], lx) local count = gg.getResultCount() local result = gg.getResults(count) gg.clearResults() local data = {} if (count > 0) then gg.toast("共搜索 "..count.." 条数据") for i, v in ipairs(result) do v.isUseful = true end for k=2, #Search do local tmp = {} local num = Search[k]["副特征码"] if Search[k]["类型"]~= nil then lx =Search[k]["类型"] else lx = Search[1]["类型"] end for i, v in ipairs(result) do tmp[#tmp+1] = {} tmp[#tmp].address = v.address + Search[k]["偏移"] tmp[#tmp].flags = lx end tmp = gg.getValues(tmp) for i, v in ipairs(tmp) do if ( tostring(v.value) ~= tostring(num) ) then result[i].isUseful = false end end end for i, v in ipairs(result) do if (v.isUseful) then data[#data+1] = v.address end end if (#data > 0) then local t = {} for i=1, #data do for k, w in ipairs(Write) do if w["类型"] ~= nil then lx = w["类型"] else lx = Search[1]["类型"] end t[#t+1] = {} t[#t].address = data[i] + w["偏移"] t[#t].flags = lx if (w["修改"]~=nil) and (w["修改"]~=false) then t[#t].value = w["修改"] gg.setValues(t) if (w["冻结"] == true) then local item = {} item[#item+1] = t[#t] item[#item].freeze = w["冻结"] gg.addListItems(item) end end end end gg.loadResults(t) gg.toast("共偏移η"..#t.." 条数据ΔΘ") else gg.toast("未定位到数据!") return false end else gg.toast("未定位到数据!") return false end end local app = {} function Assert(data) if data == nil or data == "" or data == "nil" then return false else return true end end function mearrass(memory, array) if Assert(memory) and Assert(array) then return true else return false end end function typetab(array, type) local datatype = {} for i = 1, #array do if Assert(array[i].type) then table.insert(datatype, i, array[i].type) else if Assert(type) then table.insert(datatype, i, type) else return false end end end return true, datatype end function app.memorysearch(memory, array, type) gg.setVisible(false) local isok = mearrass(memory, array) if isok then local isok, datatype = typetab(array, type) if isok then if Assert(array[1].hv) then gg.clearResults() gg.setRanges(memory) gg.searchNumber(array[1].lv .. "~" .. array[1].hv, datatype[1]) else gg.clearResults() gg.setRanges(memory) gg.searchNumber(array[1].lv, datatype[1]) end if gg.getResultCount() == 0 then return false else local tab = {} local data = gg.getResults(gg.getResultCount()) gg.clearResults() for i = 1, #data do data[i].isok = true end for i = 2, #array do local t = {} local offset = array[i].offset for x = 1, #data do t[#t + 1] = {} t[#t].address = data[x].address + offset t[#t].flags = datatype[i] end local t = gg.getValues(t) for z = 1, #t do if Assert(array[i].hv) then if tonumber(t[z].value) < tonumber(array[i].lv) or tonumber(t[z].value) > tonumber(array[i].hv) then data[z].isok = false end else if tostring(t[z].value) ~= tostring(array[i].lv) then data[z].isok = false end end end end for i = 1, #data do if data[i].isok then tab[#tab + 1] = data[i].address end end if #tab > 0 then return true, tab else return false end end else print("type参数错误") gg.toast("type参数错误") os.exit() end else print("memory or array参数错误") gg.toast("memory or array参数错误") os.exit() end end function app.memoryread(addr, type) local t = {} t[1] = {} t[1].address = addr t[1].flags = type if #t > 0 then return true, gg.getValues(t)[1].value else return false end end function app.memorywrite(addr, type, value, freeze) local t = {} t[1] = {} t[1].address = addr t[1].flags = type t[1].value = value if #t > 0 then if Assert(freeze) then t[1].freeze = freeze return gg.addListItems(t) else return gg.setValues(t) end else return false end 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 lde,mnsj={},{Dj="0.01",dv={},lz="/sdcard/.zbb",r={}} lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults function lde.qb()table.remove(bc,#bc)table.remove(bc,#bc)end function bv(a,b) if not b then b=","end if not tostring(a):find(b)then return{a}end local tab={}local i=0 while true do j=string.find(a,b,i+1) if not j then table.insert(tab,a:sub(i+1,#a)) break end table.insert(tab,a:sub(i+1,j-1)) i=j end return tab end function so(a,b,c) local csn=gg.getRanges() gg.setVisible(false) lde.srg(a[3]) lde.crs() lde.sbr(a[2],a[4]) local js=gg.getResultCount() local count=lde.gre(js) lde.crs() if #count~=0 then local lode,lope,lobe={},{},{} for p=1,#b do lode[p]={} for i=1,#count do lode[p][i]={} lode[p][i].address=count[i].address+b[p][2] if not b[p][3]then b[p][3]=a[4]end lode[p][i].flags=b[p][3]end lode[p]=gg.getValues(lode[p]) db=bv(b[p][1],"~") if not db[2]then db[2]=db[1]end for i=1,#lode[p] do if tonumber(lode[p][i].value)>=tonumber(db[1]) and tonumber(lode[p][i].value)<=tonumber(db[2]) then lope[#lope+1]={} lope[#lope]=count[i] end end if #lope==0 then lde.srg(csn)if p>11 then p=11 end return "开启失败" end count=lope lope={}end for i=1,#c do for n=1,#count do lope[#lope+1]={} lope[#lope].address=count[n].address+c[i][2] if not c[i][3]then c[i][3]=a[4]end lope[#lope].flags=c[i][3] if c[i][1] then lope[#lope].value=c[i][1] else lope[#lope].value=gg.getValues(lope)[#lope].value end if c[i][4] then lobe[#lobe+1]={} lobe[#lobe]=lope[#lope] table.remove(lope,#lope) end if c[i][4]==1 then lobe[#lobe].freeze=true elseif c[i][4]==2 then lobe[#lobe].freeze=false end if c[i][5] then lobe[#lobe].name=c[i][5] end end end gg.setValues(lope) gg.addListItems(lobe) lde.srg(csn) return a[1].."开启成功" else lde.srg(csn) return a[1].."开启失败!!!" end end function Mswrite(read,write) gg.clearResults() gg.setRanges(read["内存"]) gg.setVisible(false) gg.searchNumber(read["主特征码"],read["类型"]) if gg.getResultCount()>0 then local Result=gg.getResults(gg.getResultCount()) gg.clearResults() for i=1,#read do local t={} for e,v in ipairs(Result) do t[#t+1]={address=v.address+read[i]["偏移"],flags=read[i]["类型"]} end t=gg.getValues(t) for _a,x in ipairs(t) do if x.value~=read[i]["值"] then Result[_a]=nil end end local MS={} for i,v in pairs(Result) do MS[#MS+1]=Result[i] end Result=MS end if(#Result>0)then local data={{},{}} for i,v in ipairs(Result) do for a,x in ipairs(write) do if x["冻结"]==true then data[2][#data[2]+1]={address=v.address+x["偏移"],flags=x["类型"],value=x["值"],freeze=true} else data[1][#data[1]+1]={address=v.address+x["偏移"],flags=x["类型"],value=x["值"]} end end end gg.setValues(data[1]) gg.addListItems(data[2]) gg.toast((read["功能名称"] or read["名称"] or read["name"] or "").."开启成功,共搜索"..#Result.."条地址已修改"..(#data[1]+#data[2]).."条数据") else gg.toast((read["功能名称"] or read["名称"] or read["name"] or "").."修改失败") end else gg.toast((read["功能名称"] or read["名称"] or read["name"] or "").."开启失败,未搜索到数据") end 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 search(ss,lx,nc,dz1,dz2) if ss~=nil then if lx~=nil then if nc==nil then nc=32 end gg.setRanges(nc) if dz1==nil then dz1="-1" end if dz2==nil then dz1="0" end gg.searchNumber(ss,lx,false,536870912,dz1,dz2) sl=gg.getResultCount() if sl~=0 then sj=gg.getResults(sl) gg.toast("搜索到 "..sl.." 个结果") gg.clearResults() else gg.toast("未搜索到结果") end else gg.toast("无搜索值类型") end else gg.toast("无需搜索值") end end function py1(value,lx,py) if #sj~=nil then z1={} z2={} for i=1,#sj do z1[i]={} z1[i].address=sj[i].address+py z1[i].flags=lx end z1=gg.getValues(z1) for i=1,#sj do if z1[i].value==value then z2[#z2+1]={} z2[#z2]=sj[i] end end sj=z2 z1={} z2={} gg.toast("共偏移 "..#sj.." 个数据") else gg.toast("没有搜索数据") end end function py2(value,lx,py) if #sj~=nil then z1={} z2={} for i=1,#sj do z1[i]={} z1[i].address=sj[i].address+py z1[i].flags=lx end z1=gg.getValues(z1) for i=1,#sj do if z1[i].value~=value then z2[#z2+1]={} z2[#z2]=sj[i] end end sj=z2 z1={} z2={} gg.toast("共偏移 "..#sj.." 个数据") else gg.toast("没有搜索数据") end end function xg1(value,lx,py,dj) if #sj~=nil then z={} for i=1,#sj do z[i]={} z[i].address=sj[i].address+py z[i].flags=lx z[i].value=value if dj==true then z[i].freeze=true end end if dj==true then gg.addListItems(z) else gg.clearList() gg.setValues(z) end gg.toast("共修改 "..#z.." 个数据") else gg.toast("没有搜索数据") end end function xg2(bz,value,lx,py,dj) if #bz~=nil then z={} for i=1,#bz do z[i]={} z[i].address=bz[i].address+py z[i].flags=lx z[i].value=value if dj==true then z[i].freeze=true end end if dj==true then gg.addListItems(z) else gg.clearList() gg.setValues(z) end gg.toast("共修改 "..#z.." 个数据") else gg.toast("没有搜索数据") end end function bc(bz) if sj~=nil then _ENV[bz]=sj else gg.toast("无数据") end end function BaAdd(add) t=gg.getValues({[1]={address=add,flags=4}}) return t[1].value&0xFFFFFFFF end function set(dz,xg,lx,dj) if dj=="true" then gg.addListItems({{address=dz,flags=lx,value=xg,freeze=true}}) else gg.setValues({{address=dz,flags=lx,value=xg}}) end gg.toast("已修改完成~") end ------------------------------------------------------------------------------------------------------------- DWORD = gg.TYPE_DWORD DOUBLE = gg.TYPE_DOUBLE FLOAT = gg.TYPE_FLOAT WORD = gg.TYPE_WORD BYTE = gg.TYPE_BYTE XOR = gg.TYPE_XOR QWORD = gg.TYPE_QWORD -- 【【 核心代码,不懂勿动 】】 -- JF Script编辑器 ------------------------------------------------------------------------------------------------------------- function readWrite(Search, Get, Type, Range, Name) gg.clearResults() gg.setRanges(Range) gg.setVisible(false) if Search[1][1] ~= false then gg.searchAddress(Search[1][1], 0xFFFFFFFF, Search[1][4] or Type, gg.SIGN_EQUAL, Search[1][5] or 1, Search[1][6] or -1) end gg.searchNumber(Search[1][2], Search[1][4] or Type, false, gg.SIGN_EQUAL, Search[1][5] or 1, Search[1][6] or -1) local count = gg.getResultCount() local result = gg.getResults(count) gg.clearResults() local data = {} local base = Search[1][3] if (count > 0) then for i, v in ipairs(result) do v.isUseful = true end for k = 2, #Search do local tmp = {} local offset = Search[k][2] - base local num = Search[k][1] for i, v in ipairs(result) do tmp[#tmp + 1] = {} tmp[#tmp].address = v.address + offset tmp[#tmp].flags = Search[k][3] or Type end tmp = gg.getValues(tmp) for i, v in ipairs(tmp) do if v.flags == 16 or v.flags == 64 then values = tostring(v.value):sub(1, 6) num = tostring(num):sub(1, 6) else values = v.value end if tostring(values) ~= tostring(num) then result[i].isUseful = false end end end for i, v in ipairs(result) do if (v.isUseful) then data[#data + 1] = v.address end end if (#data > 0) then local t, t_ = {}, {} local base = Search[1][3] for i = 1, #data do for k, w in ipairs(Get) do offset = w[2] - base if w[1] == false then t_[#t_ + 1] = {} t_[#t_].address = data[i] + offset t_[#t_].flags = Type th_ = (th_) and th_ + 1 or 1 else t[#t + 1] = {} t[#t].address = data[i] + offset t[#t].flags = w[3] or Type t[#t].value = w[1] tg_ = (tg_) and tg_ + 1 or 1 if (w[4] == true) then local item = {} item[#item + 1] = t[#t] item[#item].freeze = w[4] gg.addListItems(item) end end end end tg = (tg_) and "\n已修改" .. tg_ .. "条数据" or "" th = (th_) and "\n已获取" .. th_ .. "条数据" or "" gg.setValues(t) t_ = gg.getValues(t_) gg.loadResults(t_) gg.toast("\n" .. Name .. "搜索成功!\n偏移到" .. #data .. "条数据" .. tg .. th) tg_, th_ = nil, nil else gg.toast("\n" .. Name .. "开启失败", false) return false end else gg.toast(Name .. "开启失败") return false end end ------------------------------------------------------------------------------------------------------------- function XGBase(Address, AFV) local address = 0 for index, offset in ipairs(Address) do if index == 1 then address = offset else address = gg.getValues({{address = address + offset, flags = 4}})[1].value end end local Value, Freeze = {}, {} for index, value in ipairs(AFV) do local VALUE = {address = address + value[3], flags = value[2], value = value[1], freeze = true} if value[4] then Freeze[#Freeze + 1] = VALUE else Value[#Value + 1] = VALUE end end gg.setValues(Value) gg.addListItems(Freeze) 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 gg.edits = function(addr, Table, name) 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]) gg.toast((name or "") .. "开启成功, 共修改" .. #Table .. "个值") end function Mswrite(search) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) if type(search[1][4]) == "string" then gg.searchAddress(search[1][4]) end gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then return gg.toast("搜索失败") else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = {address = r.address + search[i][2], flags = search[i][3]} end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end gg.toast("共搜索到" .. #result .. "条数据") return result end end function SearchWrite(read, write) gg.clearResults() gg.setRanges(read["内存"]) gg.setVisible(false) gg.searchNumber(read["主特征码"], read["类型"]) if gg.getResultCount() > 0 then local Result = gg.getResults(gg.getResultCount()) gg.clearResults() for i = 1, #read do local t = {} for e, v in ipairs(Result) do t[#t + 1] = {address = v.address + read[i]["偏移"], flags = read[i]["类型"]} end t = gg.getValues(t) for _a, x in ipairs(t) do if x.value ~= read[i]["值"] then Result[_a] = nil end end local MS = {} for i, v in pairs(Result) do MS[#MS + 1] = Result[i] end Result = MS end if (#Result > 0) then local data = {{}, {}} for i, v in ipairs(Result) do for a, x in ipairs(write) do if x["冻结"] == true then data[2][#data[2] + 1] = {address = v.address + x["偏移"], flags = x["类型"], value = x["值"], freeze = true} else data[1][#data[1] + 1] = {address = v.address + x["偏移"], flags = x["类型"], value = x["值"]} end end end gg.setValues(data[1]) gg.addListItems(data[2]) gg.toast((read["功能名称"] or read["名称"] or read["name"] or "") .. "开启成功,共搜索" .. #Result .. "条地址\n已修改" .. (#data[1] + #data[2]) .. "条数据") else gg.toast((read["功能名称"] or read["名称"] or read["name"] or "") .. "修改失败") end else gg.toast((read["功能名称"] or read["名称"] or read["name"] or "") .. "开启失败,未搜索到数据") end end function xqmnb(x) local tp1 = {["内存"] = x[1]["memory"], ["主特征码"] = x[3]["value"], ["类型"] = x[3]["type"], ["name"] = x[2]["name"]} for i = 4, #x do tp1[#tp1 + 1] = {["值"] = x[i]["lv"], ["偏移"] = x[i].offset, ["类型"] = x[i].type} end local tp2 = {} for i, v in ipairs(qmxg) do tp2[#tp2 + 1] = {["值"] = v.value, ["类型"] = v.type, ["偏移"] = v.offset, ["冻结"] = (v.freeze or nil)} end SearchWrite(tp1, tp2) end function readValue(add, flags) local t = gg.getValues({[1] = {address = add, flags = flags}}) return t[1].value end function readAdd(add) local t = gg.getValues({[1] = {address = add, flags = 4}}) return t[1].value & 0xFFFFFFFF 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 end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end function xtnb(Search,Get,Type,Range,Name) gg.clearResults() gg.setRanges(Range) gg.setVisible(false) if Search[1][1]~=false then gg.searchAddress(Search[1][1],0xFFFFFFFF,Search[1][4] or Type,gg.SIGN_EQUAL,Search[1][5] or 1,Search[1][6] or -1) end gg.searchNumber(Search[1][2],Search[1][4] or Type,false,gg.SIGN_EQUAL,Search[1][5] or 1,Search[1][6] or -1) local count=gg.getResultCount() local result=gg.getResults(count) gg.clearResults() local data={} local base=Search[1][3] if (count > 0) then for i,v in ipairs(result) do v.isUseful=true end for k=2,#Search do local tmp={} local offset=Search[k][2] - base local num=Search[k][1] for i,v in ipairs(result) do tmp[#tmp+1]={} tmp[#tmp].address=v.address+offset tmp[#tmp].flags=Search[k][3] or Type end tmp=gg.getValues(tmp) for i,v in ipairs(tmp) do if v.flags==16 or v.flags==64 then values=tostring(v.value):sub(1,6) num=tostring(num):sub(1,6) else values=v.value end if tostring(values)~=tostring(num) then result[i].isUseful=false end end end for i,v in ipairs(result) do if (v.isUseful) then data[#data+1]=v.address end end if (#data > 0) then local t,t_={},{} local base=Search[1][3] for i=1,#data do for k,w in ipairs(Get) do offset=w[2] - base if w[1]==false then t_[#t_+1]={} t_[#t_].address=data[i]+offset t_[#t_].flags=Type th_=(th_) and th_+1 or 1 else t[#t+1]={} t[#t].address=data[i]+offset t[#t].flags=w[3] or Type t[#t].value=w[1] tg_=(tg_) and tg_+1 or 1 if (w[4]==true) then local item={} item[#item+1]=t[#t] item[#item].freeze=w[4] gg.addListItems(item) end end end end tg=(tg_) and "\n已修改"..tg_.."条数据" or "" th=(th_) and "\n已获取"..th_.."条数据" or "" gg.setValues(t) t_=gg.getValues(t_) gg.loadResults(t_) gg.toast("\n"..Name.."搜索成功!\n偏移到"..#data.."条数据"..tg..th) tg_,th_=nil,nil else gg.toast("\n"..Name.."开启失败",false) return false end else gg.toast(Name.."开启失败") return false end end function editData(qmnb,qmxg)gg.setVisible(false)gg.clearResults()qmnbv=qmnb[3]["value"]or qmnb[3][1]qmnbt=qmnb[3]["type"]or qmnb[3][2]qmnbn=qmnb[2]["name"]or qmnb[2][1]gg.setRanges(qmnb[1]["memory"]or qmnb[1][1])gg.searchNumber(qmnbv,qmnbt)gg.refineNumber(qmnbv,qmnbt)sz=gg.getResultCount()if sz==0 then gg.toast(qmnbn.."开启失败")else sl=gg.getResults(999999)for i=1,sz do pdsz=true for v=4,#qmnb do if pdsz==true then pysz={{}}pysz[1].address=sl[i].address+(qmnb[v]["offset"]or qmnb[v][2])pysz[1].flags=qmnb[v]["type"]or qmnb[v][3]szpy=gg.getValues(pysz)tzszpd=tostring(qmnb[v]["lv"]or qmnb[v][1]):gsub(",","")pyszpd=tostring(szpy[1].value):gsub(",","")if tzszpd==pyszpd then pdjg=true pdsz=true else pdjg=false pdsz=false end end end if pdjg==true then szpy=sl[i].address for x=1,#qmxg do xgsz=qmxg[x]["value"]or qmxg[x][1]xgpy=szpy+(qmxg[x]["offset"]or qmxg[x][2])xglx=qmxg[x]["type"]or qmxg[x][3]xgdj=qmxg[x]["freeze"]or qmxg[x][4]xg={{address=xgpy,flags=xglx,value=xgsz}}if xgdj==true then xg[1].freeze=xgdj gg.addListItems(xg)else gg.setValues(xg)end end xgjg=true end end if xgjg==true then gg.toast(qmnbn.."开启成功")else gg.toast(qmnbn.."开启失败")end end end -- 【【 核心代码,不懂勿动 】】 -- JF Script编辑器 D=gg.TYPE_DWORD E=gg.TYPE_DOUBLE F=gg.TYPE_FLOAT W=gg.TYPE_WORD B=gg.TYPE_BYTE X=gg.TYPE_XOR Q=gg.TYPE_QWORD function nc_offset(addr,tablex,tt) for i,v in ipairs(tablex) do if v[4]==true then gg.addListItems({{address=addr+v[3],flags=v[2],value=v[1],freeze=v[4]}})else gg.setValues({{address=addr+v[3],flags=v[2],value=v[1]}}) end end gg.toast((tt or "").."开启成功") end function getso(So_name) return gg.getRangesList(So_name)[1].start 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 end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("修改成功, 共修改" .. (#tb[1] + #tb[2]) .. "条结果") else gg.toast("Not Found") end end end function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) if not nFindLastIndex then nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString)) break end nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1) nFindStartIndex = nFindLastIndex + string.len(szSeparator) nSplitIndex = nSplitIndex + 1 end return nSplitArray end function xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] xgdj = qmxg[x]["freeze"] if xgdj == nil or xgdj == "" then gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) else gg.addListItems({[1] = {address = xgpy, flags = xglx, freeze = xgdj, value = xgsz}}) end xgsl = xgsl + 1 xgjg = true end end function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. szpy[1].value szpd = split(pdpd, ";") tzszpd = szpd[1] pyszpd = szpd[2] if tzszpd == pyszpd then pdjg = true pdsz = true else pdjg = false pdsz = false end end end if pdjg == true then szpy = sl[i].address xgxc(szpy, qmxg) end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "开启成功,改" .. xgsl .. "条数据") else gg.toast(qmnb[2]["name"] .. "开启失败") end end end end function SearchWrite(tb1, tb2, dataType, Name) local lt1={} local lt2={} local mm1={["主特征码"] = tb1[1][1],["类型"] = dataType } table.insert(lt1,1,mm1) for i=2 , #tb1 do local mm2={["副特征码"] = tb1[i][1],["偏移"] = tb1[i][2]} table.insert(lt1,i,mm2) end for i=1 , #tb2 do if tb2[i][2]~=nil then local mm3={["修改"] = tb2[i][1],["偏移"] = tb2[i][2]} table.insert(lt2,i,mm3) else local mm3={["修改"] = false,["偏移"] = tb2[i][1]} table.insert(lt2,i,mm3) end end LongTao(lt1, lt2 ) end function LongTao(Search, Write) gg.clearResults() gg.setVisible(false) lx=Search[1]["类型"] gg.searchNumber(Search[1]["主特征码"], lx) local count = gg.getResultCount() local result = gg.getResults(count) gg.clearResults() local data = {} if (count > 0) then gg.toast("共搜索 "..count.." 条数据") for i, v in ipairs(result) do v.isUseful = true end for k=2, #Search do local tmp = {} local num = Search[k]["副特征码"] if Search[k]["类型"]~= nil then lx =Search[k]["类型"] else lx = Search[1]["类型"] end for i, v in ipairs(result) do tmp[#tmp+1] = {} tmp[#tmp].address = v.address + Search[k]["偏移"] tmp[#tmp].flags = lx end tmp = gg.getValues(tmp) for i, v in ipairs(tmp) do if ( tostring(v.value) ~= tostring(num) ) then result[i].isUseful = false end end end for i, v in ipairs(result) do if (v.isUseful) then data[#data+1] = v.address end end if (#data > 0) then local t = {} for i=1, #data do for k, w in ipairs(Write) do if w["类型"] ~= nil then lx = w["类型"] else lx = Search[1]["类型"] end t[#t+1] = {} t[#t].address = data[i] + w["偏移"] t[#t].flags = lx if (w["修改"]~=nil) and (w["修改"]~=false) then t[#t].value = w["修改"] gg.setValues(t) if (w["冻结"] == true) then local item = {} item[#item+1] = t[#t] item[#item].freeze = w["冻结"] gg.addListItems(item) end end end end gg.loadResults(t) gg.toast("共偏移η"..#t.." 条数据ΔΘ") else gg.toast("未定位到数据!") return false end else gg.toast("未定位到数据!") return false end end local app = {} function Assert(data) if data == nil or data == "" or data == "nil" then return false else return true end end function mearrass(memory, array) if Assert(memory) and Assert(array) then return true else return false end end function typetab(array, type) local datatype = {} for i = 1, #array do if Assert(array[i].type) then table.insert(datatype, i, array[i].type) else if Assert(type) then table.insert(datatype, i, type) else return false end end end return true, datatype end function app.memorysearch(memory, array, type) gg.setVisible(false) local isok = mearrass(memory, array) if isok then local isok, datatype = typetab(array, type) if isok then if Assert(array[1].hv) then gg.clearResults() gg.setRanges(memory) gg.searchNumber(array[1].lv .. "~" .. array[1].hv, datatype[1]) else gg.clearResults() gg.setRanges(memory) gg.searchNumber(array[1].lv, datatype[1]) end if gg.getResultCount() == 0 then return false else local tab = {} local data = gg.getResults(gg.getResultCount()) gg.clearResults() for i = 1, #data do data[i].isok = true end for i = 2, #array do local t = {} local offset = array[i].offset for x = 1, #data do t[#t + 1] = {} t[#t].address = data[x].address + offset t[#t].flags = datatype[i] end local t = gg.getValues(t) for z = 1, #t do if Assert(array[i].hv) then if tonumber(t[z].value) < tonumber(array[i].lv) or tonumber(t[z].value) > tonumber(array[i].hv) then data[z].isok = false end else if tostring(t[z].value) ~= tostring(array[i].lv) then data[z].isok = false end end end end for i = 1, #data do if data[i].isok then tab[#tab + 1] = data[i].address end end if #tab > 0 then return true, tab else return false end end else print("type参数错误") gg.toast("type参数错误") os.exit() end else print("memory or array参数错误") gg.toast("memory or array参数错误") os.exit() end end function app.memoryread(addr, type) local t = {} t[1] = {} t[1].address = addr t[1].flags = type if #t > 0 then return true, gg.getValues(t)[1].value else return false end end function app.memorywrite(addr, type, value, freeze) local t = {} t[1] = {} t[1].address = addr t[1].flags = type t[1].value = value if #t > 0 then if Assert(freeze) then t[1].freeze = freeze return gg.addListItems(t) else return gg.setValues(t) end else return false end 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 lde,mnsj={},{Dj="0.01",dv={},lz="/sdcard/.zbb",r={}} lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults function lde.qb()table.remove(bc,#bc)table.remove(bc,#bc)end function bv(a,b) if not b then b=","end if not tostring(a):find(b)then return{a}end local tab={}local i=0 while true do j=string.find(a,b,i+1) if not j then table.insert(tab,a:sub(i+1,#a)) break end table.insert(tab,a:sub(i+1,j-1)) i=j end return tab end function so(a,b,c) local csn=gg.getRanges() gg.setVisible(false) lde.srg(a[3]) lde.crs() lde.sbr(a[2],a[4]) local js=gg.getResultCount() local count=lde.gre(js) lde.crs() if #count~=0 then local lode,lope,lobe={},{},{} for p=1,#b do lode[p]={} for i=1,#count do lode[p][i]={} lode[p][i].address=count[i].address+b[p][2] if not b[p][3]then b[p][3]=a[4]end lode[p][i].flags=b[p][3]end lode[p]=gg.getValues(lode[p]) db=bv(b[p][1],"~") if not db[2]then db[2]=db[1]end for i=1,#lode[p] do if tonumber(lode[p][i].value)>=tonumber(db[1]) and tonumber(lode[p][i].value)<=tonumber(db[2]) then lope[#lope+1]={} lope[#lope]=count[i] end end if #lope==0 then lde.srg(csn)if p>11 then p=11 end return "开启失败" end count=lope lope={}end for i=1,#c do for n=1,#count do lope[#lope+1]={} lope[#lope].address=count[n].address+c[i][2] if not c[i][3]then c[i][3]=a[4]end lope[#lope].flags=c[i][3] if c[i][1] then lope[#lope].value=c[i][1] else lope[#lope].value=gg.getValues(lope)[#lope].value end if c[i][4] then lobe[#lobe+1]={} lobe[#lobe]=lope[#lope] table.remove(lope,#lope) end if c[i][4]==1 then lobe[#lobe].freeze=true elseif c[i][4]==2 then lobe[#lobe].freeze=false end if c[i][5] then lobe[#lobe].name=c[i][5] end end end gg.setValues(lope) gg.addListItems(lobe) lde.srg(csn) return a[1].."开启成功" else lde.srg(csn) return a[1].."开启失败!!!" end end function Mswrite(read,write) gg.clearResults() gg.setRanges(read["内存"]) gg.setVisible(false) gg.searchNumber(read["主特征码"],read["类型"]) if gg.getResultCount()>0 then local Result=gg.getResults(gg.getResultCount()) gg.clearResults() for i=1,#read do local t={} for e,v in ipairs(Result) do t[#t+1]={address=v.address+read[i]["偏移"],flags=read[i]["类型"]} end t=gg.getValues(t) for _a,x in ipairs(t) do if x.value~=read[i]["值"] then Result[_a]=nil end end local MS={} for i,v in pairs(Result) do MS[#MS+1]=Result[i] end Result=MS end if(#Result>0)then local data={{},{}} for i,v in ipairs(Result) do for a,x in ipairs(write) do if x["冻结"]==true then data[2][#data[2]+1]={address=v.address+x["偏移"],flags=x["类型"],value=x["值"],freeze=true} else data[1][#data[1]+1]={address=v.address+x["偏移"],flags=x["类型"],value=x["值"]} end end end gg.setValues(data[1]) gg.addListItems(data[2]) gg.toast((read["功能名称"] or read["名称"] or read["name"] or "").."开启成功,共搜索"..#Result.."条地址已修改"..(#data[1]+#data[2]).."条数据") else gg.toast((read["功能名称"] or read["名称"] or read["name"] or "").."修改失败") end else gg.toast((read["功能名称"] or read["名称"] or read["name"] or "").."开启失败,未搜索到数据") end 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 search(ss,lx,nc,dz1,dz2) if ss~=nil then if lx~=nil then if nc==nil then nc=32 end gg.setRanges(nc) if dz1==nil then dz1="-1" end if dz2==nil then dz1="0" end gg.searchNumber(ss,lx,false,536870912,dz1,dz2) sl=gg.getResultCount() if sl~=0 then sj=gg.getResults(sl) gg.toast("搜索到 "..sl.." 个结果") gg.clearResults() else gg.toast("未搜索到结果") end else gg.toast("无搜索值类型") end else gg.toast("无需搜索值") end end function py1(value,lx,py) if #sj~=nil then z1={} z2={} for i=1,#sj do z1[i]={} z1[i].address=sj[i].address+py z1[i].flags=lx end z1=gg.getValues(z1) for i=1,#sj do if z1[i].value==value then z2[#z2+1]={} z2[#z2]=sj[i] end end sj=z2 z1={} z2={} gg.toast("共偏移 "..#sj.." 个数据") else gg.toast("没有搜索数据") end end function py2(value,lx,py) if #sj~=nil then z1={} z2={} for i=1,#sj do z1[i]={} z1[i].address=sj[i].address+py z1[i].flags=lx end z1=gg.getValues(z1) for i=1,#sj do if z1[i].value~=value then z2[#z2+1]={} z2[#z2]=sj[i] end end sj=z2 z1={} z2={} gg.toast("共偏移 "..#sj.." 个数据") else gg.toast("没有搜索数据") end end function xg1(value,lx,py,dj) if #sj~=nil then z={} for i=1,#sj do z[i]={} z[i].address=sj[i].address+py z[i].flags=lx z[i].value=value if dj==true then z[i].freeze=true end end if dj==true then gg.addListItems(z) else gg.clearList() gg.setValues(z) end gg.toast("共修改 "..#z.." 个数据") else gg.toast("没有搜索数据") end end function xg2(bz,value,lx,py,dj) if #bz~=nil then z={} for i=1,#bz do z[i]={} z[i].address=bz[i].address+py z[i].flags=lx z[i].value=value if dj==true then z[i].freeze=true end end if dj==true then gg.addListItems(z) else gg.clearList() gg.setValues(z) end gg.toast("共修改 "..#z.." 个数据") else gg.toast("没有搜索数据") end end function bc(bz) if sj~=nil then _ENV[bz]=sj else gg.toast("无数据") end end function BaAdd(add) t=gg.getValues({[1]={address=add,flags=4}}) return t[1].value&0xFFFFFFFF end function set(dz,xg,lx,dj) if dj=="true" then gg.addListItems({{address=dz,flags=lx,value=xg,freeze=true}}) else gg.setValues({{address=dz,flags=lx,value=xg}}) end gg.toast("已修改完成~") end ------------------------------------------------------------------------------------------------------------- function nc_offset(addr,tablex,tt) for i,v in ipairs(tablex) do if v[4]==true then gg.addListItems({{address=addr+v[3],flags=v[2],value=v[1],freeze=v[4]}})else gg.setValues({{address=addr+v[3],flags=v[2],value=v[1]}}) end end gg.toast((tt or "").."开启成功") end function getso(So_name) return gg.getRangesList(So_name)[1].start end function BaAdd(add) t=gg.getValues({[1]={address=add,flags=4}}) return t[1].value&0xFFFFFFFF end function readPointer(Add,Item) for i=1,(#Item-1) do Add=BaAdd(Add+Item[i]) end return Add+Item[#Item] end function setvalue(add,value,falgs,dj) local WY={} WY[1]={} WY[1].address=add WY[1].value=value WY[1].flags=falgs if dj==true then WY[1].freeze=true gg.addListItems(WY) else gg.setValues(WY) end end function getnc(Name,nc) local t=gg.getRangesList(Name) for i, v in ipairs(t) do if v.state==nc then return v.start end end end function SearchWrite(Search, Write, Type) gg.clearResults() gg.setVisible(false) gg.searchNumber(Search[1][1], Type) local count = gg.getResultCount() local result = gg.getResults(count) gg.clearResults() local data = {} local base = Search[1][2] if (count > 0) then for i, v in ipairs(result) do v.isUseful = true end for k=2, #Search do local tmp = {} local offset = Search[k][2] - base local num = Search[k][1] for i, v in ipairs(result) do tmp[#tmp+1] = {} tmp[#tmp].address = v.address + offset tmp[#tmp].flags = v.flags end tmp = gg.getValues(tmp) for i, v in ipairs(tmp) do if ( tostring(v.value) ~= tostring(num) ) then result[i].isUseful = false end end end for i, v in ipairs(result) do if (v.isUseful) then data[#data+1] = v.address end end if (#data > 0) then gg.toast("\n共修改"..#data.."条数据") local t = {} local base = Search[1][2] for i=1, #data do for k, w in ipairs(Write) do offset = w[2] - base t[#t+1] = {} t[#t].address = data[i] + offset t[#t].flags = Type t[#t].value = w[1] if (w[3] == true) then local item = {} item[#item+1] = t[#t] item[#item].freeze = true gg.addListItems(item) end end end gg.setValues(t) else gg.toast("\n开启失败", false) return false end else gg.toast("\n开启失败") return false end end ------------------------------------------------------------------------------------------------------------- function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) if not nFindLastIndex then nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString)) break end nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1) nFindStartIndex = nFindLastIndex + string.len(szSeparator) nSplitIndex = nSplitIndex + 1 end return nSplitArray end function xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) xgsl = xgsl + 1 end end function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "\n开启失败") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "\n开启失败") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. szpy[1].value szpd = split(pdpd, ";") tzszpd = szpd[1] pyszpd = szpd[2] if tzszpd == pyszpd then pdjg = true pdsz = true else pdjg = false pdsz = false end end end if pdjg == true then szpy = sl[i].address xgxc(szpy, qmxg) xgjg = true end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "\n开启成功\n共修改" .. xgsl .. "\n条数据") else gg.toast(qmnb[2]["name"] .. "\n开启失败") end end end end ------------------------------------------------------------------------------------------------------------- local function LongTao(Search, Write) gg.clearResults() gg.setVisible(false) lx=Search[1]["类型"] gg.searchNumber(Search[1]["主特征码"], lx) local count = gg.getResultCount() local result = gg.getResults(count) gg.clearResults() local data = {} if (count > 0) then gg.toast("共搜索 "..count.." 条数据") for i, v in ipairs(result) do v.isUseful = true end for k=2, #Search do local tmp = {} local num = Search[k]["副特征码"] if Search[k]["类型"]~= nil then lx =Search[k]["类型"] else lx = Search[1]["类型"] end for i, v in ipairs(result) do tmp[#tmp+1] = {} tmp[#tmp].address = v.address + Search[k]["偏移"] tmp[#tmp].flags = lx end tmp = gg.getValues(tmp) for i, v in ipairs(tmp) do if ( tostring(v.value) ~= tostring(num) ) then result[i].isUseful = false end end end for i, v in ipairs(result) do if (v.isUseful) then data[#data+1] = v.address end end if (#data > 0) then local t = {} for i=1, #data do for k, w in ipairs(Write) do if w["类型"] ~= nil then lx = w["类型"] else lx = Search[1]["类型"] end t[#t+1] = {} t[#t].address = data[i] + w["偏移"] t[#t].flags = lx if (w["修改"]~=nil) and (w["修改"]~=false) then t[#t].value = w["修改"] gg.setValues(t) if (w["冻结"] == true) then local item = {} item[#item+1] = t[#t] item[#item].freeze = w["冻结"] gg.addListItems(item) end end end end gg.loadResults(t) gg.toast("共偏移 "..#t.." 条数据") else gg.toast("未搜到数据!") return false end else gg.toast("未搜到数据!") return false end end function nc_offset(addr,tablex,tt) for i,v in ipairs(tablex) do if v[4]==true then gg.addListItems({{address=addr+v[3],flags=v[2],value=v[1],freeze=v[4]}})else gg.setValues({{address=addr+v[3],flags=v[2],value=v[1]}}) end end gg.toast((tt or "").."开启成功") end function getso(So_name) return gg.getRangesList(So_name)[1].start 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 end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("Not Found") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("修改成功, 共修改" .. (#tb[1] + #tb[2]) .. "条结果") else gg.toast("Not Found") end end end function readWrite(Search, Get, Type, Range, Name) gg.clearResults() gg.setRanges(Range) gg.setVisible(false) if Search[1][1] ~= false then gg.searchAddress(Search[1][1], 0xFFFFFFFF, Search[1][4] or Type, gg.SIGN_EQUAL, Search[1][5] or 1, Search[1][6] or -1) end gg.searchNumber(Search[1][2], Search[1][4] or Type, false, gg.SIGN_EQUAL, Search[1][5] or 1, Search[1][6] or -1) local count = gg.getResultCount() local result = gg.getResults(count) gg.clearResults() local data = {} local base = Search[1][3] if (count > 0) then for i, v in ipairs(result) do v.isUseful = true end for k = 2, #Search do local tmp = {} local offset = Search[k][2] - base local num = Search[k][1] for i, v in ipairs(result) do tmp[#tmp + 1] = {} tmp[#tmp].address = v.address + offset tmp[#tmp].flags = Search[k][3] or Type end tmp = gg.getValues(tmp) for i, v in ipairs(tmp) do if v.flags == 16 or v.flags == 64 then values = tostring(v.value):sub(1, 6) num = tostring(num):sub(1, 6) else values = v.value end if tostring(values) ~= tostring(num) then result[i].isUseful = false end end end for i, v in ipairs(result) do if (v.isUseful) then data[#data + 1] = v.address end end if (#data > 0) then local t, t_ = {}, {} local base = Search[1][3] for i = 1, #data do for k, w in ipairs(Get) do offset = w[2] - base if w[1] == false then t_[#t_ + 1] = {} t_[#t_].address = data[i] + offset t_[#t_].flags = Type th_ = (th_) and th_ + 1 or 1 else t[#t + 1] = {} t[#t].address = data[i] + offset t[#t].flags = w[3] or Type t[#t].value = w[1] tg_ = (tg_) and tg_ + 1 or 1 if (w[4] == true) then local item = {} item[#item + 1] = t[#t] item[#item].freeze = w[4] gg.addListItems(item) end end end end tg = (tg_) and "\n已修改" .. tg_ .. "条数据" or "" th = (th_) and "\n已获取" .. th_ .. "条数据" or "" gg.setValues(t) t_ = gg.getValues(t_) gg.loadResults(t_) gg.toast("\n" .. Name .. "搜索成功!\n偏移到" .. #data .. "条数据" .. tg .. th) tg_, th_ = nil, nil else gg.toast("\n" .. Name .. "开启失败", false) return false end else gg.toast(Name .. "开启失败") return false end end ------------------------------------------------------------------------------------------------------------- function XGBase(Address, AFV) local address = 0 for index, offset in ipairs(Address) do if index == 1 then address = offset else address = gg.getValues({{address = address + offset, flags = 4}})[1].value end end local Value, Freeze = {}, {} for index, value in ipairs(AFV) do local VALUE = {address = address + value[3], flags = value[2], value = value[1], freeze = true} if value[4] then Freeze[#Freeze + 1] = VALUE else Value[#Value + 1] = VALUE end end gg.setValues(Value) gg.addListItems(Freeze) 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 gg.edits = function(addr, Table, name) 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]) gg.toast((name or "") .. "开启成功, 共修改" .. #Table .. "个值") end function Mswrite(search) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) if type(search[1][4]) == "string" then gg.searchAddress(search[1][4]) end gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then return gg.toast("搜索失败") else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = {address = r.address + search[i][2], flags = search[i][3]} end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end gg.toast("共搜索到" .. #result .. "条数据") return result end end function SearchWrite(read, write) gg.clearResults() gg.setRanges(read["内存"]) gg.setVisible(false) gg.searchNumber(read["主特征码"], read["类型"]) if gg.getResultCount() > 0 then local Result = gg.getResults(gg.getResultCount()) gg.clearResults() for i = 1, #read do local t = {} for e, v in ipairs(Result) do t[#t + 1] = {address = v.address + read[i]["偏移"], flags = read[i]["类型"]} end t = gg.getValues(t) for _a, x in ipairs(t) do if x.value ~= read[i]["值"] then Result[_a] = nil end end local MS = {} for i, v in pairs(Result) do MS[#MS + 1] = Result[i] end Result = MS end if (#Result > 0) then local data = {{}, {}} for i, v in ipairs(Result) do for a, x in ipairs(write) do if x["冻结"] == true then data[2][#data[2] + 1] = {address = v.address + x["偏移"], flags = x["类型"], value = x["值"], freeze = true} else data[1][#data[1] + 1] = {address = v.address + x["偏移"], flags = x["类型"], value = x["值"]} end end end gg.setValues(data[1]) gg.addListItems(data[2]) gg.toast((read["功能名称"] or read["名称"] or read["name"] or "") .. "开启成功,共搜索" .. #Result .. "条地址\n已修改" .. (#data[1] + #data[2]) .. "条数据") else gg.toast((read["功能名称"] or read["名称"] or read["name"] or "") .. "修改失败") end else gg.toast((read["功能名称"] or read["名称"] or read["name"] or "") .. "开启失败,未搜索到数据") end end function xqmnb(x) local tp1 = {["内存"] = x[1]["memory"], ["主特征码"] = x[3]["value"], ["类型"] = x[3]["type"], ["name"] = x[2]["name"]} for i = 4, #x do tp1[#tp1 + 1] = {["值"] = x[i]["lv"], ["偏移"] = x[i].offset, ["类型"] = x[i].type} end local tp2 = {} for i, v in ipairs(qmxg) do tp2[#tp2 + 1] = {["值"] = v.value, ["类型"] = v.type, ["偏移"] = v.offset, ["冻结"] = (v.freeze or nil)} end SearchWrite(tp1, tp2) end function readValue(add, flags) local t = gg.getValues({[1] = {address = add, flags = flags}}) return t[1].value end function readAdd(add) local t = gg.getValues({[1] = {address = add, flags = 4}}) return t[1].value & 0xFFFFFFFF 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 end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end function readWrite(Search,Get,Type,Range,Name) gg.clearResults() gg.setRanges(Range) gg.setVisible(false) if Search[1][1]~=false then gg.searchAddress(Search[1][1],0xFFFFFFFF,Search[1][4] or Type,gg.SIGN_EQUAL,Search[1][5] or 1,Search[1][6] or -1) end gg.searchNumber(Search[1][2],Search[1][4] or Type,false,gg.SIGN_EQUAL,Search[1][5] or 1,Search[1][6] or -1) local count=gg.getResultCount() local result=gg.getResults(count) gg.clearResults() local data={} local base=Search[1][3] if (count > 0) then for i,v in ipairs(result) do v.isUseful=true end for k=2,#Search do local tmp={} local offset=Search[k][2] - base local num=Search[k][1] for i,v in ipairs(result) do tmp[#tmp+1]={} tmp[#tmp].address=v.address+offset tmp[#tmp].flags=Search[k][3] or Type end tmp=gg.getValues(tmp) for i,v in ipairs(tmp) do if v.flags==16 or v.flags==64 then values=tostring(v.value):sub(1,6) num=tostring(num):sub(1,6) else values=v.value end if tostring(values)~=tostring(num) then result[i].isUseful=false end end end for i,v in ipairs(result) do if (v.isUseful) then data[#data+1]=v.address end end if (#data > 0) then local t,t_={},{} local base=Search[1][3] for i=1,#data do for k,w in ipairs(Get) do offset=w[2] - base if w[1]==false then t_[#t_+1]={} t_[#t_].address=data[i]+offset t_[#t_].flags=Type th_=(th_) and th_+1 or 1 else t[#t+1]={} t[#t].address=data[i]+offset t[#t].flags=w[3] or Type t[#t].value=w[1] tg_=(tg_) and tg_+1 or 1 if (w[4]==true) then local item={} item[#item+1]=t[#t] item[#item].freeze=w[4] gg.addListItems(item) end end end end tg=(tg_) and "\n已修改"..tg_.."个值" or "" th=(th_) and "\n已获取"..th_.."个值" or "" gg.setValues(t) t_=gg.getValues(t_) gg.loadResults(t_) gg.toast("\n"..Name.."搜索成功!\n偏移到"..#data.."个值"..tg..th) tg_,th_=nil,nil else gg.toast(Name.."警告⚠️:没有值可修改",false) return false end else gg.toast(Name.."警告⚠️:没有值可修改") return false 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 readWrite(Search, Get, Type, Range, Name) gg.clearResults() gg.setRanges(Range) gg.setVisible(false) if Search[1][1] ~= false then gg.searchAddress(Search[1][1], 0xFFFFFFFF, Search[1][4] or Type, gg.SIGN_EQUAL, Search[1][5] or 1, Search[1][6] or -1) end gg.searchNumber(Search[1][2], Search[1][4] or Type, false, gg.SIGN_EQUAL, Search[1][5] or 1, Search[1][6] or -1) local count = gg.getResultCount() local result = gg.getResults(count) gg.clearResults() local data = {} local base = Search[1][3] if (count > 0) then for i, v in ipairs(result) do v.isUseful = true end for k = 2, #Search do local tmp = {} local offset = Search[k][2] - base local num = Search[k][1] for i, v in ipairs(result) do tmp[#tmp + 1] = {} tmp[#tmp].address = v.address + offset tmp[#tmp].flags = Search[k][3] or Type end tmp = gg.getValues(tmp) for i, v in ipairs(tmp) do if v.flags == 16 or v.flags == 64 then values = tostring(v.value):sub(1, 6) num = tostring(num):sub(1, 6) else values = v.value end if tostring(values) ~= tostring(num) then result[i].isUseful = false end end end for i, v in ipairs(result) do if (v.isUseful) then data[#data + 1] = v.address end end if (#data > 0) then local t, t_ = {}, {} local base = Search[1][3] for i = 1, #data do for k, w in ipairs(Get) do offset = w[2] - base if w[1] == false then t_[#t_ + 1] = {} t_[#t_].address = data[i] + offset t_[#t_].flags = Type th_ = (th_) and th_ + 1 or 1 else t[#t + 1] = {} t[#t].address = data[i] + offset t[#t].flags = w[3] or Type t[#t].value = w[1] tg_ = (tg_) and tg_ + 1 or 1 if (w[4] == true) then local item = {} item[#item + 1] = t[#t] item[#item].freeze = w[4] gg.addListItems(item) end end end end tg = (tg_) and "\n已修改" .. tg_ .. "条数据" or "" th = (th_) and "\n已获取" .. th_ .. "条数据" or "" gg.setValues(t) t_ = gg.getValues(t_) gg.loadResults(t_) gg.toast("\n" .. Name .. "搜索成功!\n偏移到" .. #data .. "条数据" .. tg .. th) tg_, th_ = nil, nil else gg.toast(Name .. "警告⚠️:没有值可修改", false) return false end else gg.toast(Name .. "警告⚠️:没有值可修改") return false end end ------------------------------------------------------------------------------------------------------------- readPointer = function(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, name) 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]) gg.toast((name or "") .. "修改成功 [ 修改"..#Table.."个值 ] ") end ------------------------------------------------------------------------------------------------------------- local il2cppStart = 0 for k, v in pairs(gg.getRangesList('libil2cpp.so$')) do if (v.state == 'Xa') then il2cppStart = v['start'] break end end ------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------- function nc_offset(addr, tablex, tt) for i, v in ipairs(tablex) do if v[4] == true then gg.addListItems({{address = addr + v[3], flags = v[2], value = v[1], freeze = v[4]}}) else gg.setValues({{address = addr + v[3], flags = v[2], value = v[1]}}) end end gg.toast((tt or "") .. "修改成功,修改1个值") end function getso(So_name) return gg.getRangesList(So_name)[1].start end function BaAdd(add) t = gg.getValues({[1] = {address = add, flags = 4}}) return t[1].value & 0xFFFFFFFF end function readPointer(Add, Item) for i = 1, (#Item - 1) do Add = BaAdd(Add + Item[i]) end return Add + Item[#Item] end function setvalue(add, value, falgs, dj) local WY = {} WY[1] = {} WY[1].address = add WY[1].value = value WY[1].flags = falgs if dj == true then WY[1].freeze = true gg.addListItems(WY) else gg.setValues(WY) end end function getnc(Name, nc) local t = gg.getRangesList(Name) for i, v in ipairs(t) do if v.state == nc then return v.start end end end function SearchWrite_1(Search, Write, Type) gg.clearResults() gg.setVisible(false) gg.searchNumber(Search[1][1], Type) local count = gg.getResultCount() local result = gg.getResults(count) gg.clearResults() local data = {} local base = Search[1][2] if (count > 0) then for i, v in ipairs(result) do v.isUseful = true end for k = 2, #Search do local tmp = {} local offset = Search[k][2] - base local num = Search[k][1] for i, v in ipairs(result) do tmp[#tmp + 1] = {} tmp[#tmp].address = v.address + offset tmp[#tmp].flags = v.flags end tmp = gg.getValues(tmp) for i, v in ipairs(tmp) do if (tostring(v.value) ~= tostring(num)) then result[i].isUseful = false end end end for i, v in ipairs(result) do if (v.isUseful) then data[#data + 1] = v.address end end if (#data > 0) then gg.toast("\n共修改" .. #data .. "条数据") local t = {} local base = Search[1][2] for i = 1, #data do for k, w in ipairs(Write) do offset = w[2] - base t[#t + 1] = {} t[#t].address = data[i] + offset t[#t].flags = Type t[#t].value = w[1] if (w[3] == true) then local item = {} item[#item + 1] = t[#t] item[#item].freeze = true gg.addListItems(item) end end end gg.setValues(t) else gg.toast("警告⚠️:没有值可修改", false) return false end else gg.toast("警告⚠️:没有值可修改") return false end end ------------------------------------------------------------------------------------------------------------- function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do while avaIxGahNmS9IAQk < os.time() do gg.alert('脚本已过期') os.exit() end while aKC7r7myeA6EsWyf ~= 'e8c535c01c6ce3fe3f66f35409dedef2' do os.exit() end local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) if not nFindLastIndex then nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString)) break end nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1) nFindStartIndex = nFindLastIndex + string.len(szSeparator) nSplitIndex = nSplitIndex + 1 end return nSplitArray end function xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) xgsl = xgsl + 1 end end function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "警告⚠️:没有值可修改") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "警告⚠️:没有值可修改") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. szpy[1].value szpd = split(pdpd, ";") tzszpd = szpd[1] pyszpd = szpd[2] if tzszpd == pyszpd then pdjg = true pdsz = true else pdjg = false pdsz = false end end end if pdjg == true then szpy = sl[i].address xgxc(szpy, qmxg) xgjg = true end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "\n修改成功\n共修改" .. xgsl .. "\n个值") else gg.toast(qmnb[2]["name"] .. "警告⚠️:没有值可修改") end end end end ------------------------------------------------------------------------------------------------------------- DWORD = gg.TYPE_DWORD DOUBLE = gg.TYPE_DOUBLE FLOAT = gg.TYPE_FLOAT WORD = gg.TYPE_WORD BYTE = gg.TYPE_BYTE XOR = gg.TYPE_XOR QWORD = gg.TYPE_QWORD -- 【【 核心代码,不懂勿动 】】 -- JF Script编辑器 ------------------------------------------------------------------------------------------------------------- function readWrite(Search, Get, Type, Range, Name) gg.clearResults() gg.setRanges(Range) gg.setVisible(false) if Search[1][1] ~= false then gg.searchAddress(Search[1][1], 0xFFFFFFFF, Search[1][4] or Type, gg.SIGN_EQUAL, Search[1][5] or 1, Search[1][6] or -1) end gg.searchNumber(Search[1][2], Search[1][4] or Type, false, gg.SIGN_EQUAL, Search[1][5] or 1, Search[1][6] or -1) local count = gg.getResultCount() local result = gg.getResults(count) gg.clearResults() local data = {} local base = Search[1][3] if (count > 0) then for i, v in ipairs(result) do v.isUseful = true end for k = 2, #Search do local tmp = {} local offset = Search[k][2] - base local num = Search[k][1] for i, v in ipairs(result) do tmp[#tmp + 1] = {} tmp[#tmp].address = v.address + offset tmp[#tmp].flags = Search[k][3] or Type end tmp = gg.getValues(tmp) for i, v in ipairs(tmp) do if v.flags == 16 or v.flags == 64 then values = tostring(v.value):sub(1, 6) num = tostring(num):sub(1, 6) else values = v.value end if tostring(values) ~= tostring(num) then result[i].isUseful = false end end end for i, v in ipairs(result) do if (v.isUseful) then data[#data + 1] = v.address end end if (#data > 0) then local t, t_ = {}, {} local base = Search[1][3] for i = 1, #data do for k, w in ipairs(Get) do offset = w[2] - base if w[1] == false then t_[#t_ + 1] = {} t_[#t_].address = data[i] + offset t_[#t_].flags = Type th_ = (th_) and th_ + 1 or 1 else t[#t + 1] = {} t[#t].address = data[i] + offset t[#t].flags = w[3] or Type t[#t].value = w[1] tg_ = (tg_) and tg_ + 1 or 1 if (w[4] == true) then local item = {} item[#item + 1] = t[#t] item[#item].freeze = w[4] gg.addListItems(item) end end end end tg = (tg_) and "\n已修改" .. tg_ .. "条数据" or "" th = (th_) and "\n已获取" .. th_ .. "条数据" or "" gg.setValues(t) t_ = gg.getValues(t_) gg.loadResults(t_) gg.toast("" .. Name .. "搜索成功!\n偏移到" .. #data .. "条数据" .. tg .. th) tg_, th_ = nil, nil else gg.toast(Name .. "警告⚠️:没有值可修改", false) return false end else gg.toast(Name .. "警告⚠️:没有值可修改") return false end 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 gg.edits = function(addr, Table, name) 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]) gg.toast((name or "") .. "修改成功, 共修改" .. #Table .. "个值") end function Mswrite(search) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) if type(search[1][4]) == "string" then gg.searchAddress(search[1][4]) end gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then return gg.alert("初始化失败") else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = {address = r.address + search[i][2], flags = search[i][3]} end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end gg.toast("共搜索到" .. #result .. "条数据") return result end end function SearchWrite(read, write) gg.clearResults() gg.setRanges(read["内存"]) gg.setVisible(false) gg.searchNumber(read["主特征码"], read["类型"]) if gg.getResultCount() > 0 then local Result = gg.getResults(gg.getResultCount()) gg.clearResults() for i = 1, #read do local t = {} for e, v in ipairs(Result) do t[#t + 1] = {address = v.address + read[i]["偏移"], flags = read[i]["类型"]} end t = gg.getValues(t) for _a, x in ipairs(t) do if x.value ~= read[i]["值"] then Result[_a] = nil end end local MS = {} for i, v in pairs(Result) do MS[#MS + 1] = Result[i] end Result = MS end if (#Result > 0) then local data = {{}, {}} for i, v in ipairs(Result) do for a, x in ipairs(write) do if x["冻结"] == true then data[2][#data[2] + 1] = {address = v.address + x["偏移"], flags = x["类型"], value = x["值"], freeze = true} else data[1][#data[1] + 1] = {address = v.address + x["偏移"], flags = x["类型"], value = x["值"]} end end end gg.setValues(data[1]) gg.addListItems(data[2]) gg.toast((read["功能名称"] or read["名称"] or read["name"] or "") .. "修改成功,共搜索" .. #Result .. "条地址\n修改" .. (#data[1] + #data[2]) .. "个值") else gg.toast((read["功能名称"] or read["名称"] or read["name"] or "") .. "修改失败,没有合适的主特征码") end else gg.toast((read["功能名称"] or read["名称"] or read["name"] or "") .. "开启失败,未搜索到数据") end end function xqmnb(x) local tp1 = {["内存"] = x[1]["memory"], ["主特征码"] = x[3]["value"], ["类型"] = x[3]["type"], ["name"] = x[2]["name"]} for i = 4, #x do tp1[#tp1 + 1] = {["值"] = x[i]["lv"], ["偏移"] = x[i].offset, ["类型"] = x[i].type} end local tp2 = {} for i, v in ipairs(qmxg) do tp2[#tp2 + 1] = {["值"] = v.value, ["类型"] = v.type, ["偏移"] = v.offset, ["冻结"] = (v.freeze or nil)} end SearchWrite(tp1, tp2) end function readValue(add, flags) local t = gg.getValues({[1] = {address = add, flags = flags}}) return t[1].value end function readAdd(add) local t = gg.getValues({[1] = {address = add, flags = 4}}) return t[1].value & 0xFFFFFFFF end ------------------------------------------------------------------------------------------------------------- function setvalue(add,lv,falg) gg.setValues({{address=add,flags=falg,value=lv}}) end function readAdd(add) t=gg.getValues({[1]={address=add,flags=4}}) add=string.format("%X",t[1].value) if (#add)==16 then add=add:sub(9,16) end if (#add)==1 then add=add.."0000000" else add=string.format("%d","0x"..add) end return add end ------------------------------------------------------------------------------------------------------------- function fastsearch(search, write,we) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then if we~=nil then gg.toast(we.." -> 主特征码不存在") end return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) if we~=nil then gg.toast(we.." -> 共修改" .. (#tb[1] + #tb[2]) .. "条结果") end else if we~=nil then gg.toast(we.." -> 警告⚠️:没有值可修改") end end end end ------------------------------------------------------------------------------------------------------------- function fastsearch(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("警告⚠️:没有值可修改") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do --- 遍历每个结果 for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then --- true 就是冻结 table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("修改成功, 共修改" .. (#tb[1] + #tb[2]) .. "个值") else gg.toast("警告⚠️:没有值可修改") end end end ------------------------------------------------------------------------------------------------------------- local function LongTao(Search, Write) gg.clearResults() gg.setVisible(false) lx=Search[1]["类型"] gg.searchNumber(Search[1]["主特征码"], lx) local count = gg.getResultCount() local result = gg.getResults(count) gg.clearResults() local data = {} if (count > 0) then gg.toast("共搜索 "..count.." 条数据") for i, v in ipairs(result) do v.isUseful = true end for k=2, #Search do local tmp = {} local num = Search[k]["副特征码"] if Search[k]["类型"]~= nil then lx =Search[k]["类型"] else lx = Search[1]["类型"] end for i, v in ipairs(result) do tmp[#tmp+1] = {} tmp[#tmp].address = v.address + Search[k]["偏移"] tmp[#tmp].flags = lx end tmp = gg.getValues(tmp) for i, v in ipairs(tmp) do if ( tostring(v.value) ~= tostring(num) ) then result[i].isUseful = false end end end for i, v in ipairs(result) do if (v.isUseful) then data[#data+1] = v.address end end if (#data > 0) then local t = {} for i=1, #data do for k, w in ipairs(Write) do if w["类型"] ~= nil then lx = w["类型"] else lx = Search[1]["类型"] end t[#t+1] = {} t[#t].address = data[i] + w["偏移"] t[#t].flags = lx if (w["修改"]~=nil) and (w["修改"]~=false) then t[#t].value = w["修改"] gg.setValues(t) if (w["冻结"] == true) then local item = {} item[#item+1] = t[#t] item[#item].freeze = w["冻结"] gg.addListItems(item) end end end end gg.loadResults(t) gg.toast("共偏移 "..#t.." 条数据") else gg.toast("未搜到数据!") return false end else gg.toast("未搜到数据!") return false end end function hmhqdz(address,hmlx) hmhq = {} hmhq[1] = {} hmhq[1].address = address hmhq[1].flags = hmlx huanmie=gg.getValues(hmhq) hm=huanmie[1]['value'] return hm end --获取地址内存值配置不懂勿动 function editData(qmnb,qmxg)gg.setVisible(false)gg.clearResults()qmnbv=qmnb[3]["value"]or qmnb[3][1]qmnbt=qmnb[3]["type"]or qmnb[3][2]qmnbn=qmnb[2]["name"]or qmnb[2][1]gg.setRanges(qmnb[1]["memory"]or qmnb[1][1])gg.searchNumber(qmnbv,qmnbt)gg.refineNumber(qmnbv,qmnbt)sz=gg.getResultCount()if sz==0 then gg.toast(qmnbn.."警告⚠️:没有值可修改")else sl=gg.getResults(999999)for i=1,sz do pdsz=true for v=4,#qmnb do if pdsz==true then pysz={{}}pysz[1].address=sl[i].address+(qmnb[v]["offset"]or qmnb[v][2])pysz[1].flags=qmnb[v]["type"]or qmnb[v][3]szpy=gg.getValues(pysz)tzszpd=tostring(qmnb[v]["lv"]or qmnb[v][1]):gsub(",","")pyszpd=tostring(szpy[1].value):gsub(",","")if tzszpd==pyszpd then pdjg=true pdsz=true else pdjg=false pdsz=false end end end if pdjg==true then szpy=sl[i].address for x=1,#qmxg do xgsz=qmxg[x]["value"]or qmxg[x][1]xgpy=szpy+(qmxg[x]["offset"]or qmxg[x][2])xglx=qmxg[x]["type"]or qmxg[x][3]xgdj=qmxg[x]["freeze"]or qmxg[x][4]xg={{address=xgpy,flags=xglx,value=xgsz}}if xgdj==true then xg[1].freeze=xgdj gg.addListItems(xg)else gg.setValues(xg)end end xgjg=true end end if xgjg==true then gg.toast(qmnbn.."修改成功,修改1个值")else gg.toast(qmnbn.."警告⚠️:没有值可修改")end end end --偏移配置 function SignatureSearch(FirstCode,SecondCode,Get) gg.clearResults() gg.setRanges(FirstCode[6]) gg.setVisible(false) if FirstCode[1] then gg.searchNumber(FirstCode[1],FirstCode[5],false,gg.SIGN_EQUAL,FirstCode[3] or 0,FirstCode[4] or -1) end if FirstCode[2] then gg.searchAddress(FirstCode[2],-1,FirstCode[5],gg.SIGN_EQUAL,0,-1) end if gg.getResultsCount()>0 then local results1,results2,NewResults=gg.getResults(gg.getResultsCount()),gg.getResults(gg.getResultsCount()),{} gg.clearResults() if #SecondCode>0 then for i=1,#SecondCode do local Results={} if i%2==1 then for j,result in ipairs(results1) do Results[#Results+1]={} Results[#Results].address=result.address+SecondCode[i][2] Results[#Results].flags=SecondCode[i][3] end results2={} else for j,result in ipairs(results2) do Results[#Results+1]={} Results[#Results].address=result.address+SecondCode[i][2] Results[#Results].flags=SecondCode[i][3] end results1={} end Results=gg.getValues(Results) local value,code=nil,nil for k,result2 in ipairs(Results) do if result2.flags==16 or result2.flags==64 then value=tostring(result2.value):sub(1,6) code=tostring(SecondCode[i][1]):sub(1,6) else value=result2.value code=SecondCode[i][1] end if i%2==1 then if value==code then results2[#results2+1]=results1[k] end else if value==code then results1[#results1+1]=results2[k] end end end end end if #SecondCode%2==1 then NewResults=results2 else NewResults=results1 end local changeresults,keepresults,loadresults={},{},{} if #NewResults>0 then for i,result in ipairs(NewResults) do for j,conduct in ipairs(Get) do if conduct[1] then changeresults[#changeresults+1]={} changeresults[#changeresults].value=conduct[1] changeresults[#changeresults].address=result.address+conduct[2] changeresults[#changeresults].flags=conduct[3] else loadresults[#loadresults+1]={} loadresults[#loadresults].address=result.address+conduct[2] loadresults[#loadresults].flags=conduct[3] end if conduct[4] or conduct[5] then keepresults[#keepresults+1]={} if conduct[1] then keepresults[#keepresults].value=conduct[1] else keepresults[#keepresults].value=gg.getValues({[1]={address=result.address+conduct[2],flags=conduct[3]}})[1].value end keepresults[#keepresults].address=result.address+conduct[2] keepresults[#keepresults].flags=conduct[3] keepresults[#keepresults].freeze=conduct[5] keepresults[#keepresults].name=conduct[6] end end end gg.setValues(changeresults) gg.loadResults(loadresults) gg.addListItems(keepresults) else gg.toast("特征码搜索失败") end else gg.toast("特征码搜索失败") end end function nh(search, write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast("开启失败") return false else local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("修改成功, 已修改" .. (#tb[1] + #tb[2]) .. "条数据") else gg.toast("开启失败") end end end gg.alert('公告:建议用或虚拟机') local Table_QQ={ 2245038273,--san } for k,v in pairs(Table_QQ) do local panduan=os.rename("/storage/emulated/0/Android/data/com.tencent.mobileqq/Tencent/MobileQQ/"..v,"/storage/emulated/0/Android/data/com.tencent.mobileqq/Tencent/MobileQQ/"..v,"/storage/emulated/0/Android/data/com.tencent.mobileqq/Tencent/MobileQQ/"..v) while not not panduan and panduan do print("你已被aksm拉进黑名单应用将无法运行") os.exit() end end -- 【【 核心代码,不懂勿动 】】 -- JF Script编辑器 D=gg.TYPE_DWORD E=gg.TYPE_DOUBLE F=gg.TYPE_FLOAT W=gg.TYPE_WORD B=gg.TYPE_BYTE X=gg.TYPE_XOR Q=gg.TYPE_QWORD _ENV['运行初始化[必开]'] = function() so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressD(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '~A BX LR' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressQ(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '-494030820' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressB(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '-494030842' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressA(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '-494030840' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressC(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '-494030824' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressAA(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value tt[2] = {} tt[2].address = so + address + 0x4 tt[2].flags = 4 tt[2].value = '-494030832' gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressF(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 16 tt[1].value = value gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressZZZ(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 32 tt[1].value = value gg.setValues(tt) end so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressY(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value gg.setValues(tt) end gg.alert("数据运行成功") end _ENV['登陆防闪'] = function() gg.clearResults() local t = {"libtersafe2.so", "Cd"} local tt = {0xA8} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 4, value = -1}}) gg.alert("开启成功") end _ENV['aksm自用过检[登录页面]'] = function() if gg.getRangesList("libtersafe2.so")[1] then local t = {} t[1] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x6bb8; t[2] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x6b7c; t[3] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x6b64; t[4] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x6b1c; t[5] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x6ae4; t[6] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x7580; t[7] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x7554; t[8] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x7550; t[9] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x7514; t[10] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x7450; t[11] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x73f0; t[12] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x73ec; t[13] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x73e8; t[14] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x73e0; t[15] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x734c; t[16] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x7338; t[17] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x72a8; t[18] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x7248; t[19] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x7210; t[20] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x7190; t[21] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x718c; t[22] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x70ec; t[23] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x70ac; t[24] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x6d78; t[25] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x6cf8; t[26] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x6cd8; t[27] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x6cb8; t[28] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x6c74; t[29] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x6c60; t[30] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x6bd8; t[31] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x6bb8; t[32] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x6b7c; t[33] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x6b64; t[34] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x6b1c; t[35] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x6ae4; t[36] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x195bc; t[37] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x195ac; t[38] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x195a8; t[39] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x195a4; t[40] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x19598; t[41] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x19594; t[42] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x19590; t[43] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x1958c; t[44] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x19588; t[45] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x19580; t[46] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x19574; t[47] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x19570; t[48] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x1956c; t[49] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x19564; t[50] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x19560; t[51] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x1955c; t[52] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x19558; t[53] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x19550; t[54] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x19548; t[55] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x19544; t[56] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x19540; t[57] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x19538; t[58] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x19534; t[59] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x19530; t[60] = gg.getRangesList("libtersafe2.so")[1]["start"] + 0x19524; gg.addListItems({ [1] = { address = t[1], flags = 4, value = 0, freeze = true, }, [2] = { address = t[2], flags = 4, value = 0, freeze = true, }, [3] = { address = t[3], flags = 4, value = 0, freeze = true, }, [4] = { address = t[4], flags = 4, value = 0, freeze = true, }, [5] = { address = t[5], flags = 4, value = 0, freeze = true, }, [6] = { address = t[6], flags = 4, value = 0, freeze = true, }, [7] = { address = t[7], flags = 4, value = 0, freeze = true, }, [8] = { address = t[8], flags = 4, value = 0, freeze = true, }, [9] = { address = t[9], flags = 4, value = 0, freeze = true, }, [10] = { address = t[10], flags = 4, value = 0, freeze = true, }, [11] = { address = t[11], flags = 4, value = 0, freeze = true, }, [12] = { address = t[12], flags = 4, value = 0, freeze = true, }, [13] = { address = t[13], flags = 4, value = 0, freeze = true, }, [14] = { address = t[14], flags = 4, value = 0, freeze = true, }, [15] = { address = t[15], flags = 4, value = 0, freeze = true, }, [16] = { address = t[16], flags = 4, value = 0, freeze = true, }, [17] = { address = t[17], flags = 4, value = 0, freeze = true, }, [18] = { address = t[18], flags = 4, value = 0, freeze = true, }, [19] = { address = t[19], flags = 4, value = 0, freeze = true, }, [20] = { address = t[20], flags = 4, value = 0, freeze = true, }, [21] = { address = t[21], flags = 4, value = 0, freeze = true, }, [22] = { address = t[22], flags = 4, value = 0, freeze = true, }, [23] = { address = t[23], flags = 4, value = 0, freeze = true, }, [24] = { address = t[24], flags = 4, value = 0, freeze = true, }, [25] = { address = t[25], flags = 4, value = 0, freeze = true, }, [26] = { address = t[26], flags = 4, value = 0, freeze = true, }, [27] = { address = t[27], flags = 4, value = 0, freeze = true, }, [28] = { address = t[28], flags = 4, value = 0, freeze = true, }, [29] = { address = t[29], flags = 4, value = 0, freeze = true, }, [30] = { address = t[30], flags = 4, value = 0, freeze = true, }, [31] = { address = t[31], flags = 4, value = 0, freeze = true, }, [32] = { address = t[32], flags = 4, value = 0, freeze = true, }, [33] = { address = t[33], flags = 4, value = 0, freeze = true, }, [34] = { address = t[34], flags = 4, value = 0, freeze = true, }, [35] = { address = t[35], flags = 4, value = 0, freeze = true, }, [36] = { address = t[36], flags = 4, value = 0, freeze = true, }, [37] = { address = t[37], flags = 4, value = 0, freeze = true, }, [38] = { address = t[38], flags = 4, value = 0, freeze = true, }, [39] = { address = t[39], flags = 4, value = 0, freeze = true, }, [40] = { address = t[40], flags = 4, value = 0, freeze = true, }, [41] = { address = t[41], flags = 4, value = 0, freeze = true, }, [42] = { address = t[42], flags = 4, value = 0, freeze = true, }, [43] = { address = t[43], flags = 4, value = 0, freeze = true, }, [44] = { address = t[44], flags = 4, value = 0, freeze = true, }, [45] = { address = t[45], flags = 4, value = 0, freeze = true, }, [46] = { address = t[46], flags = 4, value = 0, freeze = true, }, [47] = { address = t[47], flags = 4, value = 0, freeze = true, }, [48] = { address = t[48], flags = 4, value = 0, freeze = true, }, [49] = { address = t[49], flags = 4, value = 0, freeze = true, }, [50] = { address = t[50], flags = 4, value = 0, freeze = true, }, [51] = { address = t[51], flags = 4, value = 0, freeze = true, }, [52] = { address = t[52], flags = 4, value = 0, freeze = true, }, [53] = { address = t[53], flags = 4, value = 0, freeze = true, }, [54] = { address = t[54], flags = 4, value = 0, freeze = true, }, [55] = { address = t[55], flags = 4, value = 0, freeze = true, }, [56] = { address = t[56], flags = 4, value = 0, freeze = true, }, [57] = { address = t[57], flags = 4, value = 0, freeze = true, }, [58] = { address = t[58], flags = 4, value = 0, freeze = true, }, [59] = { address = t[59], flags = 4, value = 0, freeze = true, }, [60] = { address = t[60], flags = 4, value = 0, freeze = true, }, }) gg.toast("过检成功") gg.alert('开启成功') end end _ENV['局内防优化[一把一开]'] = function() os.remove("https://cccimg.com/down.php/63a4b6befd7219b5006aff39ad1536ba.txt") nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C53F8},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C53FC},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5400},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5404},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5408},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C540C},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5410},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5414},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5418},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5438},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5448},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C544C},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5450},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5454},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5458},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C545C},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5460},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5468},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C546C},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C547C},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5480},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5484},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5488},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C548C},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5490},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5494},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5498},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C549C},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54A0},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54A4},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54AC},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54B0},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54B4},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54B8},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54BC},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54C0},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54C4},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54C8},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54CC},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54D0},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54D4},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54D8},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54DC},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54E0},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54E4},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54E8},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54F0},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54F4},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54F8},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54FC},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5500},}) nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5504},}) if gg.getRangesList("libApkPatchLibrary.so")[1] then local t = {} t[1] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0xF4; -- 数值地址:0xB8BC8014 t[2] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x20; -- 数值地址:0xB8BC8034 t[3] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x2; -- 数值地址:0xB8BC804C t[4] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579ABCA; -- 数值地址:0xB8BC804C t[5] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579ABCE; -- 数值地址:0xB8BC804C t[6] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579ABD6; -- 数值地址:0xB8BC804C t[7] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579ABDA; -- 数值地址:0xB8BC804C t[8] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579ABDE; -- 数值地址:0xB8BC804C t[9] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579ABE2; -- 数值地址:0xB8BC804C t[10] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579ABE6; -- 数值地址:0xB8BC804C t[11] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579ABEA; -- 数值地址:0xB8BC804C t[12] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579ABFE; -- 数值地址:0xB8BC804C t[13] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579AC02; -- 数值地址:0xB8BC804C t[14] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579AC06; -- 数值地址:0xB8BC804C t[15] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579AC0A; -- 数值地址:0xB8BC804C t[16] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579AC0E; -- 数值地址:0xB8BC804C t[17] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579AC12; -- 数值地址:0xB8BC804C t[18] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579AC16; -- 数值地址:0xB8BC804C t[19] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579AC1A; -- 数值地址:0xB8BC804C t[20] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579AC1E; -- 数值地址:0xB8BC804C t[21] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579AC5E; -- 数值地址:0xB8BC804C t[22] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579AC62; -- 数值地址:0xB8BC804C t[23] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579AC66; -- 数值地址:0xB8BC804C t[24] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579ABCA; -- 数值地址:0xB8BC804C t[25] = gg.getRangesList("libApkPatchLibrary.so")[1]["start"] + 0x6579AC6A; -- 数值地址:0xB8BC804C gg.addListItems({ [1] = { address = t[1], flags = 4, value = 0, freeze = true, }, [2] = { address = t[2], flags = 4, value = 0, freeze = true, }, [3] = { address = t[3], flags = 4, value = 0, freeze = true, }, [4] = { address = t[4], flags = 4, value = 0, freeze = true, }, [5] = { address = t[5], flags = 4, value = 0, freeze = true, }, [6] = { address = t[6], flags = 4, value = 0, freeze = true, }, [7] = { address = t[7], flags = 4, value = 0, freeze = true, }, [8] = { address = t[8], flags = 4, value = 0, freeze = true, }, [9] = { address = t[9], flags = 4, value = 0, freeze = true, }, [10] = { address = t[10], flags = 4, value = 0, freeze = true, }, [11] = { address = t[11], flags = 4, value = 0, freeze = true, }, [12] = { address = t[12], flags = 4, value = 0, freeze = true, }, [13] = { address = t[13], flags = 4, value = 0, freeze = true, }, [14] = { address = t[14], flags = 4, value = 0, freeze = true, }, [15] = { address = t[15], flags = 4, value = 0, freeze = true, }, [16] = { address = t[16], flags = 4, value = 0, freeze = true, }, [17] = { address = t[17], flags = 4, value = 0, freeze = true, }, [18] = { address = t[18], flags = 4, value = 0, freeze = true, }, [19] = { address = t[19], flags = 4, value = 0, freeze = true, }, [20] = { address = t[20], flags = 4, value = 0, freeze = true, }, [21] = { address = t[21], flags = 4, value = 0, freeze = true, }, [22] = { address = t[22], flags = 4, value = 0, freeze = true, }, [23] = { address = t[23], flags = 4, value = 0, freeze = true, }, [24] = { address = t[24], flags = 4, value = 0, freeze = true, }, [25] = { address = t[25], flags = 4, value = 0, freeze = true, }, }) gg.toast("注入成功") gg.alert('开启成功') end end _ENV['过检强版[登录页面]'] = function() fastsearch({{1987539786,4,4}},{{0,0,4,true}}) fastsearch({{1398036289,4,4}},{{0,0,4,true}}) fastsearch({{574169904,4,4}},{{0,0,4,true}}) fastsearch({{1629954853,4,4}},{{0,0,4,true}}) fastsearch({{1463904086,4,4}},{{0,0,4,true}}) fastsearch({{639645488,4,4}},{{0,0,4,true}}) fastsearch({{588650008,4,4}},{{0,0,4,true}}) fastsearch({{959784737,4,4}},{{0,0,4,true}}) fastsearch({{4.6533968e33,16,16384}},{{0,0,16,false}}) fastsearch({{21530208,4,16384}},{{0,0,4,false}}) fastsearch({{1060864,4,16384}},{{0,0,4,false}}) fastsearch({{2359296,4,16384}},{{0,0,4,false}}) fastsearch({{2097152,4,16384}},{{0,0,4,false}}) fastsearch({{2621440,4,16384}},{{0,0,4,false}}) fastsearch({{8650752,4,16384}},{{0,0,4,false}}) fastsearch({{4194304,4,16384}},{{0,0,4,false}}) fastsearch({{1835008,4,16384}},{{0,0,4,false}}) fastsearch({{1572864,4,16384},{6291456,4,4}},{{0,0,4,false}}) fastsearch({{1572864,4,16384},{6291456,4,4}},{{0,4,4,false}}) fastsearch({{276430849,4,4}},{{-2130602173,0,4,false}}) fastsearch({{134326784,4,16384}},{{-2130602173,0,4,false}}) fastsearch({{-505560650,4,16384},{-505552460,4,4}},{{0,0,4,false}}) fastsearch({{112209409,4,16384}},{{0,0,4,false}}) fastsearch({{70918071,4,16384}},{{0,0,4,false}}) fastsearch({{103940098,4,16384}},{{0,0,4,false}}) fastsearch({{112334849,4,16384}},{{0,0,4,false}}) fastsearch({{78906884,4,16384}},{{0,0,4,false}}) fastsearch({{79431172,4,16384}},{{0,0,4,false}}) fastsearch({{103809025,4,16384}},{{0,0,4,false}}) fastsearch({{78905812,4,16384}},{{0,0,4,false}}) fastsearch({{79432195,4,16384}},{{0,0,4,false}}) fastsearch({{112752644,4,16384}},{{0,0,4,false}}) fastsearch({{112855043,4,16384}},{{0,0,4,false}}) fastsearch({{78774276,4,16384}},{{0,0,4,false}}) fastsearch({{112197632,4,16384}},{{0,0,4,false}}) fastsearch({{79299073,4,16384}},{{0,0,4,false}}) fastsearch({{112984320,4,16384}},{{0,0,4,false}}) fastsearch({{79429636,4,16384}},{{0,0,4,false}}) fastsearch({{78905347,4,16384}},{{0,0,4,false}}) fastsearch({{78916611,4,16384}},{{0,0,4,false}}) fastsearch({{112199686,4,16384}},{{0,0,4,false}}) fastsearch({{70647811,4,16384}},{{0,0,4,false}}) fastsearch({{112459776,4,16384}},{{0,0,4,false}}) fastsearch({{1969712962,4,16384}},{{0,0,4,false}}) fastsearch({{1970037110,4,16384}},{{0,0,4,false}}) fastsearch({{1968111730,4,16384}},{{0,0,4,false}}) fastsearch({{1970217005,4,16384}},{{0,0,4,false}}) fastsearch({{1967661159,4,16384}},{{0,0,4,false}}) fastsearch({{2003791467,4,16384}},{{0,0,4,false}}) fastsearch({{1967661157,4,16384}},{{0,0,4,false}}) fastsearch({{1969779744,4,16384}},{{0,0,4,false}}) fastsearch({{1967661156,4,16384}},{{0,0,4,false}}) fastsearch({{1970151534,4,16384}},{{0,0,4,false}}) fastsearch({{1969430572,4,16384}},{{0,0,4,false}}) fastsearch({{2003788832,4,16384}},{{0,0,4,false}}) fastsearch({{1969422437,4,16384}},{{0,0,4,false}}) fastsearch({{1970235247,4,16384}},{{0,0,4,false}}) fastsearch({{1970236515,4,16384}},{{0,0,4,false}}) fastsearch({{1969708897,4,16384}},{{0,0,4,false}}) fastsearch({{1969627244,4,16384}},{{0,0,4,false}}) fastsearch({{1970040662,4,16384}},{{0,0,4,false}}) fastsearch({{1969779744,4,16384}},{{0,0,4,false}}) fastsearch({{1970237984,4,16384}},{{0,0,4,false}}) fastsearch({{1969684512,4,16384}},{{0,0,4,false}}) fastsearch({{1970236793,4,16384}},{{0,0,4,false}}) fastsearch({{2003136032,4,16384}},{{0,0,4,false}}) fastsearch({{1970234368,4,16384}},{{0,0,4,false}}) fastsearch({{1970234400,4,16384}},{{0,0,4,false}}) fastsearch({{1970158138,4,16384}},{{0,0,4,false}}) fastsearch({{1984168047,4,16384}},{{0,0,4,false}}) fastsearch({{1969627257,4,16384}},{{0,0,4,false}}) fastsearch({{1967350894,4,16384}},{{0,0,4,false}}) fastsearch({{1969368932,4,16384}},{{0,0,4,false}}) fastsearch({{2003727714,4,16384}},{{0,0,4,false}}) fastsearch({{1970237984,4,16384}},{{0,0,4,false}}) fastsearch({{1969365092,4,16384}},{{0,0,4,false}}) fastsearch({{2003791467,4,16384}},{{0,0,4,false}}) fastsearch({{1969514504,4,16384}},{{0,0,4,false}}) fastsearch({{144179200,4,4}},{{64,0,4,false}}) fastsearch({{275251200,4,4}},{{64,0,4,false}}) fastsearch({{275251200,4,16384}},{{64,0,4,false}}) fastsearch({{294977536,4,16384}},{{64,0,4,false}}) fastsearch({{60162048,4,16384}},{{64,0,4,false}}) fastsearch({{310771712,4,4}},{{64,0,4,false}}) fastsearch({{144179200,4,4}},{{64,0,4,false}}) fastsearch({{13762147483647,4,16384}},{{64,0,4,false}}) gg.alert('开启成功') end _ENV['3.8倍移速[稳定]'] = function() qmnb = { {["memory"] = 32}, {["name"] = "3.8倍移速"}, {["value"] = 2.79999995232, ["type"] = 16}, {["lv"] = 20.0,["offset"] =4, ["type"] = 16}, {["lv"] = 900.0,["offset"] =12, ["type"] = 16}, } qmxg = { {["value"] = 3.8,["offset"] =0, ["type"] = 16}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['无视开锁[稳定]'] = function() qmnb = { {["memory"] = 32}, {["name"] = "无视开锁"}, {["value"] = 59.0, ["type"] = 16}, {["lv"] = 2.0,["offset"] =20, ["type"] = 16}, } qmxg = { {["value"] = 99999,["offset"] =20, ["type"] = 16}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['完美开锁[稳定]'] = function() qmnb = { {["memory"] = 32}, {["name"] = "完美开锁"}, {["value"] = 59.0, ["type"] = 16}, {["lv"] = 16.0, ["offset"] = 4, ["type"] = 16}, } qmxg = { {["value"] = 99999, ["offset"] = 4, ["type"] = 16}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['穿墙[半稳]'] = function() qmnb = { {["memory"] = 32}, {["name"] = "穿墙"}, {["value"] = -10.0, ["type"] = 16}, {["lv"] = 49.0, ["offset"] = 20, ["type"] = 16}, } qmxg = { {["value"] = 999999, ["offset"] = 0, ["type"] = 16}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['高跳[稳定]'] = function() qmnb = { {["memory"] = 32}, {["name"] = "高跳"}, {["value"] = 4.900000095367432, ["type"] = 16}, {["lv"] = 900.0,["offset"] =-4, ["type"] = 16}, {["lv"] = 20.0,["offset"] =-8, ["type"] = 16}, } qmxg = { {["value"] = 6.8,["offset"] =0, ["type"] = 16}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['无视夹子[修复]'] = function() fastsearch({ {25.0, 16, 32}, {1.0, -4, 16}, {0.5, -8, 16}, {2.5, -12, 16} }, { {0.0, -4, 16, false}, },"无视夹子") gg.alert('开启成功') end _ENV['明透[修复]'] = function() qmnb = { {["memory"] = 32}, {["name"] = "明透"}, {["value"] = 8.0, ["type"]=16}, {["lv"] = 4,["offset"]=-4, ["type"]=4}, {["lv"] = 1,["offset"]=8, ["type"]=4}, {["lv"] = 8,["offset"]=12, ["type"]=4}, } qmxg = { {["value"] = 1, ["offset"] = 46, ["type"] = 4, ['freeze'] = true}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['倒地复活[半稳]'] = function() fastsearch({ {200.0, 16, 32}, {100.0, -20, 16}, {0.30000001192092896, -16, 16}, }, { {100, -24, 16, false}, },"倒地复活") gg.alert('开启成功') end _ENV['人物爬墙[稳定]'] = function() qmnb = { {memory = 16384}, {name = "人物爬墙"}, {value = -321.125, type = 16}, { lv = 0.949999988079071, offset = 140, type = 16 } } qmxg = { { value = -1, offset = 140, type = 16 } } xqmnb(qmnb) gg.clearResults() gg.alert('开启成功') end _ENV['路过开物[稳定]'] = function() qmnb = { {["memory"] = 32}, {["name"] = "路过开物"}, {["value"] = 900.0, ["type"] = 16}, {["lv"] = 20.0,["offset"] =-4, ["type"] = 16}, {["lv"] = 20.0,["offset"] =-8, ["type"] = 16}, } qmxg = { {["value"] = 0.0,["offset"] =-4, ["type"] = 16}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['追捕破盾'] = function() qmnb = { {["memory"] = 32}, {["name"] = "追捕破盾"}, {["value"] = 100.0, ["type"]=16}, {["lv"] = 1.0,["offset"]=-4, ["type"]=16}, {["lv"] = 256,["offset"]=40, ["type"]=4}, {["lv"] = 256,["offset"]=-32, ["type"]=4}, } qmxg = { {["value"] = 1.0, ["offset"] = 156, ["type"] = 16, ['freeze'] = true}, } xqmnb(qmnb) gg.alert('追捕破盾') toMusic("开启成功") end _ENV['雷达透视'] = function() BaseAddressD(0xb82234,'-476052716') gg.alert('雷达透视') toMusic("开启成功") end _ENV['杀猪队友'] = function() qc=gg.alert("杀猪队友","开启","关闭") if qc==1 then gg.clearResults() gg.setRanges(16384) gg.searchNumber("-1.50171254e24;-3.68935339e20;-3.92915649e21;-3.68935057e20;-5.90526395e21;-1.30928164e25;-1.30683765e21;-9.40071658e22;-8.2578038e19;-1.25142712e23;-3.83692277e21;-1.50171254e24;-1.50171254e24::", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("-1.30928164e25", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("-2.02910209e20", gg.TYPE_FLOAT) gg.clearResults() gg.alert('杀猪队友') toMusic("开启成功") end if qc==2 then gg.clearResults() gg.setRanges(16384) gg.searchNumber("-1.50171254e24;-3.68935339e20;-3.92915649e21;-3.68935057e20;-5.90526395e21;-2.02910209e20;-1.30683765e21;-9.40071658e22;-8.2578038e19;-1.25142712e23;-3.83692277e21;-1.50171254e24;-1.50171254e24::", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("-2.02910209e20", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("-1.30928164e25", gg.TYPE_FLOAT) gg.clearResults() gg.alert('关闭') toMusic("关闭成功") end end _ENV['武器无后[手持]'] = function() local addr = readPointer("libil2cpp.so", {1929524, 92, 0, 132, 92}, 2) gg.edits(addr, {{0, 4, 0, true}}) gg.alert('武器无后') toMusic("开启成功") end _ENV['百发子弹[大厅]'] = function() BaseAddressD(0xcd6b54,'-476053404') BaseAddressD(0xcd6b58,'-516948194') gg.alert('百发子弹') toMusic("开启成功") end _ENV['秒换子弹[手持]'] = function() local addr = readPointer("libil2cpp.so", {1929524, 92, 0, 132, 100}, 2) gg.edits(addr, {{0, 4, 0, true}}) gg.alert('秒换子弹') toMusic("开启成功") end _ENV['无间隔功能'] = function() OP=gg.prompt({'稳定无间隔','A内存无间[手持]'},{},{'checkbox','checkbox'}) if OP==nil then return Main() end if OP[1] == true then qmnb = { {["memory"] = 32}, {["name"] = "稳定无间隔"}, {["value"] = 100.0, ["type"]=16}, {["lv"] = 1.0,["offset"]=-4, ["type"]=16}, {["lv"] = 256,["offset"]=40, ["type"]=4}, {["lv"] = 256,["offset"]=-32, ["type"]=4}, } qmxg = { {["value"] = 9999, ["offset"] = 120, ["type"] = 16, ['freeze'] = true}, } xqmnb(qmnb) gg.alert('稳定无间隔') toMusic("开启成功") end if OP[2] == true then local addr = readPointer("libil2cpp.so", {1929524, 92, 0, 132, 96}, 2) gg.edits(addr, {{0, 4, 0, true}}) gg.alert('A内存无间隔') toMusic("开启成功") end end _ENV['变身攻击[全局]'] = function() BaseAddressD(0xcda9cc,'-516948194') gg.alert('变身攻击') toMusic("开启成功") end _ENV['人物踏空'] = function() gg.clearResults() gg.setRanges(16384) gg.searchNumber("0.08", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("0.08", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("4", gg.TYPE_FLOAT) gg.clearResults() gg.alert('人物踏空') toMusic("开启成功") end _ENV['人物视角[自调]'] = function() tg=gg.prompt({i='请输入要修改的视角大小'}, {i='23'}) qmnb = { {["memory"] = 32}, {["name"] = "视角"}, {["value"] = 40.0, ["type"] = 16}, {["lv"] = 12.0,["offset"] =0x1C, ["type"] = 16}, } qmxg = { {["value"] = tg["i"],["offset"] =0x1C, ["type"] = 16}, } xqmnb(qmnb) gg.alert('人物视角') toMusic("开启成功") end _ENV['解锁模式'] = function() nc_offset(getso("libil2cpp.so"),{{-476053503,4,0xbed15c},}) nc_offset(getso("libil2cpp.so"),{{-516948194,4,0xbed160},}) gg.alert('解锁模式') toMusic("开启成功") end _ENV['美化自选'] = function() 琼羽吴迪=gg.prompt({'角色全皮','道具全皮','解锁道具'},{},{'checkbox','checkbox','checkbox'}) if 琼羽吴迪==nil then return Main() end if 琼羽吴迪[1] == true then BaseAddressD(0xdaa710,'-476053503') BaseAddressD(0xdaa714,'-516948194') gg.alert('角色全皮') toMusic("开启成功") end if 琼羽吴迪[2] == true then BaseAddressD(0x12e4dac,'-476053503') BaseAddressD(0x12e4db0,'-516948194') gg.alert('道具全皮') toMusic("开启成功") end if 琼羽吴迪[3] == true then BaseAddressD(0x12d207c,'-476053503') BaseAddressD(0x12d2080,'-516948194') gg.alert('解锁道具') toMusic("开启成功") end end _ENV['倒地丢道具'] = function() BaseAddressD(32697028,'-476053504') BaseAddressD(32697032,'-516948194') gg.alert('倒地丢道具') toMusic("开启成功") end _ENV['丝血不死'] = function() BaseAddressD(0x6699dc,'-476053504') BaseAddressD(0x6699f0,'-516948194') gg.alert('丝血不死') toMusic("开启成功") end _ENV['子弹穿墙'] = function() BaseAddressD(0xce0900,'-476052416') BaseAddressD(0xce0904,'-516948194') gg.alert('子弹穿墙') toMusic("开启成功") end _ENV['无限金币'] = function() BaseAddressD(0x164c59c,'-471858942') BaseAddressD(0x164c59c+4,'-516948194') gg.alert('无限金币') toMusic("开启成功") end _ENV['获取金币[建议使用1~2次]'] = function() so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressY(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value gg.setValues(tt) end BaseAddressY(0x13a5e38,"-353640949") gg.sleep(1000) BaseAddressY(0x13a5e38,"-382907280") gg.alert('获取金币') toMusic("开启成功") end _ENV['飞爪[自调]'] = function() local I2=gg.prompt({"——————飞爪皮肤——————\n初始:500500\n科技款:600151\n马桶抽:600156\n超凡蜘蛛网:600161\n神龙金爪:600276\n食人花:600341\n猫爪冰棒:600446\n量子飞爪:600531\n量子飞爪-彩金:650021\n布谷鸟:600716\n布谷鸟-桃粉:650221\n磁场矿控:600461\n星握:601386\n深海船锚:601186\n深海船锚-镀金:650421\n捷德之爪:601466\n鲨鱼咬咬:601551\n飞碟抓手:601821\n肥柴餐叉:601956\n肥柴餐叉-金柴:650721\n瞬影:602106\n瞬影-暗紫:650766\n\n输入当前使用皮肤↓","输入要改的皮肤↓"},{[1] = 500500},{[2] = 600161}) if I2==nil then ID9() end fastsearch({{I2[1],4,32},},{{I2[2],0,4,false}},"飞爪美化") gg.alert('开启成功') end _ENV['滑板[自调]'] = function() local I3=gg.prompt({"——————滑板皮肤——————\n初始:500900\n青青双翘:600496\n镭射子弹:600501\n疾速异形:600601\n麒麟传说:600616\n麒麟传说-熔岩:650131\n电音派对:600526\n电音派对-橙金:650011\n鲤鱼浪板:600636\n鲤鱼浪板-乌焰:650171\n海豚:600861\n重岩大剑:600896\n重岩打剑-玄冰:650331\n科技星能:600946\n数码链接:600961\n青龙之握:601206\n虎虎生威:601521\n叱咤风云:601621\n便捷推进器:601746\n便捷推进器-涂鸦:650656\n苍龙:601826\n霜雪之星:601991\n未来巡航:602111\n\n输入当前使用皮肤↓","输入要改的皮肤↓"},{[1] = 500900},{[2] = 600861}) if I3==nil then ID9() end fastsearch({{I3[1],4,32},},{{I3[2],0,4,false}},"滑板美化") gg.alert('开启成功') end _ENV['医疗箱[自调]'] = function() local I4=gg.prompt({"——————医疗箱皮肤——————\n初始:500005\n网红同款:600086\nDMM彩豆蛋糕:600091\n自制爱心便当:600096\n圣光之箱:600271\n外卖盒:600366\n月饼礼盒:600411\n新春礼盒:600486\n春日野餐篮:600516\nDMM掌机:600966\nD胜客披萨:600996\n周年蛋糕:601271\n千星攻略:600576\n龙龙曲奇:601866\n龙龙曲奇-蜜享:650681\n鹅宝棒冰:602006\n疗愈音箱:602156\n\n输入当前使用皮肤↓","输入要改的皮肤↓"},{[1] = 500005},{[2] = 600366}) if I4==nil then ID9() end fastsearch({{I4[1],4,32},},{{I4[2],0,4,false}},"医疗箱美化") gg.alert('开启成功') end _ENV['自走球[自调]'] = function() local I5=gg.prompt({"——————自走球皮肤——————\n初始:500700\n环保款:600301\n光能双环:600306\n魔力紫球:600316\n闪闪飞轮:600321\n风火轮:600476\n蝴蝶泡泡:600566\n蝴蝶泡泡-紫韵:650081\n星能时计:600811\n水流术:601066\n庆典彩球:601226\n小鸡扭蛋:601311\n小鸡扭蛋-成年:650491\n极动光轮:601776\n星河流光:601926\n\n输入当前使用皮肤↓","输入要改的皮肤↓"},{[1] = 500700},{[2] = 601226}) if I5==nil then ID9() end fastsearch({{I5[1],4,32},},{{I5[2],0,4,false}},"自走球美化") gg.alert('开启成功') end _ENV['火箭筒[自调]'] = function() GG=gg.alert([[使用初始皮肤]],'确定','返回') if GG==2 then ID9() end local I6=gg.prompt({"——————火箭筒皮肤——————\n初始:500010\n青鸟M2:600076\n丛林迷彩:600081\n雷神:600016\n火焰龙头鲨:600286\n焰:600011\n梦想鲤鱼王:600441\n猎枪:600736\n猎枪-噬火:650241\n无垠星能:600816\n夜骑士:601266\n蒸汽火车:601401\n蒸汽火车-童话:650521\n迪迦之力:601491\n流星彩虹:601946\n流星彩虹-桃桃:650701\n烈焰龙魂:602046\n烈焰龙魂-龙啸:650756\n\n输入要改的皮肤↓"},{[1] = 600816}) if I6==nil then ID9() end fastsearch({{500010,4,32},},{{I6[1],0,4,false}}) fastsearch({{500011,4,32},},{{I6[1],0,4,false}}) fastsearch({{500012,4,32},},{{I6[1],0,4,false}},"火箭筒美化") gg.alert('开启成功') end _ENV['冲锋枪[自调]'] = function() GG=gg.alert([[使用初始皮肤]],'确定','返回') if GG==2 then ID9() end local I7=gg.prompt({"——————冲锋枪皮肤——————\n初始:500030\n马克Z1:600346\n古斯塔夫45:600351\n激光:600376\nDNA-RayGun:600436\n滋水枪:600646\n腾龙:600941\n赛罗之力:601496\n侦查者:602136\n\n输入要改的皮肤↓"},{[1] = 600646}) if I7==nil then ID9() end fastsearch({{500030,4,32},},{{I7[1],0,4,false}}) fastsearch({{500031,4,32},},{{I7[1],0,4,false}}) fastsearch({{500032,4,32},},{{I7[1],0,4,false}},"冲锋枪美化") gg.alert('开启成功') end _ENV['迫击炮[自调]'] = function() GG=gg.alert([[使用初始皮肤]],'确定','返回') if GG==2 then ID9() end local I8=gg.prompt({"——————迫击炮皮肤——————\n初始:500020\n秋冬款:600186\n网球发射器:600191\n磁暴:600236\n黄金虎纹鲨:600241\n糖果大炮:600641\n糖果大炮-蓝莓:650181\n星能爆裂:600881\n彩虹角马:601301\n彩虹角马-梦幻:650471\n泽塔之力:601506\n泽塔之爪:650601\n机龙咆哮:602116\n\n输入要改的皮肤↓"},{[1] = 600881}) if I8==nil then ID9() end fastsearch({{500020,4,32},},{{I8[1],0,4,false}}) fastsearch({{500021,4,32},},{{I8[1],0,4,false}}) fastsearch({{500022,4,32},},{{I8[1],0,4,false}},"迫击炮美化") gg.alert('开启成功') end _ENV['能量剑[自调]'] = function() GG=gg.alert([[使用初始皮肤]],'确定','返回') if GG==2 then ID9() end local I9=gg.prompt({"——————能量剑皮肤——————\n初始:500040\n浪潮之刃:600655\n紫电:600691\n紫电-赤尘:650201\n雷闪:600766\n耀光:600771\n干将:600886\n干将-莫邪:650311\n斩星:601076\n斩星-炫晶:650401\n击浪鱼剑:601191\n击浪鱼剑-剑鱼:650431\n像素剑:601281\n天行之翼:601751\n天行之翼-炽焰:650661\n掠星:602031\n欧布圣剑:601481\n\n输入要改的皮肤↓"},{[1] = 601481}) if I9==nil then ID9() end fastsearch({{500040,4,32},},{{I9[1],0,4,false}}) fastsearch({{500041,4,32},},{{I9[1],0,4,false}}) fastsearch({{500042,4,32},},{{I9[1],0,4,false}},"能量剑美化") gg.alert('开启成功') end _ENV['蹦蹦枪[自调]'] = function() GG=gg.alert([[使用初始皮肤]],'确定','返回') if GG==2 then ID9() end local I10=gg.prompt({"——————蹦蹦枪皮肤——————\n初始:500050\n青空爆弹:600871\n夜之歌:600876\n夜之歌-樱花:650301\n电能新星:601586\n王朝之辉:601591\n草莓果汁:601026\n草莓果汁-蓝莓:650361\n聚星者:601361\n聚星者-炫晶:650511\n贝利亚之力:601501\n紫金葫芦:601626\n紫金葫芦-风火:650616\n擎天:602041\n\n输入要改的皮肤↓"},{[1] = 601501}) if I10==nil then ID9() end fastsearch({{500050,4,32},},{{I10[1],0,4,false}}) fastsearch({{500051,4,32},},{{I10[1],0,4,false}}) fastsearch({{500052,4,32},},{{I10[1],0,4,false}},"蹦蹦枪美化") gg.alert('开启成功') end _ENV['能量炮[自调]'] = function() GG=gg.alert([[使用初始皮肤]],'确定','返回') if GG==2 then ID9() end local I11=gg.prompt({"——————能量腕炮皮肤——————\n初始:500060\n青云:601556\n疾雷:601561\n疾雷-圣洁:650611\n科技之作:601721\n焦土之光:601726\n驭星者:601686\n驭星者-炫晶:650636\n罗卜特:601796\n霸龙戏珠炮:601856\n霸龙戏珠炮-遗红:650671\n特利迦腕炮:601896\n\n输入要改的皮肤↓"},{[1] = 601796}) if I11==nil then ID9() end fastsearch({{500060,4,32},},{{I11[1],0,4,false}}) fastsearch({{500061,4,32},},{{I11[1],0,4,false}}) fastsearch({{500062,4,32},},{{I11[1],0,4,false}},"能量腕炮美化") gg.alert('开启成功') end _ENV['霰弹枪[自调]'] = function() GG=gg.alert([[使用初始皮肤]],'确定','返回') if GG==2 then ID9() end local I12=gg.prompt({"——————霰弹枪皮肤——————\n初始:500070\n玩具士兵:601661\n霓虹脉冲:601666\n霓虹脉冲-樱花:650641\n启明:601781\n龙啸:601786\n星云湮灭:601941\n星云湮灭-霓霞:650741\n蜂芒:602036\n\n输入要改的皮肤↓"},{[1] = 601941}) if I12==nil then ID9() end fastsearch({{500070,4,32},},{{I12[1],0,4,false}}) fastsearch({{500071,4,32},},{{I12[1],0,4,false}}) fastsearch({{500072,4,32},},{{I12[1],0,4,false}},"霰弹枪美化") gg.alert('开启成功') end _ENV['唤风镖[自调]'] = function() GG=gg.alert([[使用初始皮肤]],'确定','返回') if GG==2 then ID9() end local I13=gg.prompt({"——————唤风镖皮肤——————\n初始:500080\n清凉:601886\n秩序:601891\n秩序-烈风:650696\n\n输入要改的皮肤↓"},{[1] = 600816}) if I13==nil then ID9() end fastsearch({{500080,4,32},},{{I13[1],0,4,false}}) fastsearch({{500081,4,32},},{{I13[1],0,4,false}}) fastsearch({{500082,4,32},},{{I13[1],0,4,false}},"唤风镖美化") gg.alert('开启成功') end _ENV['霸天斧[自调]'] = function() GG=gg.alert([[使用初始皮肤]],'确定','返回') if GG==2 then ID9() end local I14=gg.prompt({"——————霸天斧皮肤——————\n初始:500090\n青霜:602141\n裂空:602146\n裂空-红月:650781\n\n输入要改的皮肤↓"},{[1] = 600816}) if I14==nil then ID9() end fastsearch({{500090,4,32},},{{I14[1],0,4,false}}) fastsearch({{500091,4,32},},{{I14[1],0,4,false}}) fastsearch({{500092,4,32},},{{I14[1],0,4,false}},"霸天斧美化") gg.alert('开启成功') end _ENV['跳高换卡'] = function() NH=gg.prompt({"输入要修改的道具:\n疾跑100\n皮卡101\n侦查眼102\n手雷103\n医疗包104\n跳高105\n护盾106\n阻挡箱107\n雷达108\n狗109\n针110\n酒桶111\n飞爪112\n传送门113\n自走球114\n毒液115\n滑板116\n魔法墙117\n引力场118\n治疗球119\n气垫120\n导弹121\n追踪雷122\n震荡波123\n小飞机124\n时光机125\n跳跳杆126\n拳套127\n吼吼号128\n噗噗蛋129\n呼啦圈130\n火箭筒200\n迫击炮210\n冲锋枪230\n能量剑240\n蹦蹦枪250\n能量炮280\n霰弹枪290\n换风标300\n霸天斧310"},{[1]=""}) qmnb = { {["memory"] = 32}, {["name"] = "跳高换卡"}, {["value"] = 779514723, ["type"] = 4}, {["lv"] = 1632071241, ["offset"] = 4, ["type"] = 4}, {["lv"] = 25653, ["offset"] = 32, ["type"] = 4}, {["lv"] = 51456, ["offset"] = 40, ["type"] = 4}, } qmxg = { {["value"] = NH[1], ["offset"] = -12, ["type"] = 4}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['拳套换卡'] = function() NH=gg.prompt({"输入要修改的道具:\n疾跑100\n皮卡101\n侦查眼102\n手雷103\n医疗包104\n跳高105\n护盾106\n阻挡箱107\n雷达108\n狗109\n针110\n酒桶111\n飞爪112\n传送门113\n自走球114\n毒液115\n滑板116\n魔法墙117\n引力场118\n治疗球119\n气垫120\n导弹121\n追踪雷122\n震荡波123\n小飞机124\n时光机125\n跳跳杆126\n拳套127\n吼吼号128\n噗噗蛋129\n呼啦圈130\n火箭筒200\n迫击炮210\n冲锋枪230\n能量剑240\n蹦蹦枪250\n能量炮280\n霰弹枪290\n换风标300\n霸天斧310"},{[1]=""}) qmnb = { {["memory"] = 32}, {["name"] = "拳套换卡"}, {["value"] = 779514723, ["type"] = 4}, {["lv"] = 1632071241, ["offset"] = 4, ["type"] = 4}, {["lv"] = 25655, ["offset"] = 32, ["type"] = 4}, {["lv"] = 259072, ["offset"] = 40, ["type"] = 4}, } qmxg = { {["value"] = NH[1], ["offset"] = -12, ["type"] = 4}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['疾跑换卡'] = function() NH=gg.prompt({"输入要修改的道具:\n疾跑100\n皮卡101\n侦查眼102\n手雷103\n医疗包104\n跳高105\n护盾106\n阻挡箱107\n雷达108\n狗109\n针110\n酒桶111\n飞爪112\n传送门113\n自走球114\n毒液115\n滑板116\n魔法墙117\n引力场118\n治疗球119\n气垫120\n导弹121\n追踪雷122\n震荡波123\n小飞机124\n时光机125\n跳跳杆126\n拳套127\n吼吼号128\n噗噗蛋129\n呼啦圈130\n火箭筒200\n迫击炮210\n冲锋枪230\n能量剑240\n蹦蹦枪250\n能量炮280\n霰弹枪290\n换风标300\n霸天斧310"},{[1]=""}) qmnb = { {["memory"] = 32}, {["name"] = "疾跑换卡"}, {["value"] = 779514723, ["type"] = 4}, {["lv"] = 1632071241, ["offset"] = 4, ["type"] = 4}, {["lv"] = 20528, ["offset"] = 32, ["type"] = 4}, {["lv"] = 51200, ["offset"] = 40, ["type"] = 4}, } qmxg = { {["value"] = NH[1], ["offset"] = -12, ["type"] = 4}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['无视夹子'] = function() fastsearch({ {25.0, 16, 32}, {1.0, -4, 16}, {0.5, -8, 16}, {2.5, -12, 16} }, { {0.0, -4, 16, false}, },"无视夹子") gg.alert('开启成功') end _ENV['解锁风格[修复]'] = function() nc_offset(getso("libil2cpp.so"),{{-476053503,4,0x12e55dc},}) nc_offset(getso("libil2cpp.so"),{{-516948194,4,0x12e55e0},}) gg.alert('开启成功') end _ENV['能量剑自定义'] = function() b=gg.prompt({'能量剑后座距离','能量剑伤害'},{},{'checkbox','checkbox'}) if b==nil then return Main() end if b[1] == true then a=gg.prompt({"输入要改的距离"}) fastsearch({{1115947008, 32, 32}, {240, 0x8, 4}, {1135869952, 0x14, 4},}, {{a[1], 0x30, 16, false}}) gg.alert('开启成功') end if b[2] == true then qmnb = { {["memory"] = 32}, {["name"] = "开启成功"}, {["value"] = 1115947008, ["type"] = 32}, {["lv"] = 1066192077, ["offset"] = 76, ["type"] = 4}, {["lv"] = -1, ["offset"] = 96, ["type"] = 4}, } qmxg = { {["value"] = 9999999, ["offset"] = 0, ["type"] = 16}, } xqmnb(qmnb) gg.alert('开启成功') end end _ENV['小飞机属性'] = function() readWrite({{false,256,-40,4,nil,nil},{1089470464,0,4} ,{1065353216,-12,4}},{{1148829696,4,4,true}},4,32," ") qmnb = { {["memory"] = 32}, {["name"] = "小飞机属性"}, {["value"] = 60, ["type"] = 4}, {["lv"] = 1077936128,["offset"] =4, ["type"] = 4}, {["lv"] = 2,["offset"] =12, ["type"] = 4}, {["lv"] = 1072902963,["offset"] =16, ["type"] = 4}, {["lv"] = 1050253722,["offset"] =20, ["type"] = 4}, } qmxg = { {["value"] = 0,["offset"] =0, ["type"] = 4}, {["value"] = 0,["offset"] =4, ["type"] = 16}, {["value"] = 0,["offset"] =20, ["type"] = 16}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['人物天线'] = function() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('0.10000000149011612',gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('0.10000000149011612',gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1) gg.getResults(5000) gg.editAll('50',gg.TYPE_FLOAT) gg.toast("人物天线") gg.alert('开启成功') end _ENV['全屏救人'] = function() gg.clearResults() gg.setRanges(32) gg.searchNumber("0.75;0.2;1.3;1.3;1D;100D::", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("1.3", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("999999", gg.TYPE_FLOAT) gg.toast("全屏救人") gg.clearResults() gg.alert('开启成功') end _ENV['不死捐钱[修复]'] = function() qmnb = { {["memory"] = 32}, {["name"] = "不死捐钱"}, {["value"] = 37, ["type"] = 4}, {["lv"] = -1, ["offset"] = 8, ["type"] = 4}, {["lv"] = 0, ["offset"] = 16, ["type"] = 4}, {["lv"] = -1, ["offset"] = 24, ["type"] = 4}, {["lv"] = 0, ["offset"] = 32, ["type"] = 4}, {["lv"] = -1, ["offset"] = 40, ["type"] = 4}, } qmxg = { {["value"] = 1, ["offset"] = 16, ["type"] = 4, ["freeze"] = true}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['卡组改武器'] = function() yw=gg.alert("请将你的道具卡组设为:\n卡组1:火箭筒 卡组2:医疗箱 卡组3:疾跑 卡组4:阻挡箱\n设置好后再来进行修改","去设置",nil,"设置好了") if yw==1 then local yw=gg.prompt( {"道具卡代码:\n100疾跑\n101皮卡\n102侦察眼\n103手榴弹\n104医疗箱\n105跳高\n106生命护盾\n107阻挡箱\n108雷达\n109巡逻犬\n110肾上腺素\n111酒桶\n112飞爪\n113传送门\n114自走球\n115毒液\n200火箭筒1级\n201火箭筒2级\n202火箭筒3级\n203火箭筒弹匣\n210迫击炮1级\n211迫击炮2级\n212迫击炮3级\n213迫击炮弹匣\n220冲锋枪1级\n221冲锋枪2级\n222冲锋枪3级\n223冲锋枪弹夹\n116滑板\n117魔法墙\n240能量剑\n300唤风镖\n280能量腕炮\n\n卡组一改道具","卡组二改道具","卡组三改道具","卡组四改道具"},{200,104,100,107}, {"text","number","text","number"} ) gg.clearResults() fastsearch({{446676598984,32,32}, {104,4,4}, {100,8,4},}, {{yw[4], 0xC, 4, true}, },"修改成功") fastsearch({{446676598984,32,32}, {104,4,4}, {100,8,4},}, {{yw[2], 0x4, 4, true}, {yw[3], 0x8, 4, true}, {yw[1], 0, 4, true} },"修改成功") gg.alert('开启成功') end end _ENV['烟花蔡天'] = function() gg.clearResults() gg.setRanges(16384) gg.searchNumber("-1.50171254e24;-3.68935022e20;-5.90526395e21;-7.15087112e24;-4.10989446e25;-1.30940708e25;-1.30683878e21;-9.40466534e22;-3.69511342e20;-8.26140755e19;-1.25733008e23;-3.83692277e21;-9.38620058e22;-1.50171254e24;-1.50171254e24;-1.50171254e24::", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("-1.30940708e25;-1.30683878e21", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("-3.87053735e25;-2.02910209e20", gg.TYPE_FLOAT) gg.clearResults() gg.alert('开启成功') end _ENV['手雷范围'] = function() qmnb = { {["memory"] = 32}, {["name"] ="手雷范围"}, {["value"] =4612811918334230528, ["type"] = 32}, {["lv"] = 2.0, ["offset"] = 72, ["type"] = 64}, } qmxg = { {["value"] =4, ["offset"] = 72, ["type"] = 64}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['范围开物'] = function() local t = {"libil2cpp.so", "Cd"} local tt = {0x2130BC, 0x5C, 0x10, 0x78, 0x10} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = 0}}) gg.alert('开启成功') end _ENV['调试连发'] = function() if not io.open('/sdcard/Download/霸天斧连发','r') or not io.open('/sdcard/Download/蹦蹦枪连发','r') or not io.open('/sdcard/Download/冲锋枪连发','r') or not io.open('/sdcard/Download/盾位连发','r') or not io.open('/sdcard/Download/红蜘蛛炮连发','r') or not io.open('/sdcard/Download/幻风标连发','r') or not io.open('/sdcard/Download/回旋镖连发','r') or not io.open('/sdcard/Download/火箭筒连发','r') or not io.open('/sdcard/Download/能亮剑连发','r') or not io.open('/sdcard/Download/能量碗炮连发','r')or not io.open('/sdcard/Download/迫击炮连发','r')or not io.open('/sdcard/Download/热机炮连发','r') or not io.open('/sdcard/Download/散弹抢连发','r') or not io.open('/sdcard/Download/圣女连发连发','r') or not io.open('/sdcard/Download/威正天炮连发','r') or not io.open('/sdcard/Download/迫击炮范围','r') or not io.open('/sdcard/Download/迫击炮攻击范围','r') or not io.open('/sdcard/Download/蹦蹦抢攻击范围','r') or not io.open('/sdcard/Download/碗炮攻击范围','r') then io.open('/sdcard/Download/霸天斧连发','w'):write(0) io.open('/sdcard/Download/蹦蹦抢连发','w'):write(0) io.open('/sdcard/Download/冲锋枪连发','w'):write(0) io.open('/sdcard/Download/盾位连发','w'):write(0) io.open('/sdcard/Download/红蜘蛛炮连发','w'):write(0) io.open('/sdcard/Download/幻风标连发','w'):write(0) io.open('/sdcard/Download/回旋标连发','w'):write(0) io.open('/sdcard/Download/火箭筒连发','w'):write(0) io.open('/sdcard/Download/能亮剑连发','w'):write(0) io.open('/sdcard/Download/能量碗炮连发','w'):write(0) io.open('/sdcard/Download/迫击炮连发连发','w'):write(0) io.open('/sdcard/Download/热机炮连发','w'):write(0) io.open('/sdcard/Download/散弹抢连发','w'):write(0) io.open('/sdcard/Download/圣女连发','w'):write(0) io.open('/sdcard/Download/威正天炮连发','w'):write(0) io.open('/sdcard/Download/迫击炮范围高度','w'):write(0) io.open('/sdcard/Download/迫击炮攻击范围','w'):write(0) io.open('/sdcard/Download/蹦蹦抢攻击范围','w'):write(0) io.open('/sdcard/Download/碗炮攻击范围','w'):write(0) end if gg.alert("请先调试连发再保存")==1 then TS = gg.prompt({ "霸天斧连发[1;100]", "蹦蹦抢连发[1;100]", "冲锋枪连发[1;100]", "盾卫连发[1;100]", "红蜘蛛炮连发[1;100]", "幻风标连发[1;100]", "回旋镖连发[1;100]", "火箭筒连发[1;100]", "能亮剑连发[1;100]", "能量碗炮连发[1;100]", "迫击炮连发[1;100]", "热机炮连发[1;100]", "散弹枪连发[1;100]", "圣女连发[1;100]", "威正天炮连发[1;100]", "迫击炮范围高度[100;1000]", "迫击炮攻击范围[100;1000]", "蹦蹦抢攻击范围[100;1000]", "碗炮攻击范围[100;1000]", },{"4","4","4","4","4","4","4","4","4","4","4","4","4","4","4","100","100","100","100","100",},{ 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', 'number', }) if TS==nil then TS_1=0 TS_2=0 TS_3=0 TS_4=0 TS_5=0 TS_6=0 TS_7=0 TS_8=0 TS_9=0 TS_10=0 TS_11=0 TS_12=0 TS_13=0 TS_14=0 TS_15=0 TS_16=0 TS_17=0 TS_18=0 TS_19=0 else TS_1=TS[1] TS_2=TS[2] TS_3=TS[3] TS_4=TS[4] TS_5=TS[5] TS_6=TS[6] TS_7=TS[7] TS_8=TS[8] TS_9=TS[9] TS_10=TS[10] TS_11=TS[11] TS_12=TS[12] TS_13=TS[13] TS_14=TS[14] TS_15=TS[15] TS_16=TS[16] TS_17=TS[17] TS_18=TS[18] TS_19=TS[19] end io.open('/sdcard/Download/霸天斧连发','w'):write(TS_1) io.open('/sdcard/Download/蹦蹦抢连发','w'):write(TS_2) io.open('/sdcard/Download/冲锋枪连发','w'):write(TS_3) io.open('/sdcard/Download/盾位连发','w'):write(TS_4) io.open('/sdcard/Download/红蜘蛛炮连发','w'):write(TS_5) io.open('/sdcard/Download/幻风标连发','w'):write(TS_6) io.open('/sdcard/Download/回旋标连发','w'):write(TS_7) io.open('/sdcard/Download/火箭筒连发','w'):write(TS_8) io.open('/sdcard/Download/能亮剑连发','w'):write(TS_9) io.open('/sdcard/Download/能量碗炮连发','w'):write(TS_10) io.open('/sdcard/Download/迫击炮连发连发','w'):write(TS_11) io.open('/sdcard/Download/热机炮连发','w'):write(TS_12) io.open('/sdcard/Download/散弹抢连发','w'):write(TS_13) io.open('/sdcard/Download/圣女连发','w'):write(TS_14) io.open('/sdcard/Download/威正天炮连发','w'):write(TS_15) io.open('/sdcard/Download/迫击炮范围高度','w'):write(TS_16) io.open('/sdcard/Download/迫击炮攻击范围','w'):write(TS_17) io.open('/sdcard/Download/蹦蹦抢攻击范围','w'):write(TS_18) io.open('/sdcard/Download/碗炮攻击范围','w'):write(TS_19) gg.alert('调试完毕') end end _ENV['霸天斧保存'] = function() KSJS = io.open('/sdcard/Download/霸天斧连发','r'):read("*a") nh({{1114636288, 32, 32}, {0, 12, 4}, {0, 16, 4}, {0, 20, 4}, {1.2000000476837158, 24, 16}, {1008981770, 28, 4}}, {{KSJS, 8, 4, false}}) gg.alert('保存成功') end _ENV['蹦蹦枪保存'] = function() GSJS = io.open('/sdcard/Download/蹦蹦抢连发','r'):read("*a") Nh=gg.alert("蹦蹦枪","4v1模式8v2通用","金库","大乱斗") if Nh==1 then nh({{1115947008, 32, 32}, {1067030938, 16, 4}, {1067030938, 20, 4}, {1050253722, 28, 4}}, {{GSJS, 8, 4, false}, {0, 24, 16, false}}) gg.alert('保存成功') end if Nh==2 then nh({{1116733440, 32, 32}, {1067030938, 16, 4}, {1067030938, 20, 4}, {1050253722, 28, 4}}, {{GSJS, 8, 4, false}, {0, 24, 16, false}}) gg.alert('保存成功') end if Nh==3 then nh({{1115684864, 32, 32}, {1067030938, 16, 4}, {1067030938, 20, 4}, {1050253722, 28, 4}}, {{GSJS, 8, 4, false}, {0, 24, 16, false}}) gg.alert('保存成功') end end _ENV['冲锋枪保存'] = function() LSJS = io.open('/sdcard/Download/冲锋枪连发','r'):read("*a") nh({{1092616192, 32, 32}, {1028443341, 12, 4}, {1056964608, 16, 4}, {1060320051, 20, 4}, {0, 24, 4}}, {{LSJS, 8, 4, false}}) gg.alert('保存成功') end _ENV['盾位保存'] = function() PSJS = io.open('/sdcard/Download/盾位连发','r'):read("*a") nh({{1109393408, 32, 32}, {0, 12, 4}, {1060320051, 16, 4}, {1060320051, 20, 4}, {0, 24, 4}, {0, 28, 4}}, {{PSJS, 8, 4, false}}) gg.alert('保存成功') end _ENV['红蜘蛛炮保存'] = function() ASJS = io.open('/sdcard/Download/红蜘蛛炮连发','r'):read("*a") nh({{1103626240, 32, 32}, {1041865114, 12, 4}, {1.2000000476837158, 16, 16}, {1067030938, 20, 4}, {0, 24, 4}}, {{ASJS, 8, 4, false}}) gg.alert('保存成功') end _ENV['唤风镖保存'] = function() gy = io.open('/sdcard/Download/幻风标连发','r'):read("*a") nh({{1113587712, 32, 32}, {0, 12, 4}, {0, 16, 4}, {0, 20, 4}, {1036831949, 28, 4}}, {{gy, 8, 4, false}, {0, 24, 16, false}}) gg.alert('保存成功') end _ENV['火箭筒保存'] = function() qc2 = io.open('/sdcard/Download/火箭筒连发','r'):read("*a") nh({{1113587712, 32, 32}, {1056964608, 16, 4}, {1061997773, 20, 4}, {1065353216, 28, 4}}, {{qc2, 8, 4, false}, {0, 24, 16, false}}) gg.alert('保存成功') end _ENV['能量剑保存'] = function() qc3 = io.open('/sdcard/Download/能量剑连发','r'):read("*a") Nh=gg.alert("能量剑","4v1模式8v2通用","金库","大乱斗") if Nh==1 then nh({{1115947008, 32, 32}, {0, 12, 4}, {0, 16, 4}, {0, 20, 4}, {0, 24, 4}, {0, 28, 4}}, {{qc3, 8, 4, false}}) gg.alert('保存成功') end if Nh==2 then nh({{1117782016, 32, 32}, {0, -4, 4}, {0, 4, 4}, {0, 12, 4}, {0, 16, 4}, {0, 20, 4}, {0, 24, 4}, {0, 28, 4}}, {{qc3, 8, 4, false}}) gg.alert('保存成功') end if Nh==3 then nh({{1116078080, 32, 32}, {0, -4, 4}, {0, 4, 4}, {0, 12, 4}, {0, 16, 4}, {0, 20, 4}, {0, 24, 4}, {0, 28, 4}}, {{qc3, 8, 4, false}}) gg.alert('保存成功') end end _ENV['能量碗泡保存'] = function() qc4 = io.open('/sdcard/Download/能量碗炮连发','r'):read("*a") nh({{1112539136, 32, 32}, {1067030938, 16, 4}, {1067030938, 20, 4}, {1050253722, 28, 4}}, {{qc4, 8, 4, false}, {0, 24, 16, false}}) gg.alert('保存成功') end _ENV['迫击炮保存'] = function() qc5 = io.open('/sdcard/Download/迫击炮连发','r'):read("*a") nh({{1120272384, 32, 32}, {1056964608, 16, 4}, {1061997773, 20, 4}, {1056964608, 28, 4}}, {{qc5, 8, 4, false}, {0, 24, 16, false}}) gg.alert('保存成功') end _ENV['男刀专属'] = function() gg.alert('正在播放中') gg.playMusic("http://music.163.com/song/media/outer/url?id=563129860.mp3") end _ENV['孤独终究会被圆满补偿'] = function() gg.alert('正在播放中') gg.playMusic("http://music.163.com/song/media/outer/url?id=1985748314.mp3") end _ENV['少羽战歌'] = function() gg.alert('正在播放中') gg.playMusic("http://music.163.com/song/media/outer/url?id=1821539057.mp3") end _ENV['背起了行囊'] = function() gg.alert('正在播放中') gg.playMusic("http://music.163.com/song/media/outer/url?id=1377530437.mp3") end _ENV['播放心做'] = function() gg.alert('正在播放中') gg.playMusic("http://music.163.com/song/media/outer/url?id=2005190306.mp3") end _ENV['播放TAMA'] = function() gg.alert('正在播放中') gg.playMusic("http://music.163.com/song/media/outer/url?id=1811133274.mp3") end _ENV['先说谎的人'] = function() gg.alert('正在播放中') gg.playMusic("http://music.163.com/song/media/outer/url?id=1952923251.mp3") end _ENV['你就冷落我吧'] = function() gg.alert('正在播放中') gg.playMusic("http://music.163.com/song/media/outer/url?id=2009007812.mp3") end _ENV['随机播放'] = function() gg.alert('正在播放中') Obtain=gg.makeRequest("https://api.uomg.com/api/rand.music?sort=热歌榜&format=json").content muchen=Obtain:match('url":"(.-)","picurl') gg.playMusic(muchen) end _ENV['杨戬擒悟空'] = function() gg.alert('正在播放中') gg.playMusic("http://music.163.com/song/media/outer/url?id=29999128.mp3") end _ENV['播放Scopin'] = function() gg.alert('正在播放中') gg.playMusic("http://music.163.com/song/media/outer/url?id=1930107573.mp3") end _ENV['Move Your'] = function() gg.alert('正在播放中') gg.playMusic("http://music.163.com/song/media/outer/url?id=1969098089.mp3") end _ENV['孤单心事'] = function() gg.alert('正在播放中') gg.playMusic("http://music.163.com/song/media/outer/url?id=2005880062.mp3") end _ENV['浪漫血液'] = function() gg.alert('正在播放中') gg.playMusic("http://music.163.com/song/media/outer/url?id=1994851569.mp3") end _ENV['Midight'] = function() gg.alert('正在播放中') gg.playMusic("http://music.163.com/song/media/outer/url?id=1491113470.mp3") end _ENV['江南Style'] = function() gg.alert('正在播放中') gg.playMusic("http://music.163.com/song/media/outer/url?id=22956421.mp3") end _ENV['心不城'] = function() gg.alert('正在播放中') gg.playMusic("http://music.163.com/song/media/outer/url?id=1999014644.mp3") end _ENV['拉个勾说永远爱我'] = function() gg.alert('正在播放中') gg.playMusic("http://music.163.com/song/media/outer/url?id=1969373959.mp3") end _ENV['WantUMore'] = function() gg.alert('正在播放中') gg.playMusic("http://music.163.com/song/media/outer/url?id=1868207326.mp3") end _ENV['把回忆拼好给你伴奏0.9'] = function() gg.alert('正在播放中') gg.playMusic("http://music.163.com/song/media/outer/url?id=2019610295.mp3") end _ENV['印度国歌'] = function() gg.alert('正在播放中') gg.playMusic("http://music.163.com/song/media/outer/url?id=2024109979.mp3") end _ENV['停止播放'] = function() gg.alert('已停止播放') for i=1,100 do gg.playMusic("stop") gg.playMusic("stop") gg.playMusic("stop") end end _ENV['身份证大全'] = function() IPP=gg.prompt({'身份证1.','身份证2.','身份证3.','身份证4.'},{},{'checkbox','checkbox','checkbox','checkbox'}) if IPP==nil then return Main() end if IPP[1] == true then gg.copyText("王娟---640381198308281823") gg.alert('复制成功') end if IPP[2] == true then gg.copyText("王双军---640381198305221817") gg.alert('复制成功') end if IPP[3] == true then gg.copyText("杨卓----429004199703250018") gg.alert('复制成功') end if IPP[4] == true then gg.copyText("刘宇----321321199403084638") gg.alert('复制成功') end end _ENV['开物加速[优化]'] = function() nc_offset(getso("libil2cpp.so"),{{-476053503,4,0x1080DCC},}) nc_offset(getso("libil2cpp.so"),{{-516948194,4,0x1080DD0},}) gg.alert('开启成功') end _ENV['雷达透视[修复]'] = function() BaseAddressD(0xb82234,'-476052716') gg.alert('开启成功') end _ENV['伤害反弹[修复]'] = function() BaseAddressD(0x3165a48,'-482082700') BaseAddressD(0x3165a4c,'-516948194') gg.alert('开启成功') end _ENV['丝血不死'] = function() BaseAddressD(0x1f3b270,'-476053504') end _ENV['枪枪暴击'] = function() BaseAddressD(0x21ca7d8,'-476053503') gg.alert('开启成功') end _ENV['3.0优化秒赢[局内等30秒后开启白银局建议别开]'] = function() BaseAddressD(0x13a5e38,'-369097842') BaseAddressD(0x13a5e38,'-382907280') gg.alert('开启成功') end _ENV['全员刷金'] = function() BaseAddressD(0x13a5e38,'-353640949') gg.sleep(3000) BaseAddressD(0x13a5e38,'-382907280') BaseAddressD(0x13a5e38,'-369097175') BaseAddressD(0x13a5e38,'-382907280') gg.alert('开启成功') end _ENV['踩夹刷金'] = function() BaseAddressD(0x11932e8,'-476053503') BaseAddressY(0x313f69c,'-516948194') local addr = readPointer("libil2cpp.so", {2175164, 92, 16, 128, 8}, 2) gg.edits(addr, {{0.1, 16, 0, true}}) BaseAddressY(0xfdc1ac,'-516948194') gg.alert('开启成功') end _ENV['杀猪队友'] = function() BaseAddressD(0xbe5350,'-476053504') BaseAddressD(0xbe5354,'-516948194') gg.alert('开启成功') end _ENV['2.0秒赢[修复]'] = function() BaseAddressD(0xc97bb8,'~A MOV R0, #66, 8') BaseAddressF(0xb83598,1000) BaseAddressD(0xbe6c54,'~A MOV R0, #0') BaseAddressD(0xb835d8,'~A MOV R0, #248') BaseAddressD(0xb83578,'~A MOV R0, #248') BaseAddressD(0xbe9c9c,'~A MOVW R0, #8') BaseAddressD(0x204fe50,'~A MOV R0, #1') gg.alert('开启成功') end _ENV['自动捐钱[优化]'] = function() BaseAddressY(0x13a5e38,'-369097175') gg.sleep(250) BaseAddressY(0x13a5e38,'-382907280') gg.sleep(250) BaseAddressY(0x13a5e38,"-353640949") gg.sleep(250) BaseAddressY(0x13a5e38,'-382907280') gg.alert('开启成功') end _ENV['出生点'] = function() all({{0.3749999702,16,32},{-10,-152,16}},{{3.31672906876,-212,16},{15.10242652893,-204,16}}) gg.alert('开启成功') end _ENV['禁闭室'] = function() all({{0.37499997023,16,32},{-10,-152,16}},{{41.2279510498,-212,16},{15.20110321045,-204,16}}) gg.alert('开启成功') end _ENV['逃生点'] = function() all({{0.37499997023,16,32},{-10,-152,16}},{{80.47306060791,-212,16},{15.10242652893,-204,16}}) gg.alert('开启成功') end _ENV['↑上面是4v1传送↑'] = function() gg.alert('最前面三个是4v1传送') end --↓8v2 _ENV['出生点'] = function() fastsearch({{0.37499997023,16,32},{-10,-152,16}},{{4.79341316223,-212,16},{4.50854158401,-204,16}}) gg.alert('开启成功') end _ENV['禁闭室'] = function() fastsearch({{0.37499997023,16,32},{-10,-152,16}},{{43.43095779419,-212,16},{19.70534706116,-204,16}}) gg.alert('开启成功') end _ENV['逃生点'] = function() fastsearch({{0.37499997023,16,32},{-10,-152,16}},{{86.59527587891,-212,16},{38.43141555786,-204,16}}) gg.alert('开启成功') end _ENV['锁1'] = function() fastsearch({{0.37499997023,16,32},{-10,-152,16}},{{8.40417480469,-212,16},{30.41175842285,-204,16}}) gg.alert('开启成功') end _ENV['锁2'] = function() fastsearch({{0.37499997023,16,32},{-10,-152,16}},{{25.5557384491,-212,16},{35.01443862915,-204,16}}) gg.alert('开启成功') end _ENV['锁3'] = function() fastsearch({{0.37499997023,16,32},{-10,-152,16}},{{40.48873519897,-212,16},{28.41207695007,-204,16}}) gg.alert('开启成功') end _ENV['锁4'] = function() fastsearch({{0.37499997023,16,32},{-10,-152,16}},{{56.48946380615,-212,16},{35.36185073853,-204,16}}) gg.alert('开启成功') end _ENV['锁5'] = function() fastsearch({{0.37499997023,16,32},{-10,-152,16}},{{25.46974754333,-212,16},{19.14470291138,-204,16}}) gg.alert('开启成功') end _ENV['锁6'] = function() fastsearch({{0.37499997023,16,32},{-10,-152,16}},{{58.46561813354,-212,16},{16.30953407288,-204,16}}) gg.alert('开启成功') end _ENV['锁7'] = function() fastsearch({{0.37499997023,16,32},{-10,-152,16}},{{84.58843231201,-212,16},{10.42553901672,-204,16}}) gg.alert('开启成功') end _ENV['锁8'] = function() fastsearch({{0.37499997023,16,32},{-10,-152,16}},{{34.43569946289,-212,16},{5.32143163681,-204,16}}) gg.alert('开启成功') end _ENV['上门'] = function() fastsearch({{0.37499997023,16,32},{-10,-152,16}},{{65.45124053955,-212,16},{33.24272537231,-204,16}}) gg.alert('开启成功') end _ENV['中门'] = function() fastsearch({{0.37499997023,16,32},{-10,-152,16}},{{72.46097564697,-212,16},{22.39505767822,-204,16}}) gg.alert('开启成功') end _ENV['下门'] = function() fastsearch({{0.37499997023,16,32},{-10,-152,16}},{{80.53405761719,-212,16},{18.30999183655,-204,16}}) gg.alert('开启成功') end _ENV['↓下面是大乱斗传送↓'] = function() gg.alert('最下面4个大乱斗传送') end _ENV['前往boss房'] = function() fastsearch({{0.3749999702,16,32},{1111752704,-132,4}},{{66.4966506958,-212,16},{55.80109786987,-204,16},{3,-208,16,false}}) gg.alert('开启成功') end _ENV['前往教堂处'] = function() fastsearch({{0.37499997023,16,32},{1111752704,-132,4}},{{95.24781799316,-212,16},{19.73115158081,-204,16},{3,-208,16,false}}) gg.alert('开启成功') end _ENV['前往海盗船'] = function() fastsearch({{0.37499997023,16,32},{1111752704,-132,4}},{{69.37117767334,-212,16},{24.43232536316,-204,16},{3,-208,16,false}}) gg.alert('开启成功') end _ENV['前往C字楼'] = function() fastsearch({{0.37499997023,16,32},{1111752704,-132,4}},{{44.47694778442,-212,16},{81.638671875,-204,16},{3,-208,16,false}}) gg.alert('开启成功') end _ENV['全框架解设备'] = function() local jincheng=gg.getTargetInfo() local mingcheng=jincheng["label"] local baoming=gg.getTargetPackage() local queding if mingcheng~="..mingcheng.." then local xuanze=gg.alert("当前进程:"..mingcheng.."!\n是否解封设备","开启","关闭") if xuanze==1 then queding=true end if xuanze==2 then HOME() return false end else queding=true end if queding==true then local File="/storage/emulated/0/Android/data/"..baoming.."/gameplugins/com.bairimeng.dmmdzz.qihoo/files/VirtualUniqueDeviceID.txt" if io.open(File)~=nil then local xieru=math.random(111111111,999999999) io.open(File,"w"):write(xieru) gg.toast("正在解封") local shanchu=gg.alert("解封成功") else gg.alert("解封失败") end end end _ENV['全星耀动作'] = function() fastsearch ({ {950001,4,32}, {6,-4,4}, {0,8,4}, {0,12,4}, {0,16,4}, {0,20,4}, {0,-8,4}, {0,-12,4} }, {{961731,0,4}, {961711,4,4}, {961721,8,4}, {961361,12,4}, {964511,16,4}, {964501,20,4,false}}) gg.alert('全星耀动作') toMusic("开启成功") end _ENV['能量炮范围[自调]'] = function() a=gg.prompt({"能量腕炮范围"}) fastsearch({ {5,16,32}, {1,4,16}, {0,8,16}}, {{a[1],4,16, false}}) gg.alert('能量炮范围') toMusic("范围调改成功") end _ENV['迫击炮范围'] = function() gg.clearResults() fastsearch({ { 99, 16, 32 }, { 2, -36, 16 }, { 0.20000000298023224, -32, 16 }, { 0.4000000059604645, -24, 16 }, { 0.15000000596046448, -20, 16 }, { 1, -16, 16 }, { 0.8500000238418579, -12, 16 }, { 2.5, 12, 16 } }, { { 5, -36, 16, false } }) gg.alert('迫击炮范围') toMusic("开启成功") end _ENV['实体吸人'] = function() qc=gg.alert("吸人","4v1","8v2","基址吸人") if qc==1 then n=gg.alert("41吸人","开启","关闭") if n==1 then qmnb = { {["memory"] = 32}, {["name"] = "41吸人"}, {["value"] = 80, ["type"] = 4}, {["lv"] = 1.0,["offset"] =8, ["type"] = 16}, {["lv"] = 30,["offset"] =4, ["type"] = 4}, } qmxg = { {["value"] = 0,["offset"] =8, ["type"] = 16}, } xqmnb(qmnb) gg.alert('4v1吸人') toMusic("开启成功") end if n==2 then qmnb = { {["memory"] = 32}, {["name"] = "41吸人"}, {["value"] = 80, ["type"] = 4}, {["lv"] = 0,["offset"] =8, ["type"] = 16}, {["lv"] = 30,["offset"] =4, ["type"] = 4}, } qmxg = { {["value"] = 1.0,["offset"] =8, ["type"] = 16}, } xqmnb(qmnb) gg.alert('关闭') toMusic("你已关闭") end end if qc==2 then h=gg.alert("82吸人","开启","关闭") if h==1 then qmnb = { {["memory"] = 32}, {["name"] = "82吸人"}, {["value"] = 39, ["type"] = 4}, {["lv"] = 1.0,["offset"] =4, ["type"] = 16}, {["lv"] = 88,["offset"] =-4, ["type"] = 4}, } qmxg = { {["value"] = 0,["offset"] =4, ["type"] = 16}, } xqmnb(qmnb) gg.alert('8v2吸人') toMusic("开启成功") end if h==2 then qmnb = { {["memory"] = 32}, {["name"] = "82吸人"}, {["value"] = 39, ["type"] = 4}, {["lv"] = 0,["offset"] =4, ["type"] = 16}, {["lv"] = 88,["offset"] =-4, ["type"] = 4}, } qmxg = { {["value"] = 1.0,["offset"] =4, ["type"] = 16}, } xqmnb(qmnb) gg.alert('关闭') toMusic("你已关闭") end end if qc==3 then nh=gg.alert("基址吸人","开启","关闭") if nh==1 then nc_offset(getso("libil2cpp.so"),{{-516948194,4,0x14D19D8},}) gg.alert('基址吸人') toMusic("开启成功") end if nh==2 then nc_offset(getso("libil2cpp.so"),{{-382907280,4,0x14D19D8},}) gg.alert('关闭') toMusic("你已关闭") end end end _ENV['开炮加速'] = function() nc_offset(getso("libil2cpp.so"),{{-516948194,4,0x21c9e4c},}) nc_offset(getso("libil2cpp.so"),{{-476053504,4,0x21c9e50},}) gg.alert('开启成功') end _ENV['唤风镖范围'] = function() fastsearch({{1.25,16,32},{2.5,4,16}},{{5,4,16,false}}) fastsearch({{0.75,16,32},{1.5,4,16}},{{5,4,16,false}}) gg.alert('唤风镖范围') toMusic("开启成功") end _ENV['迫击炮射程'] = function() fastsearch ({ {1086324736,4,32}, {1031127695,4,4}, {1008981770,16,4} }, {{0.,16,16}, {0.,20,16}, {0.,24,16}, {50,0,16,false}}) gg.alert('迫击炮射程') toMusic("开启成功") end _ENV['酒桶属性'] = function() local LL=gg.prompt({"酒桶范围","酒桶buff","酒桶伤害"},{[1]="999" },{[2]="300"},{[3]="200"}) fastsearch ({{1088421888,4,32},{1017370378,8,4},{1106247680,24,4}}, { {LL[1],20,16} ,{LL[2],160,4} ,{LL[3],156,16} }) gg.alert('酒桶属性') toMusic("开启成功") end _ENV['免费购物'] = function() BaseAddressD(0xf1eedc,'-476053504') BaseAddressD(0xf1eee0,'-516948194') gg.alert('免费购物') toMusic("开启成功") end _ENV['锁定金币'] = function() BaseAddressD(0xb73340,'-476053504') BaseAddressD(0xb73344,'-516948194') gg.alert('锁定金币') toMusic("开启成功") end _ENV['暴率秒杀'] = function() BaseAddressD(0x31659e8,'-476052716') BaseAddressD(0x31659ec,'-516948194') gg.alert('暴率秒杀') toMusic("开启成功") end _ENV['强制解锁'] = function() nc_offset(getso("libil2cpp.so"),{{-476053503,4,0x108b5c8},}) gg.alert('开启成功') end _ENV['自定义刷钱'] = function() gy=gg.prompt({i='输入要刷的次数'}, {i='20'}) for i=1,gy["i"] do nc_offset(getso("libil2cpp.so"),{{-353640949,4,0x13a5e38},}) gg.sleep(1000) nc_offset(getso("libil2cpp.so"),{{-382907280,4,0x13a5e38},}) gg.alert('开启成功') end end _ENV['强制飞天'] = function() nc_offset(getso("libil2cpp.so"),{{-369094470,4,0x13ae8e8},}) gg.alert('开启成功') end _ENV['人机代打[5.26优化]'] = function() nc_offset(getso("libil2cpp.so"),{{-516948194,4,0xb84a44},}) gg.alert('开启成功') end _ENV['3.8倍移速'] = function() qmnb = { {["memory"] = 32}, {["name"] = "3.8倍移速"}, {["value"] = 2.79999995232, ["type"] = 16}, {["lv"] = 20.0,["offset"] =4, ["type"] = 16}, {["lv"] = 900.0,["offset"] =12, ["type"] = 16}, } qmxg = { {["value"] = 3.8,["offset"] =0, ["type"] = 16}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['追捕刷钱'] = function() fastsearch({ {4489188110528151552, 32, 32}, {256, 20, 4}, {100, 24, 4}, }, {{1, 88, 4, true}, {122879,92,4,true},},"追捕刷钱") fastsearch({{4489188110532608000,32,32},{256,20,4},{100,24,4}},{{1,88,4,true},{184319,92,4,true}}) gg.alert('开启成功') end _ENV['无限暴走'] = function() qmnb = { {["memory"] = 32}, {["name"] ="无限暴走️"}, {["value"] =4787326404979064832, ["type"] = 32}, {["lv"] = 0, ["offset"] = 28, ["type"] = 4}, } qmxg = { {["value"] =10, ["offset"] = 28, ["type"] = 4,["freeze"] = true}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['雷达透视[全局]'] = function() BaseAddressD(0xb82234,'-476052716') gg.alert('开启成功') end _ENV['雇佣兵无限夹子全局[一定要在天赋呆着开完后打把训练营实战必有效果]'] = function() gg.clearResults() gg.setRanges(32) gg.searchNumber("3;103;104;105::13", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("103;104;105", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("110", gg.TYPE_DWORD) gg.toast("雇佣兵") gg.clearResults() gg.setRanges(32) gg.searchNumber("180;150;120;60::13", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("180;150;120;60", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("1", gg.TYPE_FLOAT) gg.toast("雇佣兵夹子") gg.clearResults() gg.alert('开启成功') end _ENV['倒地燃烧'] = function() qmnb = { {["memory"] = 32}, {["name"] = ""}, {["value"] = 0.30000001192092896, ["type"] = 16}, {["lv"] = 100.0,["offset"] =-0x4, ["type"] = 16}, {["lv"] = 200.0,["offset"] =0x10, ["type"] = 16}, } qmxg = { {["value"] = 0,["offset"] =-0x8, ["type"] = 16}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['追捕开锁'] = function() qmnb = { {["memory"] = 16384}, {["name"] = "追捕开锁"}, {["value"] = 75900672, ["type"] = 4}, {["lv"] = 75900652, ["offset"] = 4, ["type"] = 4}, {["lv"] = -382908368, ["offset"] = 8, ["type"] = 4}, {["lv"] = -494030840, ["offset"] = 12, ["type"] = 4}, {["lv"] = -442544040, ["offset"] = 16, ["type"] = 4}, {["lv"] = -509591552, ["offset"] = 20, ["type"] = 4}, } qmxg = { {["value"] = -516948194, ["offset"] = 12, ["type"] = 4, ["freeze"] = false}, {["value"] = -476053503, ["offset"] = 8, ["type"] = 4, ["freeze"] = false}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['逃生减血'] = function() qmnb = { {["memory"] = 32}, {["name"] = "逃生减血"}, {["value"] = 200.0, ["type"] = 16}, {["lv"] = 100.0, ["offset"] = -20, ["type"] = 16}, {["lv"] = 100.0, ["offset"] = -24, ["type"] = 16}, } qmxg={ {["value"] = 1, ["offset"] = -20, ["type"] = 16}, {["value"] = 1, ["offset"] = -24, ["type"] = 16}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['追捕救人'] = function() nc_offset(getso("libil2cpp.so"),{{-476053503,4,0xbeb74c},}) nc_offset(getso("libil2cpp.so"),{{-516948194,4,0xbeb750},}) gg.alert('开启成功') end _ENV['变身攻击'] = function() fastsearch({{0.00100000005,16,16384},{-382907280,184,4}},{{-516948194,184,4,false}}) gg.alert('开启成功') end _ENV['武器秒杀'] = function() qmnb = { {["memory"] = 32}, {["name"] = "武器秒杀"}, {["value"] = 100.0, ["type"]=16}, {["lv"] = 1.0,["offset"]=-4, ["type"]=16}, {["lv"] = 256,["offset"]=40, ["type"]=4}, {["lv"] = 256,["offset"]=-32, ["type"]=4}, } qmxg = { {["value"] = 1.0, ["offset"] = 136, ["type"] = 16, ['freeze'] = true}, } gg.alert('开启成功') end _ENV['移速[自调]'] = function() local fy=gg.prompt({"移速[自调]"}, {[1] = 4}, {[1] = "text"}) if fy==nil then os.exit(print("你点击了取消")) end qmnb = { {["memory"] = 32}, {["name"] = "移速"}, {["value"] = 2.79999995232, ["type"] = 16}, {["lv"] = 20.0,["offset"] =4, ["type"] = 16}, {["lv"] = 900.0,["offset"] =12, ["type"] = 16}, } qmxg = { {["value"] = fy[1],["offset"] =0, ["type"] = 16}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['高跳[自调]'] = function() local fy=gg.prompt({"高跳[自调]"}, {[1] = 5}, {[1] = "text"}) if fy==nil then os.exit(print("你点击了取消哦")) end qmnb = { {["memory"] = 32}, {["name"] = "高跳"}, {["value"] = 4.900000095367432, ["type"] = 16}, {["lv"] = 900.0,["offset"] =-4, ["type"] = 16}, {["lv"] = 20.0,["offset"] =-8, ["type"] = 16}, } qmxg = { {["value"] = fy[1],["offset"] =0, ["type"] = 16}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['开锁[自调]'] = function() local fy=gg.prompt({"开锁[自调]"}, {[1] = 3.2}, {[1] = "text"}) if fy==nil then os.exit(print("你点击了取消哦")) end qmnb = { {["memory"] = 32}, {["name"] = "开锁"}, {["value"] = 1.5, ["type"] = 16}, {["lv"] = 1.0,["offset"] =-4, ["type"] = 16}, {["lv"] = 2.0,["offset"] =4, ["type"] = 16}, {["lv"] = 2.5,["offset"] =8, ["type"] = 16}, } qmxg = { {["value"] = fy[1],["offset"] =-4, ["type"] = 16}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['自身血量[自调]'] = function() local fy=gg.prompt({"自身血量[自调]"}, {[1] = 1000}, {[1] = "text"}) if fy==nil then os.exit(print("你点击了取消")) end qmnb = { {["memory"] = 32}, {["name"] = "自身血量"}, {["value"] = 200.0, ["type"] = 16}, {["lv"] = 100.0,["offset"] =-20, ["type"] = 16}, {["lv"] = 100.0,["offset"] =-24, ["type"] = 16}, } qmxg = { {["value"] = fy[1],["offset"] =-20, ["type"] = 16}, {["value"] = fy[1],["offset"] =-24, ["type"] = 16}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['开逃生门速度[自调]'] = function() local pl=gg.prompt({"逃生门速度[自调]"}, {[1] = 5}, {[1] = "text"}) if pl==nil then os.exit(print("你点击了取消哦")) end qmnb = { {["memory"] = 32}, {["name"] = ""}, {["value"] = 8.0, ["type"] = 16}, {["lv"] = 1.0,["offset"] =16, ["type"] = 16}, } qmxg = { {["value"] = pl[1],["offset"] =0, ["type"] = 16}, } xqmnb(qmnb) gg.clearResults() gg.alert('开启成功') end _ENV['开物范围[自调]'] = function() local pl=gg.prompt({"开物范围[自调]"}, {[1] = 10}, {[1] = "text"}) if pl==nil then os.exit(print("你选择了取消")) end qmnb = { {["memory"] = 32}, {["name"] = "开物范围"}, {["value"] = 1.2999999523162842, ["type"] = 16}, {["lv"] = 1.0,["offset"] =8, ["type"] = 16}, } qmxg = { {["value"] = pl[1],["offset"] =0, ["type"] = 16}, } xqmnb(qmnb) gg.clearResults() gg.alert('开启成功') end _ENV['倒车跳跃'] = function() gg.clearResults() gg.setRanges(32) gg.searchNumber("-4,294,967,177;4,294,967,295;8;4,294,967,295:125", gg.TYPE_QWORD, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("8", gg.TYPE_QWORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("0", gg.TYPE_QWORD) gg.toast("倒车跳跃") gg.clearResults() gg.alert('开启成功') end _ENV['倒地移速[自调]'] = function() yw=gg.prompt({[1]='请输入要修改的倒地移速'}, {[1]='1.5'}) qmnb = { {["memory"] = 32}, {["name"] = "倒地移速"}, {["value"] = 900.0, ["type"] = 16}, {["lv"] = 0.24199999868869781, ["offset"] = 16, ["type"] = 16}, } qmxg = { {["value"] = yw[1], ["offset"] = 16, ["type"] = 16}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['导弹超进化'] = function() local xt=gg.prompt({"请输入要改的导弹爆炸范围"}, {[1] = 40}, {[1] = "text"}) readWrite({{false,6.30584309e-44,0,16,nil,nil},{5.5,16,16}},{{1,4,16,false},{xt[1],8,16,false},{0,12,16,false}},16,32," ") gg.alert('开启成功') end _ENV['坐标逃生阵营'] = function() fastsearch({{620124558209024,32, 32},{144384, 4,4},{51200, 8, 4},{7936, 16, 4}},--143,360 {{0,12,4},--1 {0,1180,4},--2 {0,9492+12,4},--3 {0,10680+12,4},--4 {0,2340+12,4},--5 {0,6484+12,4},--6 {0,8908+12,4},--7 {0,5296+12,4}--8 },'逃生阵营') gg.alert('开启成功') end _ENV['人物延迟'] = function() gg.clearResults() gg.setRanges(gg.REGION_CODE_APP) gg.searchNumber("1000", FLOAT, false, gg.SIGN_EQUAL, 0, -1) if gg.getResultCount() == 0 then gg.toast("没有值可修改") else gg.searchNumber("",FLOAT , false, gg.SIGN_EQUAL, 0, -1) gg.getResults(1000) gg.editAll("666", FLOAT) gg.toast("人物延迟") gg.clearResults() end end _ENV['倒车捐钱'] = function() fastsearch({{-4294967177, 32, 32}, {8, 44, 32}}, {{6, 44, 32, false}}) gg.alert('开启成功') end _ENV['开物范围[自调]'] = function() local pl=gg.prompt({"开物范围[自调]"}, {[1] = 10}, {[1] = "text"}) if pl==nil then os.exit(print("你选择了取消哦")) end qmnb = { {["memory"] = 32}, {["name"] = "开物范围"}, {["value"] = 1.2999999523162842, ["type"] = 16}, {["lv"] = 1.0,["offset"] =8, ["type"] = 16}, } qmxg = { {["value"] = pl[1],["offset"] =0, ["type"] = 16}, } xqmnb(qmnb) gg.clearResults() gg.alert('开启成功') end _ENV['唤风镖范围[自调]'] = function() a=gg.prompt( {"唤风范围[1;200]"}, {[1] = "5"} ,{"number"} ) if a==nil then Main0(gg.alert("你点击了取消")) end qmnb = { {["memory"] = 32}, {["name"] = "唤风范围[大]"}, {["value"] = 1.25, ["type"] = 16}, {["lv"] = 2.5,["offset"] =4, ["type"] = 16}, } qmxg = { {["value"] = a[1],["offset"] =4, ["type"] = 16}, } xqmnb(qmnb) qmnb = { {["memory"] = 32}, {["name"] = "唤风范围[小]"}, {["value"] = 0.75, ["type"] = 16}, {["lv"] = 1.5,["offset"] =4, ["type"] = 16}, } qmxg = { {["value"] = a[1],["offset"] =4, ["type"] = 16}, } xqmnb(qmnb) gg.alert('开启成功') end _ENV['救人范围[自选]'] = function() pl=gg.alert("请选择救人范围","救人范围[大]","范围救人") if pl==1 then gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('0.75;0.2;1.3;1.3;1D;100D::',gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('1.3',gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('8',gg.TYPE_FLOAT) gg.toast("开启成功") gg.clearResults() gg.alert('开启成功') end if pl==2 then gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber('0.75;0.2;1.3;1.3;1D;100D::',gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1) gg.searchNumber('1.3',gg.TYPE_FLOAT,false,gg.SIGN_EQUAL,0, -1) gg.getResults(100) gg.editAll('10',gg.TYPE_FLOAT) gg.toast("开启成功") gg.clearResults() gg.alert('开启成功') end end _ENV['获取金币[修复建议使用1∽2次]'] = function() so = gg.getRangesList('libil2cpp.so')[1].start function BaseAddressY(address, value) local tt = {} tt[1] = {} tt[1].address = so + address tt[1].flags = 4 tt[1].value = value gg.setValues(tt) end BaseAddressY(0x13a5e38,"-353640949") gg.sleep(1000)--延迟0.1秒 BaseAddressY(0x13a5e38,"-382907280") gg.alert('开启成功') end _ENV['开物加速[5.26优化]'] = function() nc_offset(getso("libil2cpp.so"),{{-476052999,4,0x13b0dd4},}) nc_offset(getso("libil2cpp.so"),{{-476052999,4,0x204ff0c},}) nc_offset(getso("libil2cpp.so"),{{-476052999,4,0x119d83c},}) nc_offset(getso("libil2cpp.so"),{{-476052999,4,0x12f6a84},}) nc_offset(getso("libil2cpp.so"),{{-476052999,4,0x18f070c},}) nc_offset(getso("libil2cpp.so"),{{-476052999,4,0x108bb2c},}) gg.alert('开启成功') end _ENV['道具无冷却[修复]'] = function() nc_offset(getso("libil2cpp.so"),{{-476053503,4,0xf1e854},}) nc_offset(getso("libil2cpp.so"),{{-516948194,4,0xf1e858},}) gg.alert('开启成功') end _ENV['锁道具[修复]'] = function() fastsearch({ { 4.8828154E-4, 16, 16384 }, { -382907280, -524, 4 }, { -494030832, -520, 4 }, { 167772164, -444, 4 } }, { { -516948194, -524, 4, false } }) gg.alert('开启成功') end _ENV['透视[修复]'] = function() nc_offset(getso("libil2cpp.so"),{{-516948194,4,0x1744928},}) gg.alert('开启成功') end _ENV['超级移速[全局]'] = function() nc_offset(getso("libil2cpp.so"),{{-476052417,4,0xe80c68},}) nc_offset(getso("libil2cpp.so"),{{-516948194,4,0xe80c6c},}) gg.alert('开启成功') end _ENV['A内存无间隔[局内]'] = function() local t = {"libil2cpp.so", "Cd"} local tt = {0x2130BC, 0x5C, 0x10, 0x5C, 0x5C} local ttt = S_Pointer(t, tt) gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}}) gg.alert('开启成功') end _ENV['子弹穿墙射程[全局]'] = function() nc_offset(getso("libil2cpp.so"),{{-516948194,4,0xF45760},},'子弹穿墙射程') gg.alert('开启成功') end _ENV['锁子弹'] = function() local t = {"libil2cpp.so", "Cd"} local tt = {0x135094, 0x0} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = -5.90295867e21}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x135094, 0x4} local ttt = S_Pointer(t, tt) gg.setValues({{address = ttt, flags = 16, value = -2.02910209e20}}) gg.alert('开启成功') end _ENV['武器无后[全局]'] = function() nc_offset(getso("libil2cpp.so"),{{1,16,0xF46F34},}) gg.alert('开启成功') end _ENV['开箱物资[局内]'] = function() gg.clearResults() gg.setRanges(32) gg.searchNumber("0.5;6;20;120;4;120:", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("0.5;6", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("20", gg.TYPE_FLOAT) gg.toast(" ") gg.clearResults() gg.alert('开启成功') end _ENV['无视毒圈[局内]'] = function() fastsearch({{125.0,16,32},{1,-168,16}},{{999999,-168,16,false}}) gg.alert('开启成功') end _ENV['角色功能'] = function() menu1 = gg.multiChoice({ "全角色技能+免费[修复-局内]",--1 "汽车人闪电+时间+冷却[局内]",--2 "玖儿免费无冷[局内]",--3 "玖儿加血减血[局内]",--4 "玖儿长度时间[局内]",--5 "奥博免费无冷[局内]",--6 "奥博范围伤害[局内]",--7 "奥博电击时间[局内]",--8 "团子免费无冷[局内]",--9 "团子技能变身[局内]",--10 "影忍免费无冷[局内]",--11 "影忍被动BUff[局内]",--12 "影忍技能落地[局内]",--13 "命石免费无冷[局内]",--14 "命石抱摔距离[局内]",--15 "命石抱摔冲刺[局内]",--16 "命石锁定抱摔[局内]",--17 "盾位超进化[局内]",--18 "劲铠全屏范围[局内]",--19 "影之忍者技能[局内]", "艾可一套技能[局内]", "水刃超进化[局内]", "星辰圣女强化[局内]", "小狮子超进化[局内]", "夜翎超进化[局内]", "小骇客属性[天赋页面开]", "魔术师超进化[局内]", "返回主页"--20 }, nil,os.date"") if menu1 == nil then else if menu1[1] == true then S1() end if menu1[2] == true then S2() end if menu1[3] == true then S3() end if menu1[4] == true then S4() end if menu1[5] == true then S5() end if menu1[6] == true then S6() end if menu1[7] == true then S7() end if menu1[8] == true then S8() end if menu1[9] == true then S9() end if menu1[10] == true then S10() end if menu1[11] == true then S11() end if menu1[12] == true then S12() end if menu1[13] == true then S13() end if menu1[14] == true then S14() end if menu1[15] == true then S15() end if menu1[16] == true then S16() end if menu1[17] == true then S17() end if menu1[18] == true then S18() end if menu1[19] == true then S19() end if menu1[20] == true then S20() end if menu1[21] == true then S21() end if menu1[22] == true then S22() end if menu1[23] == true then S23() end if menu1[24] == true then S24() end if menu1[25] == true then S25() end if menu1[26] == true then S26() end if menu1[27] == true then S27() end if menu1[28] == true then Main() end end end function S1() qmnb = { {["memory"] = 32}, {["name"] = "修改成功"}, {["value"] = -934560717, ["type"] = 4}, {["lv"] = 1581114487,["offset"] =4, ["type"] = 4}, } qmxg = { {["value"] = 0,["offset"] =-32, ["type"] = 4, ["freeze"] = true}, {["value"] = 0.0,["offset"] =-36, ["type"] = 16, ["freeze"] = true}, {["value"] = 9999,["offset"] =-40, ["type"] = 4, ["freeze"] = true}, } xqmnb(qmnb) gg.alert('开启成功') end function S2() gg.clearResults() gg.setRanges(32) gg.searchNumber("0.5;1.0;3.0;0.30000001192;3.79999995232;2.5;0.5;0.5;0.5::", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("3", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("160", gg.TYPE_FLOAT) gg.toast("汽车人技能全图闪电") gg.clearResults() gg.clearResults() gg.setRanges(32) gg.searchNumber("0.5;1.0;0.30000001192;3.79999995232;2.5;0.5;0.5;0.5::", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("1", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("7.2", gg.TYPE_FLOAT) gg.toast("增长闪电时长") gg.clearResults() gg.clearResults() gg.setRanges(32) gg.searchNumber("8.0;0.5;0.30000001192;3.79999995232;2.5;0.5;0.5;8.0;0.5::", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("8", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("1.5", gg.TYPE_FLOAT) gg.toast("技能冷却") gg.clearResults() end function S3() fastsearch({{1060306944,4,32},{1056964608,4,4},{50,120,4}},{{0,120,4,true},{0,116,4,false}}) end function S4() QQ=gg.prompt({"输入加血或者扣血数字(可进行多次修改)↓"},{[1]=""}) if QQ == nil then Main() end if QQ[1] == nil then gg.toast("请输入值") Main() end fastsearch({{-1035468800,4,32},{1065353216,4,4},{1065353216,148,4}},{{-QQ[1],96,16,true}}) gg.toast("成功修改"..QQ[1].."血量") end function S5() fastsearch({{10, 16, 32}, {6, 4, 16}, {5, 8, 16}, {10, 12, 16}}, {{9999, 0, 16},{999,4,16},{0,8,16},{99,12,16,false}}) end function S6() fastsearch({{-934560717,4,32},{1090519040,-36,4}},{{0,-32,4,true},{0,-36,4,false}}) end function S7() fastsearch({{3.799999952316284,16,32},{3,-20,16}},{{99,-20,16},{5,68,16,false}}) end function S8() fastsearch({{1033, 4, 32}, {0.5, 4, 16}, {1, 16,16 }}, {{9999,16,16,false}}) end function S9() fastsearch({{-934560717,4,32},{1092616192,-36,4}},{{0,-32,4},{0,-36,4,false}}) end function S10() QQ=gg.prompt({"迪迦--500001\n赛罗--500002\n泽塔--500003\n飞天虎--90006\n千斤顶--90005输入代码(可进行多次修改)↓"},{[1]=""}) if QQ == nil then Main() end if QQ[1] == nil then gg.toast("请输入值") Main() end fastsearch({{1.29999995232,16,32},{1069547520,-4,4},{1045220557,-20,4}},{{QQ[1]+50000,-8,4,false}}) end function S11() fastsearch({{-934560717,4,32},{80,-32,4}},{{0,-36,4},{0,-32,4,true}}) end function S12() fastsearch({{1077936128,4,32},{533,16,4}},{{108,4,4},{111,12,4,false}}) end function S13() fastsearch({{8,16,32},{1,4,16},{7,8,16}},{{0,8,16,false}}) end function S14() fastsearch({{4.300000190734863,16,32},{-1,-4,16},{1,-8,16},{3,-12,16}},{{0,-260,16,true},{0,-256,16,true}}) end function S15() fastsearch({{4.300000190734863,16,32},{-1,-4,16},{1,-8,16},{3,-12,16}},{{10,-100,16},{99,-96,16,false}}) end function S16() fastsearch({{2147483647, 4, 32}, {3.0, 16, 16}, {3.0, 20, 16}, {2.0, 56, 16}}, {{20, 20, 16, false}}) end function S17() fastsearch({{4.300000190734863,16,32},{-1,-4,16},{1,-8,16},{3,-12,16}},{{1.40129846e-45,-268,16,true}}) end function S18() u=gg.prompt({"输入你的当前60主技能的冷却"},{15.0},{"number"}) qmnb = { {["memory"] = 32}, {["name"] = " "}, {["value"] = 0.800000011920929, ["type"] = 16}, {["lv"] = u[1], ["offset"] = -124, ["type"] = 16}, {["lv"] = 60, ["offset"] = -120, ["type"] = 4}, {["lv"] = 1.25, ["offset"] = -8, ["type"] = 16}, } qmxg = { {["value"] = 0, ["offset"] = -124, ["type"] = 16, ["freeze"] = false}, {["value"] = 0, ["offset"] = -120, ["type"] = 4, ["freeze"] = false}, {["value"] = 99, ["offset"] = -8, ["type"] = 16, ["freeze"] = false}, } xqmnb(qmnb) end function S19() qmnb = { {memory = 32}, {name = "劲铠全屏范围"}, {value = 0.95, type = 16}, { lv = 0.25, offset = 36, type = 16 } } qmxg = { { value = 9999, offset = 0, type = 16 }, { value = 9999, offset = 36, type = 16 } } xqmnb(qmnb) end function S20() qmnb = { {["memory"] = 32}, {["name"] = "影子忍者超进化"}, {["value"] = 0.20000000298023224, ["type"] = 16}, {["lv"] = 1.0, ["offset"] = -4, ["type"] = 16}, } qmxg = { {["value"] = 99, ["offset"] = -4, ["type"] = 16, ["freeze"] = false}, } xqmnb(qmnb) fastsearch({{80, 4, 32}, {1, -8, 4}, {0.10000000149011612, -4, 16}}, {{13140000, -8, 4, false}, {0, -4, 16, false}, {0, 0, 4, false}}) end function S21() qmnb = { {["memory"] = 32}, {["name"] = " "}, {["value"] = 50.0, ["type"] = 16}, {["lv"] = 1, ["offset"] = -140, ["type"] = 4}, {["lv"] = 80, ["offset"] = -132, ["type"] = 4}, {["lv"] = 0.800000011920929, ["offset"] = 8, ["type"] = 16}, } qmxg = { {["value"] = 520, ["offset"] = -140, ["type"] = 4, ["freeze"] = false}, {["value"] = 0, ["offset"] = -132, ["type"] = 4, ["freeze"] = false}, {["value"] = 0, ["offset"] = 8, ["type"] = 16, ["freeze"] = false}, } xqmnb(qmnb) end function S22() qmnb = { {["memory"] = 32}, {["name"] = "水忍超进化"}, {["value"] = 0.5, ["type"] = 16}, {["lv"] = 70,["offset"] = 4,["type"] = 4}, } qmxg = { {["value"] = 114514,["offset"] = -4,["type"] = 4,["freeze"] = true}, {["value"] = 0.1,["offset"] = 0,["type"] = 16,["freeze"] = true}, {["value"] = 0,["offset"] = 4,["type"] = 4,["freeze"] = true}, } xqmnb(qmnb) end function S23() qc=gg.alert("星辰圣女","技能属性","强化形态") if qc==1 then NH=gg.prompt({"输入技能范围"},{[1]=""}) qmnb = { {["memory"] = 32}, {["name"] = "技能属性"}, {["value"] = 1058642330, ["type"] = 4}, {["lv"] = 1090519040,["offset"] =4, ["type"] = 4}, {["lv"] = 1086324736,["offset"] =8, ["type"] = 4}, {["lv"] = 1082130432,["offset"] =12, ["type"] = 32}, } qmxg = { {["value"] = 0,["offset"] =-56, ["type"] = 16}, {["value"] = 0,["offset"] =0, ["type"] = 16}, {["value"] = NH[1],["offset"] =4, ["type"] = 16}, {["value"] = 520,["offset"] =8, ["type"] = 16}, {["value"] = 1314,["offset"] =44, ["type"] = 4, ["freeze"] = true}, } xqmnb(qmnb) end if qc==2 then qmnb = { {["memory"] = 32}, {["name"] = "强化形态"}, {["value"] = 1089470464, ["type"] = 4}, {["lv"] = 1.0, ["offset"] = -32, ["type"] = 16}, {["lv"] = 0, ["offset"] = -16, ["type"] = 4}, {["lv"] = 0, ["offset"] = -4, ["type"] = 4}, {["lv"] = 0.6000000238418579, ["offset"] = 4, ["type"] = 16}, {["lv"] = 0, ["offset"] = 12, ["type"] = 4}, {["lv"] = 0.5, ["offset"] = 20, ["type"] = 16}, {["lv"] = 0.30000001192092896, ["offset"] = 24, ["type"] = 16}, {["lv"] = 0, ["offset"] = 28, ["type"] = 4}, } qmxg = { {["value"] = 0, ["offset"] = -4, ["type"] = 4, ["freeze"] = true}, {["value"] = 0, ["offset"] = 20, ["type"] = 16, ["freeze"] = true}, {["value"] = 0, ["offset"] = 24, ["type"] = 16, ["freeze"] = true}, } xqmnb(qmnb) end end function S24() qmnb = { {["memory"] = 32}, {["name"] = "小狮子超进化"}, {["value"] = 1.850000023841858, ["type"] = 16}, {["lv"] = 0.6200000047683716,["offset"] =-4, ["type"] = 16}, {["lv"] = 0.5,["offset"] =-8, ["type"] = 16}, {["lv"] = 0.10000000149011612,["offset"] =-12, ["type"] = 16}, } qmxg = { {["value"] = 9999,["offset"] =-24, ["type"] = 16}, {["value"] = 9999,["offset"] =-0x1C, ["type"] = 16}, {["value"] = 0,["offset"] =-0x80, ["type"] = 4}, } xqmnb(qmnb) end function S25() readWrite({{false,0.375,148,16,nil,nil},{30.0,156,16},{0.5,168,16}},{{0,0,16,false},{0,4,16,true},{12,128,16,false}},16,32,"夜翎超进化") end function S26() gg.clearResults() gg.setRanges(32) gg.searchNumber("1;1.3;1.6;2::", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("100", gg.TYPE_FLOAT) gg.toast("开启成功") gg.clearResults() end function S27() qmnb = { {["memory"] = 32}, {["name"] = "魔术师超进化"}, {["value"] = 30.0, ["type"] = 16}, {["lv"] = 100, ["offset"] = 64, ["type"] = 4}, } qmxg = { {["value"] = 0, ["offset"] = 64, ["type"] = 4, ["freeze"] = true}, } xqmnb(qmnb) end floatingWindowManager:newWindow(('aksm pro'):format(floatingWindowManager.version), { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_margin = '10dp', background="https://cccimg.com/view.php/6e9ac8d2c3e9d3db2f8bd31138644769.jpg", layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = '选择进程', textSize = '16sp', onClick = function() gg.setProcessX() end }, { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', newButtonLayout('运行初始化[必开]'), }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = '游戏设置', textSize = '16sp', onClick = function() floatingWindowManager:start('游戏设置') end }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = '稳定功能', textSize = '16sp', onClick = function() floatingWindowManager:start('稳定功能') end }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = '直装功能', textSize = '16sp', onClick = function() floatingWindowManager:start('直装功能') end }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = '换卡功能', textSize = '16sp', onClick = function() floatingWindowManager:start('换卡功能') end }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = '吴迪功能', textSize = '16sp', onClick = function() floatingWindowManager:start('吴迪功能') end }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = '娱乐功能', textSize = '16sp', onClick = function() floatingWindowManager:start('娱乐功能') end }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = '追捕功能', textSize = '16sp', onClick = function() floatingWindowManager:start('追捕功能') end }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = '自调菜单', textSize = '16sp', onClick = function() floatingWindowManager:start('自调菜单') end }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = 'svip属性', textSize = '16sp', onClick = function() floatingWindowManager:start('svip属性') end }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = '大乱斗功能', textSize = '16sp', onClick = function() floatingWindowManager:start('大乱斗功能') end }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = '实战美化', textSize = '16sp', onClick = function() floatingWindowManager:start('实战美化') end }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = '传送功能', textSize = '16sp', onClick = function() floatingWindowManager:start('传送功能') end }, { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', newButtonLayout('全框架解设备'), }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = '调试菜单', textSize = '16sp', onClick = function() floatingWindowManager:start('调试菜单') end }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = '音乐播放', textSize = '16sp', onClick = function() floatingWindowManager:start('音乐播放') end }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = '其他功能', textSize = '16sp', onClick = function() floatingWindowManager:start('其他功能') end }, { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', newButtonLayout('角色功能'), }, } }) end, onDestroy = function() -- gg.alert('欢迎下次使用!') end }) floatingWindowManager:newWindow('游戏设置', { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', background="https://cccimg.com/view.php/6e9ac8d2c3e9d3db2f8bd31138644769.jpg", newSwitchLayout('登陆防闪'), newSwitchLayout('过检[登录页面]'), newSwitchLayout('局内防优化[一把一开]'), newSwitchLayout('过检强版[登录页面]'), } }) end }) floatingWindowManager:newWindow('稳定功能', { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp' }, background="https://cccimg.com/view.php/6e9ac8d2c3e9d3db2f8bd31138644769.jpg", newSwitchLayout('移动开物[通用]'), newSwitchLayout('三倍开锁[稳定]'), newSwitchLayout('3.8倍移速[稳定]'), newSwitchLayout('无视开锁[稳定]'), newSwitchLayout('完美开锁[稳定]'), newSwitchLayout('穿墙[半稳]'), newSwitchLayout('高跳[稳定]'), newSwitchLayout('无视夹子[修复]'), newSwitchLayout('明透[修复]'), newSwitchLayout('倒地复活[半稳]'), newSwitchLayout('人物爬墙[稳定]'), newSwitchLayout('路过开物[稳定]'), } }) end }) floatingWindowManager:newWindow('直装功能', { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', background="https://cccimg.com/view.php/6e9ac8d2c3e9d3db2f8bd31138644769.jpg", newSwitchLayout('追捕破盾'), newSwitchLayout('雷达透视'), newSwitchLayout('杀猪队友'), newSwitchLayout('武器无后[手持]'), newSwitchLayout('百发子弹[大厅]'), newSwitchLayout('秒换子弹[手持]'), newSwitchLayout('无间隔功能'), newSwitchLayout('变身攻击[全局]'), newSwitchLayout('人物踏空'), newSwitchLayout('人物视角[自调]'), newSwitchLayout('解锁模式'), newSwitchLayout('美化自选'), newSwitchLayout('倒地丢道具'), newSwitchLayout('丝血不死'), newSwitchLayout('子弹穿墙'), newSwitchLayout('无限金币'), newSwitchLayout('金币[建议使用1~2次]'), } }) end }) floatingWindowManager:newWindow('换卡功能', { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', background="https://cccimg.com/view.php/6e9ac8d2c3e9d3db2f8bd31138644769.jpg", newSwitchLayout('跳高换卡'), newSwitchLayout('拳套换卡'), newSwitchLayout('疾跑换卡'), } }) end }) floatingWindowManager:newWindow('吴迪功能', { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', background="https://cccimg.com/view.php/6e9ac8d2c3e9d3db2f8bd31138644769.jpg", newSwitchLayout('全星耀动作'), newSwitchLayout('能量炮范围[自调]'), newSwitchLayout('迫击炮范围'), newSwitchLayout('实体吸人'), newSwitchLayout('开炮加速'), newSwitchLayout('唤风镖范围'), newSwitchLayout('迫击炮射程'), newSwitchLayout('酒桶属性'), newSwitchLayout('免费购物'), newSwitchLayout('锁定金币'), newSwitchLayout('暴率秒杀'), newSwitchLayout('强制解锁'), newSwitchLayout('自定义刷钱'), newSwitchLayout('强制飞天'), newSwitchLayout('人机代打[5.26优化]'), } }) end }) floatingWindowManager:newWindow('娱乐功能', { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', background="https://cccimg.com/view.php/6e9ac8d2c3e9d3db2f8bd31138644769.jpg", newSwitchLayout('解锁风格[修复]'), newSwitchLayout('能量剑自定义'), newSwitchLayout('小飞机属性'), newSwitchLayout('人物天线'), newSwitchLayout('全屏救人'), newSwitchLayout('不死捐钱[修复]'), newSwitchLayout('卡组改武器[局内]'), newSwitchLayout('烟花蔡天'), newSwitchLayout('手雷范围'), newSwitchLayout('范围开物'), } }) end }) floatingWindowManager:newWindow('实战美化', { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', background="https://cccimg.com/view.php/6e9ac8d2c3e9d3db2f8bd31138644769.jpg", newSwitchLayout('飞爪[自调]'), newSwitchLayout('滑板[自调]'), newSwitchLayout('医疗箱[自调]'), newSwitchLayout('自走球[自调]'), newSwitchLayout('火箭筒[自调]'), newSwitchLayout('冲锋枪[自调]'), newSwitchLayout('迫击炮[自调]'), newSwitchLayout('能量剑[自调]'), newSwitchLayout('蹦蹦枪[自调]'), newSwitchLayout('能量炮[自调]'), newSwitchLayout('霰弹枪[自调]'), newSwitchLayout('唤风镖[自调]'), newSwitchLayout('霸天斧[自调]'), } }) end }) floatingWindowManager:newWindow('调试菜单', { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', background="https://cccimg.com/view.php/6e9ac8d2c3e9d3db2f8bd31138644769.jpg", newSwitchLayout('调试连发'), newSwitchLayout('霸天斧保存'), newSwitchLayout('蹦蹦枪保存'), newSwitchLayout('冲锋枪保存'), newSwitchLayout('盾位保存'), newSwitchLayout('红蜘蛛炮保存'), newSwitchLayout('唤风镖保存'), newSwitchLayout('火箭筒保存'), newSwitchLayout('能量剑保存'), newSwitchLayout('能量碗泡保存'), newSwitchLayout('迫击炮保存'), } }) end }) floatingWindowManager:newWindow('音乐播放', { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', background="https://cccimg.com/view.php/6e9ac8d2c3e9d3db2f8bd31138644769.jpg", newSwitchLayout('男刀专属'), newSwitchLayout('孤独终究会被圆满补偿'), newSwitchLayout('少羽战歌'), newSwitchLayout('背起了行囊'), newSwitchLayout('播放心做'), newSwitchLayout('播放TAMA'), newSwitchLayout('先说谎的人'), newSwitchLayout('你就冷落我吧'), newSwitchLayout('随机播放'), newSwitchLayout('杨戬擒悟空'), newSwitchLayout('播放Scopin'), newSwitchLayout('Move Your'), newSwitchLayout('孤单心事'), newSwitchLayout('浪漫血液'), newSwitchLayout('Midight'), newSwitchLayout('江南Style'), newSwitchLayout('心不城'), newSwitchLayout('拉个勾说永远爱我'), newSwitchLayout('WantUMore'), newSwitchLayout('把回忆拼好给你伴奏0.9'), newSwitchLayout('印度国歌'), newSwitchLayout('停止播放'), } }) end }) floatingWindowManager:newWindow('其他功能', { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', newButtonLayout('身份证大全'), }, background="https://cccimg.com/view.php/6e9ac8d2c3e9d3db2f8bd31138644769.jpg", newSwitchLayout('开物加速[优化]'), newSwitchLayout('雷达透视[修复]'), newSwitchLayout('伤害反弹[修复]'), newSwitchLayout('丝血不死'), newSwitchLayout('枪枪暴击'), newSwitchLayout('3.0优化秒赢[局内等30秒后开启白银局建议别开]'), newSwitchLayout('全员刷金'), newSwitchLayout('踩夹刷金'), newSwitchLayout('杀猪队友'), newSwitchLayout('2.0秒赢[修复]'), newSwitchLayout('自动捐钱[优化]'), } }) end }) floatingWindowManager:newWindow('传送功能', { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', background="https://cccimg.com/view.php/6e9ac8d2c3e9d3db2f8bd31138644769.jpg", newSwitchLayout('出生点'), newSwitchLayout('禁闭室'), newSwitchLayout('逃生点'), newSwitchLayout('↑上面是4v1传送↑'), newSwitchLayout('出生点'), newSwitchLayout('禁闭室'), newSwitchLayout('逃生点'), newSwitchLayout('锁1'), newSwitchLayout('锁2'), newSwitchLayout('锁3'), newSwitchLayout('锁4'), newSwitchLayout('锁5'), newSwitchLayout('锁6'), newSwitchLayout('锁7'), newSwitchLayout('锁8'), newSwitchLayout('上门'), newSwitchLayout('中门'), newSwitchLayout('下门'), newSwitchLayout('↓下面是大乱斗传送↓'), newSwitchLayout('前往boss房'), newSwitchLayout('前往教堂处'), newSwitchLayout('前往海盗船'), newSwitchLayout('前往C学楼'), } }) end }) floatingWindowManager:newWindow('追捕功能', { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', background="https://cccimg.com/view.php/6e9ac8d2c3e9d3db2f8bd31138644769.jpg", newSwitchLayout('3.8倍移速'), newSwitchLayout('追捕刷钱'), newSwitchLayout('无限暴走'), newSwitchLayout('雷达透视[全局]'), newSwitchLayout('雇佣兵无限夹子全局[一定要在天赋呆着开完后打把训练营实战必有效果]'), newSwitchLayout('倒地燃烧'), newSwitchLayout('追捕开锁'), newSwitchLayout('逃生减血'), newSwitchLayout('追捕救人'), } }) end }) floatingWindowManager:newWindow('自调菜单', { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', background="https://cccimg.com/view.php/6e9ac8d2c3e9d3db2f8bd31138644769.jpg", newSwitchLayout('移速[自调]'), newSwitchLayout('高跳[自调]'), newSwitchLayout('开锁[自调]'), newSwitchLayout('自身血量[自调]'), newSwitchLayout('开逃生门速度[自调]'), newSwitchLayout('开物范围[自调]'), } }) end }) floatingWindowManager:newWindow('svip属性', { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', background="https://cccimg.com/view.php/6e9ac8d2c3e9d3db2f8bd31138644769.jpg", newSwitchLayout('倒车跳跃'), newSwitchLayout('倒地移速[自调]'), newSwitchLayout('导弹超进化'), newSwitchLayout('坐标逃生阵营'), newSwitchLayout('人物延迟'), newSwitchLayout('倒车捐钱'), newSwitchLayout('开物范围[自调]'), newSwitchLayout('唤风镖范围[自调]'), newSwitchLayout('救人范围[自选]'), newSwitchLayout('获取金币[修复建议使用1∽2次]'), newSwitchLayout('开物加速[5.26优化]'), } }) end }) LinearLagout, background='https://cccimg.com/view.php/6e9ac8d2c3e9d3db2f8bd31138644769.jpg', floatingWindowManager:newWindow('大乱斗功能', { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', background='https://cccimg.com/view.php/6e9ac8d2c3e9d3db2f8bd31138644769.jpg', newSwitchLayout('道具无冷却[修复]'), newSwitchLayout('锁道具[修复]'), newSwitchLayout('透视[修复]'), newSwitchLayout('超级移速[全局]'), newSwitchLayout('A内存无间隔[局内]'), newSwitchLayout('子弹穿墙射程[全局]'), newSwitchLayout('锁子弹'), newSwitchLayout('武器无后[全局]'), newSwitchLayout('开箱物资[局内]'), newSwitchLayout('无视毒圈[局内]'), } }) end }) -- 运行悬浮窗 floatingWindowManager:run()