-- ============================================== -- 仿苍狼悬浮窗UI模板 -- ============================================== -- 语音TTS函数封装 local function TipVoice(text) local ttsUrl = "https://fanyi.baidu.com/gettts?lan=zh&text="..text.."&spd=5&source=wise" pcall(gg.playMusic, ttsUrl) end -- ======================全部U7国体功能函数====================== -- ===================== 悬浮窗管理器初始化 ===================== local floatingWindowManager = require('floatingWindowManager') floatingWindowManager:init() -- ===================== 窗口1:游戏工具主面板 ===================== floatingWindowManager:newWindow('碎念国体', { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_margin = '0dp', layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '6dp', { Button, background = {GradientDrawable, cornerRadius='20dp', color='#50000000'}, layout_width = 'match_parent', layout_margin = '1dp', text = '选择游戏进程', textSize = '13sp', textColor= "#01FFFF", onClick = function() gg.setProcessX() TipVoice("碎念") end }, { Button, background = {GradientDrawable, cornerRadius='20dp', color='#50000000'}, layout_width = 'match_parent', layout_margin = '1dp', text = '防闪退', textSize = '13sp', textColor= "#01FFFF", onClick = function() 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 = 64 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 local t = {"libanogs.so:bss", "Cb"} local tt = {0x9E18} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 4096, freeze = true}}) local t = {"libanogs.so:bss", "Cb"} local tt = {0x9E60} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 4096, freeze = true}}) local t = {"libanogs.so:bss", "Cb"} local tt = {0x9ED0} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 4096, freeze = true}}) local t = {"libanogs.so:bss", "Cb"} local tt = {0x9F80} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 4096, freeze = true}}) local t = {"libanogs.so:bss", "Cb"} local tt = {0x9FB0} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 4096, freeze = true}})--- end }, { Button, background = {GradientDrawable, cornerRadius='20dp', color='#50000000'}, layout_width = 'match_parent', layout_margin = '1dp', text = '范围区', textSize = '13sp', textColor= "#01FFFF", onClick = function() floatingWindowManager:start('碎念[范围]') end }, { Button, background = {GradientDrawable, cornerRadius='20dp', color='#50000000'}, layout_width = 'match_parent', layout_margin = '1dp', text = '工具箱', textSize = '13sp', textColor= "#01FFFF", onClick = function() floatingWindowManager:start('游戏工具[工具箱]') end } } }) end, onDestroy = function() end }) -- ===================== 窗口2:林瑶[范围](已加入超大视野开关) ===================== floatingWindowManager:newWindow('碎念[范围]', { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background="https://tc.qqij.cn/view.php/f0a45d55c2fc3b8c4d736079bf568299.jpg", layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', { TextView, layout_marginLeft = '0dp',--间距 text="局内防卡伤每把一开:", textColor= "#FFFFFF",--文字颜色代码 gravity="left", -- layout_height="30dp",--长度 layout_width="match_parent",--宽度 background= luajava.loadlayout { GradientDrawable, }, }, {LinearLayout,--同一排代码 padding = {'0dp', '0dp', '0dp', '0dp'}, layout_marginTop = '5dp',--间距 { Switch, layout_marginLeft = '5dp',--间距 text="防卡伤", textColor= "#FFFF0000",--文字颜色代码 gravity="center", layout_height="30dp",--长度 layout_width="70dp",--宽度 background= luajava.loadlayout { GradientDrawable, color='0x99000000', cornerRadius = 38--背景圆角 }, onCheckedChange = function(CompoundButton, state) local cacheName = '多线程9' if state then if gg.getRangesList("libanogs.so")[1] then local t = {} t[1] = gg.getRangesList("libanogs.so")[1]["start"] + 0x1D8CE0; --初源工具箱 数值地址:0x7C48842CE0 gg.addListItems({ [1] = { address = t[1], flags = 4, value = 335544326, freeze = true, }, }) gg.toast("开启成功") end if gg.getRangesList("libUE4.so")[1] then local t = {} t[1] = gg.getRangesList("libUE4.so")[1]["start"] + 0x5E5827C; --初源工具箱 数值地址:0x7B7C4BA27C t[2] = gg.getRangesList("libUE4.so")[1]["start"] + 0x5E58338; --初源工具箱 数值地址:0x7B7C4BA338 t[3] = gg.getRangesList("libUE4.so")[1]["start"] + 0x5E58430; --初源工具箱 数值地址:0x7B7C4BA430 t[4] = gg.getRangesList("libUE4.so")[1]["start"] + 0x5E58524; --初源工具箱 数值地址:0x7B7C4BA524 t[5] = gg.getRangesList("libUE4.so")[1]["start"] + 0x5E586E4; --初源工具箱 数值地址:0x7B7C4BA6E4 t[6] = gg.getRangesList("libUE4.so")[1]["start"] + 0x5E95440; --初源工具箱 数值地址:0x7B7C4F7440 t[7] = gg.getRangesList("libUE4.so")[1]["start"] + 0x5EB459C; --初源工具箱 数值地址:0x7B7C51659C t[8] = gg.getRangesList("libUE4.so")[1]["start"] + 0x5EB4798; --初源工具箱 数值地址:0x7B7C516798 t[9] = gg.getRangesList("libUE4.so")[1]["start"] + 0x5EB479C; --初源工具箱 数值地址:0x7B7C51679C t[10] = gg.getRangesList("libUE4.so")[1]["start"] + 0x7F9A59C; --初源工具箱 数值地址:0x7B7E5FC59C t[11] = gg.getRangesList("libUE4.so")[1]["start"] + 0x835D58C; --初源工具箱 数值地址:0x7B7E9BF58C t[12] = gg.getRangesList("libUE4.so")[1]["start"] + 0x8439968; --初源工具箱 数值地址:0x7B7EA9B968 t[13] = gg.getRangesList("libUE4.so")[1]["start"] + 0x843B720; --初源工具箱 数值地址:0x7B7EA9D720 t[14] = gg.getRangesList("libUE4.so")[1]["start"] + 0x8608978; --初源工具箱 数值地址:0x7B7EC6A978 gg.addListItems({ [1] = { address = t[1], flags = 4, value = -721215457, freeze = true, }, [2] = { address = t[2], flags = 4, value = -698416192, freeze = true, }, [3] = { address = t[3], flags = 4, value = -698416192, freeze = true, }, [4] = { address = t[4], flags = 4, value = -721215457, freeze = true, }, [5] = { address = t[5], flags = 4, value = -698416192, freeze = true, }, [6] = { address = t[6], flags = 4, value = 1114636288, freeze = true, }, [7] = { address = t[7], flags = 4, value = -698416192, freeze = true, }, [8] = { address = t[8], flags = 4, value = -698416192, freeze = true, }, [9] = { address = t[9], flags = 4, value = -698416192, freeze = true, }, [10] = { address = t[10], flags = 4, value = -698416192, freeze = true, }, [11] = { address = t[11], flags = 4, value = -698416192, freeze = true, }, [12] = { address = t[12], flags = 4, value = -698416192, freeze = true, }, [13] = { address = t[13], flags = 4, value = -698416192, freeze = true, }, [14] = { address = t[14], flags = 4, value = -698416192, freeze = true, }, }) end Chinese=gg.colorAlert("碎念范围","防卡伤开启成功") end end }, }, padding = '10dp', { TextView, layout_marginLeft = '0dp',--间距 text="范围每把一开", textColor= "#FFFFFF",--文字颜色代码 gravity="left", layout_height="30dp",--长度 layout_width="match_parent",--宽度 background= luajava.loadlayout { GradientDrawable, }, }, {LinearLayout,--同一排代码 padding = {'0dp', '0dp', '0dp', '0dp'}, layout_marginTop = '5dp',--间距 { Switch, layout_marginLeft = '5dp',--间距 text="自用范围", textColor= "#FFFF0000",--文字颜色代码 gravity="center", layout_height="30dp",--长度 layout_width="75dp",--宽度 background= luajava.loadlayout { GradientDrawable, color='0x99000000', cornerRadius = 38--背景圆角 }, onCheckedChange = function(CompoundButton, state) local cacheName = '多线程9' if state then if gg.getRangesList("libanogs.so")[1] then local t = {} t[1] = gg.getRangesList("libanogs.so")[1]["start"] + 0x4B3548; --poison工具箱 数值地址:0x7CA94D9548 t[2] = gg.getRangesList("libanogs.so")[1]["start"] + 0x4B3834; --poison工具箱 数值地址:0x7CA94D9834 gg.setValues({ [1] = { address = t[1], flags = 4, value = -698416192, }, [2] = { address = t[2], flags = 4, value = 335544360, }, }) gg.toast("开启成功") 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(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 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) gg.toast("开启成功+一共修改"..#t.."条数据") gg.addListItems(t) else gg.toast("未搜索到数据+开启失败", false) return false end else gg.toast("Not Found") return false end end function HaoGe(Nc,Type,Search,Write) gg.clearResults() gg.setRanges(Nc) 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 tPUBGMH={} local offset=Search[k][2]-base local num=Search[k][1] for i,v in ipairs(result)do tPUBGMH[#tPUBGMH+1]={} tPUBGMH[#tPUBGMH].address=v.address+offset tPUBGMH[#tPUBGMH].flags=v.flags end tPUBGMH=gg.getValues(tPUBGMH) for i,v in ipairs(tPUBGMH)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={} 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) gg.sleep(400) else return false end else return false end end gg.toast("91") gg.clearResults() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("15.75", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.refineNumber("15.75", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(50) gg.editAll("65", gg.TYPE_FLOAT) gg.alert("独家范围开启成功") gg.toast("78") gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber(";测试版本不代表最终品质", gg.TYPE_WORD, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(520) gg.editAll("碎念范围SNNP6", gg.TYPE_WORD) gg.clearResults() Chinese=gg.colorAlert("碎念范围","独家范围默认开启成功") end end }, }, {LinearLayout,--同一排代码 padding = {'0dp', '0dp', '0dp', '0dp'}, layout_marginTop = '5dp',--间距 { Switch, layout_marginLeft = '5dp',--间距 text="hook范围", textColor= "#FFFF0000",--文字颜色代码 gravity="center", layout_height="30dp",--长度 layout_width="75dp",--宽度 background= luajava.loadlayout { GradientDrawable, color='0x99000000', cornerRadius = 38--背景圆角 }, onCheckedChange = function(CompoundButton, state) local cacheName = '多线程9' if state then if gg.getRangesList("libanogs.so")[1] then local t = {} t[1] = gg.getRangesList("libanogs.so")[1]["start"] + 0x4B3548; --poison工具箱 数值地址:0x7CA94D9548 t[2] = gg.getRangesList("libanogs.so")[1]["start"] + 0x4B3834; --poison工具箱 数值地址:0x7CA94D9834 gg.setValues({ [1] = { address = t[1], flags = 4, value = -698416192, }, [2] = { address = t[2], flags = 4, value = 335544360, }, }) gg.toast("开启成功") 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(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 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) gg.toast("开启成功,一共修改"..#t.."条数据") gg.addListItems(t) else gg.toast("未搜索到数据,开启失败", false) return false end else gg.toast("Not Found") return false end end function HaoGe(Nc,Type,Search,Write) gg.clearResults() gg.setRanges(Nc) 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 tPUBGMH={} local offset=Search[k][2]-base local num=Search[k][1] for i,v in ipairs(result)do tPUBGMH[#tPUBGMH+1]={} tPUBGMH[#tPUBGMH].address=v.address+offset tPUBGMH[#tPUBGMH].flags=v.flags end tPUBGMH=gg.getValues(tPUBGMH) for i,v in ipairs(tPUBGMH)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={} 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) gg.sleep(400) else return false end else return false end end gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("15.75", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("15.75", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("110", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("15;28;16;26;8;18", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(56) gg.editAll("-1339", gg.TYPE_FLOAT) qmnb = { {["memory"] = 32}, {["name"] = "开启成功"}, {["value"] = 4719772412750681353, ["type"] = 32}, {["lv"] = 4742290408720039936, ["offset"] = 4, ["type"] = 32}, } qmxg = { {["value"] = -10, ["offset"] = 8, ["type"] = 16}, } xqmnb(qmnb) qmnb = { {["memory"] = 32}, {["name"] = "开启成功"}, {["value"] = -4417614866316724128, ["type"] = 32}, {["lv"] = 4724276012378061487, ["offset"] = 4, ["type"] = 32}, } qmxg = { {["value"] = -10, ["offset"] = 12, ["type"] = 16}, } xqmnb(qmnb) qmnb = { {["memory"] = 32}, {["name"] = "HOOK范围开启成功"}, {["value"] = -4416487068034336677, ["type"] = 32}, {["lv"] = 4724276012378324073, ["offset"] = 4, ["type"] = 32}, } qmxg = { {["value"] = -10, ["offset"] = 8, ["type"] = 16}, {["value"] = -10, ["offset"] = 12, ["type"] = 16}, } xqmnb(qmnb) gg.playMusic("https://yz.dujiuyue.cn/user/download/netdisk.php?token=ElT3%2FEz1tIpET7k79WYd4uwfRbdDTYt4Olb4Z%2FCTgUA%3D&key=d4d38a178984c54acb00361eacf940e16e43e36fa552ad0e9cf0a24e51186727") --百度翻译 else Unfreeze()--清除所有搜索栏 gg.playMusic("https://yz.dujiuyue.cn/user/download/netdisk.php?token=%2FVYx%2FevIM99zm4ku%2BdB1ZJmvc%2BCvi2OMuxsR2HPe3IA%3D&key=71523daf95cbdf21e39ca872601e597ec0259efcd38613170ce8e39c2832ea69") --百度翻译 end end }, }, {LinearLayout,--同一排代码 padding = {'0dp', '0dp', '0dp', '0dp'}, layout_marginTop = '5dp',--间距 { Switch, layout_marginLeft = '5dp',--间距 text="牛逼范围", textColor= "#FFFF0000",--文字颜色代码 gravity="center", layout_height="30dp",--长度 layout_width="75dp",--宽度 background= luajava.loadlayout { GradientDrawable, color='0x99000000', cornerRadius = 38--背景圆角 }, onCheckedChange = function(CompoundButton, state) local cacheName = '多线程9' if state then local scriptName = [=====[Script for BETA PUBG MOBILE 4.5.3]=====] local scriptVersion = '1.0.0' local scriptAuthor = 'User' local startToast = '' -- 0 - no check; 1 - check package only, 2 - check package and build local checkTarget = 0 local targetName = [=====[BETA PUBG MOBILE]=====] local targetPkg = 'com.tencent.igce' local targetVersion = [=====[4.5.3]=====] local targetBuild = 21235 -- functions -- init gg.require('101.1', 16142) if startToast ~= '' then startToast = '\n'..startToast end gg.toast(scriptName..' v'..scriptVersion..' by '..scriptAuthor..startToast) if checkTarget ~= 0 then local info = gg.getTargetInfo() local check = false local current = false if checkTarget >= 1 then check = targetPkg current = info.packageName end if checkTarget >= 2 then check = check..' '..targetVersion..' ('..targetBuild..')' current = current..' '..info.versionName..' ('..info.versionCode..')' end if check ~= current then gg.alert('This script for "'..targetName..'" ['..check..'].\nYou select "'..info.label..'" ['..current..'].\nNow script exit.') os.exit() end end local revert = nil -- main code gg.searchNumber("15.75", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1, 0) revert = gg.getResults(100, nil, nil, nil, nil, nil, nil, nil, nil) gg.editAll("72.5", gg.TYPE_FLOAT) gg.processResume() end end }, }, } }) end }) -- ===================== 窗口3:林瑶[加速] ===================== -- ===================== 窗口4:游戏工具[工具箱] ===================== 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 = '5dp', { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '2dp', text = '隐藏电报', textSize = '16sp', onClick = function() draw.text('', 200,155) draw.setColor('#00000000') gg.toast('隐藏电报成功') end }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '2dp', text = '显示电报', textSize = '16sp', onClick = function() local rtextColor = string.format('#ff%x',math.random(0x000000,0xffffff)) draw.setSize(39) draw.setStyle('填充') draw.text("", 5,500)--字体 draw.setColor(rtextColor)--颜色 gg.toast('随机颜色成功') end }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '2dp', text = '注入追踪', textSize = '16sp', onClick = function() local dir = "/storage/emulated/0/淡雾NB" os.execute("mkdir -p \""..dir.."\"") function httpDownload(url, path) gg.toast("开始下载...") local r = gg.makeRequest(url) if not r or r.code ~= 200 then gg.alert("下载失败\n状态码: "..tostring(r and r.code)) return false end local f = io.open(path, "wb") if not f then gg.alert("无法写入文件\n路径: "..path) return false end f:write(r.content) f:close() gg.toast("下载完成") return true end local inject = { name = "Inject 程序(先执行这个)", url = "https://www.mpimg.cn/down.php/be87bf42b50d3115e1807eda984add35.", path = "/storage/emulated/0/淡雾NB/64bit" } if httpDownload(inject.url, inject.path) then gg.alert("频道CKZPD") end TARGET_DIR = "/storage/emulated/0/淡雾NB/" TARGET_NAME = "lib淡水.so" local select = gg.prompt( {"请选择要注入的so"}, {"/sdcard/"}, {"file"} ) if select == nil then os.exit() end local src = select[1] local dst = TARGET_DIR .. TARGET_NAME os.execute("mkdir -p '" .. TARGET_DIR .. "'") os.execute("rm -rf '" .. dst .. "'") os.execute("cp -f '" .. src .. "' '" .. dst .. "'") gg.toast("选择完成 → " .. dst) loadYunLua('https://www.mpimg.cn/down.php/bb6218ec44e96f77fe0c5904f3d36196.lua') gg.alert("等待UI出现,等会可能加速掉后台重新打开即可") end } } }) end, onDestroy = function() end }) -- 启动悬浮窗 floatingWindowManager:run()