draw.text('露关公益内部 3.2 @zwfnb', 200,200)draw.setColor('#D32F2F') draw.text('唯一代理:软天空搜索上传pubg挂^O^', 200,250)draw.setColor('#D32F2F') function interruptThread(thread) if thread then pcall(function() thread:interrupt() end) end end local function newyyLayout(name, id) if not isString(name) then return end local layout = { Switch, layout_width = 'match_parent', text = name, onClick = function() gg.toast('开始播放['..name..']') gg.playMusic("http://music.163.com/song/media/outer/url?id="..id..".mp3") end } return layout end function newcheck(radio) firadio={LinearLayout,layout_width = 'match_parent',layout_height = "match_parent",orientation="vertical"} if type(radio[1])=="string" or type(radio[1])=="number" then firadio[#firadio+1]={TextView,text=radio[1],textColor="#ffffff",} end radios={LinearLayout,orientation="horizontal",gravity="center",background="#00C92E37",layout_width = 'match_parent',} for i=2,#radio do local name = radio[i][1] local func1 = radio[i][2] local func2 = radio[i][3] local nid = radio[i][4] if not name then name = "未设置" end nid = name..guid() local func = 开关(nid,func1,func2) radios[#radios+1]={CheckBox, text=radio[i][1], textSize="9sp", textColor="#ffffff", onClick=function() luajava.newThread(function() pcall(func) end):start() end, } end firadio[#firadio+1]=radios return luajava.loadlayout(firadio) end function newradio(radio) firadio={LinearLayout, layout_width = 'match_parent', layout_height = "match_parent", orientation="horizontal" } if type(radio[1])=="string" or type(radio[1])=="number" then --firadio[#firadio+1]={TextView,text=radio[1],textColor="#ffffff",} end radios={RadioGroup,orientation="horizontal",gravity="center",background="#00C92E37",layout_width = 'match_parent',} for i=2,#radio do radios[#radios+1]={ RadioButton, text=radio[i][1], textColor="#ffffff", textSize="11sp", onClick=function() luajava.newThread(function() pcall(radio[i][2]) end):start() end, } end firadio[#firadio+1]=radios return luajava.loadlayout(firadio) end function 开关(name,func1,func2) if func1 == nil then func1 = "" end if func2 == nil then func2 = "" end if type(func1) == "function" then return function() namers = _ENV[name] if namers ~= "开" then _ENV[name] = "开" func1() else _ENV[name] = "关" func2() end end 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 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 & 0x 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 --遍历写法 local function readD ( a ) return gg.getValues ( { { address = a , flags = 4 } } ) [ 1 ].value end function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function addListltems(address,flags,value,freeze) t={} t[1]={} t[1].address=address t[1].flags=flags t[1].value=value t[1].freeze=freeze gg.addListItems(t) end function xfnb(add,lx) return gg.getValues({ { address=add,flags = lx } })[1].value end local function RUI(address) return gg.getValues({{address = address, flags = gg.TYPE_QWORD}})[1].value end function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function addListltems(address,flags,value,freeze) t={} t[1]={} t[1].address=address t[1].flags=flags t[1].value=value t[1].freeze=freeze gg.addListItems(t) end local function RUI(address) return gg.getValues({{address = address, flags = gg.TYPE_QWORD}})[1].value 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 & 0x 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 function LSQ_Chain(so, offset, format, value, type, Function)--模块设置, 偏移量, 功能参数, 修改值, 类型, 功能 getRanges = getRanges or (function() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v["type"]:sub(2, 2) == 'w' then--判断so是否可读可写 ranges[#ranges+1] = v end end return ranges end) local rest, ranges, sostart, valtype = {}, getRanges(), nil , gg.TYPE_DWORD if gg.getTargetInfo()["x64"] then--判断应用程序是否为64位 valtype = gg.TYPE_QWORD end for i in pairs(ranges) do local _name = ranges[i]["internalName"]:gsub('^.*/', '') if so[1] == _name and so[2] == ranges[i]["state"] then sostart = ranges[i]["start"] break end end if sostart then if offset[1] then for i = 1, #offset do rest = {{flags = valtype,address = sostart + offset[i]}} rest = gg.getValues(rest) if i == #offset then break end if valtype == gg.TYPE_DWORD then sostart = rest[1].value & 0x--对值进行补位操作 else sostart = rest[1].value end end end print(rest) if #rest == 1 then end return Format(rest, format, value, type, Function) end gg.toast("功能:" .. Function .. "开启失败") print("功能开启失败原因: 未找到静态头") return os.exit() end function Format(tab, format, value, type, Function) if format == "查看" then tab[1]["flags"] = type return print(gg.getValues(tab)) elseif format == "修改" then tab[1]["flags"] = type tab[1]["value"] = value return gg.setValues(tab) elseif format == "冻结" then tab[1]["flags"] = type tab[1]["freeze"] = true tab[1]["name"] = Function or "功能" return gg.addListItems(tab) elseif format == "加载" then tab[1]["flags"] = type return gg.loadResults(tab) 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"] .. "开启失败") 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"] .. "修改成功,共修改" .. xgsl .. "条数据") else gg.toast(qmnb[2]["name"] .. "开启失败") end end end end function PS() end function setvalue(address,flags,value) PS('修改地址数值(地址,数值4,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x167ba0fe) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0x 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 setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end function 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(0x2C4D6BCE) 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 & 0x 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 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 ---静态基址写法配置 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 --仿XS写法配置 function xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'修改成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'修改成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() 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 & 0x 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 --------------------------------------------------------防封------------------------------------ ---------------------------------------------------------------------------------------------------------------- -------------------------------------功能--------- 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--静态 function setvalue(address,flags,value) local CatWill={} CatWill[1]={} CatWill[1].address=address CatWill[1].flags=flags CatWill[1].value=value gg.setValues(CatWill) 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 & 0x 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 xqmnb(Search,Modification) gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'修改成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'修改成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end function setvalue(address,flags,value) local CatWill={} CatWill[1]={} CatWill[1].address=address CatWill[1].flags=flags CatWill[1].value=value gg.setValues(CatWill) 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(0x315fdca1) 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 & 0x 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 readAdd(add) t=gg.getValues({[1]={address=add,flags=32}}) 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 getAdd(so,offset,off1) add=gg.getRangesList(so)[1].start add=readAdd(add+offset) return add end function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end --------功能 gg.colorAlert("欢迎使用露关公益内部","官方Telegram:@zwfnb") local floatingWindowManager = require('floatingWindowManager') floatingWindowManager:init() floatingWindowManager:newWindow(('露关内部一体脚本'):format(floatingWindowManager.version), { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_margin = '10dp', 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 }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = 'PUBGM防封菜单', textSize = '16sp', onClick = function() floatingWindowManager:start('露关内部PUBG防封页面') end }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = 'PUBG功能菜单', textSize = '16sp', onClick = function() floatingWindowManager:start('露关内部PUBG功能页面') end }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = 'PUBG美化菜单', textSize = '16sp', onClick = function() floatingWindowManager:start('露关内部PUBG美化页面') end }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = '音乐菜单', textSize = '16sp', onClick = function() floatingWindowManager:start('露关内部音乐页面') end }, } }) end, onDestroy = function() end }) floatingWindowManager:newWindow('露关内部PUBG防封页面', { 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', { Switch, layout_width = 'match_parent', text = 'LOGO多值防[搭配开启]', onCheckedChange = function(CompoundButton, state) if state then if gg.getRangesList("libUE4.so")[1] then local t = {} t[1] = gg.getRangesList("libUE4.so")[1]["start"] + 0x278; -- 数值地址:0x7737E7D278 t[2] = gg.getRangesList("libUE4.so")[1]["start"] + 0x280; -- 数值地址:0x7737E7D280 t[3] = gg.getRangesList("libUE4.so")[1]["start"] + 0x288; -- 数值地址:0x7737E7D288 t[4] = gg.getRangesList("libUE4.so")[1]["start"] + 0x290; -- 数值地址:0x7737E7D290 t[5] = gg.getRangesList("libUE4.so")[1]["start"] + 0x298; -- 数值地址:0x7737E7D298 t[6] = gg.getRangesList("libUE4.so")[1]["start"] + 0x2B0; -- 数值地址:0x7737E7D2B0 t[7] = gg.getRangesList("libUE4.so")[1]["start"] + 0x2B8; -- 数值地址:0x7737E7D2B8 t[8] = gg.getRangesList("libUE4.so")[1]["start"] + 0x2C0; -- 数值地址:0x7737E7D2C0 t[9] = gg.getRangesList("libUE4.so")[1]["start"] + 0x2E8; -- 数值地址:0x7737E7D2E8 t[10] = gg.getRangesList("libUE4.so")[1]["start"] + 0x2F0; -- 数值地址:0x7737E7D2F0 t[11] = gg.getRangesList("libUE4.so")[1]["start"] + 0x2F8; -- 数值地址:0x7737E7D2F8 gg.addListItems({ [1] = { address = t[1], flags = 4, value = -698416192, 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 = -698416192, freeze = true, }, [5] = { address = t[5], flags = 4, value = -698416192, freeze = true, }, [6] = { address = t[6], flags = 4, value = -698416192, 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, }, }) end gg.alert('LOGO多值防开启成功') string.toMusic('LOGO多值防开启成功')---语音 else end end }, { Switch, layout_width = 'match_parent', text = '大厅过检测1[64][切屏开]', onCheckedChange = function(CompoundButton, state) if state then if gg.getRangesList("libanogs.so")[1] then local t = {} t[1] = gg.getRangesList("libanogs.so")[1]["start"] + 0xE45FC; -- 数值地址:0x7750EEE5FC t[2] = gg.getRangesList("libanogs.so")[1]["start"] + 0x166A30; -- 数值地址:0x7750F70A30 gg.addListItems({ [1] = { address = t[1], flags = 4, value = -698416192, freeze = true, }, [2] = { address = t[2], flags = 4, value = -698416192, freeze = true, }, }) end if gg.getRangesList("libanogs.so")[1] then local t = {} t[1] = gg.getRangesList("libanogs.so")[1]["start"] + 0x5697F8; -- 数值地址:0x77513737F8 t[2] = gg.getRangesList("libanogs.so")[1]["start"] + 0x5697FC; -- 数值地址:0x77513737FC t[3] = gg.getRangesList("libanogs.so")[1]["start"] + 0x569800; -- 数值地址:0x7751373800 t[4] = gg.getRangesList("libanogs.so")[1]["start"] + 0x569804; -- 数值地址:0x7751373804 t[5] = gg.getRangesList("libanogs.so")[1]["start"] + 0x569808; -- 数值地址:0x7751373808 t[6] = gg.getRangesList("libanogs.so")[1]["start"] + 0x56980C; -- 数值地址:0x775137380C t[7] = gg.getRangesList("libanogs.so")[1]["start"] + 0x569810; -- 数值地址:0x7751373810 t[8] = gg.getRangesList("libanogs.so")[1]["start"] + 0x569928; -- 数值地址:0x7751373928 t[9] = gg.getRangesList("libanogs.so")[1]["start"] + 0x56992C; -- 数值地址:0x775137392C t[10] = gg.getRangesList("libanogs.so")[1]["start"] + 0x569930; -- 数值地址:0x7751373930 t[11] = gg.getRangesList("libanogs.so")[1]["start"] + 0x569934; -- 数值地址:0x7751373934 t[12] = gg.getRangesList("libanogs.so")[1]["start"] + 0x569938; -- 数值地址:0x7751373938 t[13] = gg.getRangesList("libanogs.so")[1]["start"] + 0x56993C; -- 数值地址:0x775137393C gg.addListItems({ [1] = { address = t[1], flags = 4, value = -698416192, 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 = -698416192, freeze = true, }, [5] = { address = t[5], flags = 4, value = -698416192, freeze = true, }, [6] = { address = t[6], flags = 4, value = -698416192, 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, }, }) end gg.alert('大厅过检测①开启成功') string.toMusic("大厅过检测1开启成功") else end end }, { Switch, layout_width = 'match_parent', text = '大厅过检测②[64][已优化]', onCheckedChange = function(CompoundButton, state) if state then local t = {"libanogs.so:bss", "Cb"} local tt = {0x2478} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 67125504, freeze = true}}) local t = {"libanogs.so:bss", "Cb"} local tt = {0x2510} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 16383, freeze = true}}) local t = {"libanogs.so:bss", "Cb"} local tt = {0x26A8} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 16383, freeze = true}}) local t = {"libanogs.so:bss", "Cb"} local tt = {0x2738} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 16383, freeze = true}}) local t = {"libanogs.so:bss", "Cb"} local tt = {0x27C8} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 16383, freeze = true}}) local t = {"libanogs.so:bss", "Cb"} local tt = {0x27F0} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 16383, freeze = true}}) gg.alert('大厅过检测②开启成功') string.toMusic("大厅过检测2开启成功") else end end }, { Switch, layout_width = 'match_parent', text = '全局离线[篮圈开 撤离关]', onCheckedChange = function(CompoundButton, state) if state then if gg.getRangesList("libgcloud.so")[1] then local t = {} t[1] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x423A18; -- 数值地址:0x71F056BA18 t[2] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x424730; -- 数值地址:0x71F056C730 t[3] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x42E628; -- 数值地址:0x71F0576628 t[4] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x435D28; -- 数值地址:0x71F057DD28 t[5] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x49EF24; -- 数值地址:0x71F05E6F24 gg.addListItems({ [1] = { address = t[1], flags = 4, value = -721215457, freeze = true, }, [2] = { address = t[2], flags = 4, value = -721215457, freeze = true, }, [3] = { address = t[3], flags = 4, value = -721215457, freeze = true, }, [4] = { address = t[4], flags = 4, value = -721215457, freeze = true, }, [5] = { address = t[5], flags = 4, value = -721215457, freeze = true, }, }) end gg.alert('全局离线开启成功') string.toMusic("全局离线开启成功") else if gg.getRangesList("libgcloud.so")[1] then local t = {} t[1] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x423A18; -- 数值地址:0x71F056BA18 t[2] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x424730; -- 数值地址:0x71F056C730 t[3] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x42E628; -- 数值地址:0x71F0576628 t[4] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x435D28; -- 数值地址:0x71F057DD28 t[5] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x49EF24; -- 数值地址:0x71F05E6F24 gg.addListItems({ [1] = { address = t[1], flags = 4, value = -785096161, freeze = true, }, [2] = { address = t[2], flags = 4, value = 624587890, freeze = true, }, [3] = { address = t[3], flags = 4, value = 624587890, freeze = true, }, [4] = { address = t[4], flags = 4, value = 624587890, freeze = true, }, [5] = { address = t[5], flags = 4, value = 624587890, freeze = true, }, }) end gg.alert('全局离线关闭成功') string.toMusic("全局离线关闭成功") end end }, { Switch, layout_width = 'match_parent', text = 'LOGO防闪[64]', onCheckedChange = function(CompoundButton, state) if state then local t = {"libUE4.so:bss", "Cb"} local tt = {0x63F3B8} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1, freeze = true}}) local t = {"libanogs.so:bss", "Cb"} local tt = {0x5C0} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 4096, freeze = true}}) gg.alert('LOGO防闪开启成功') string.toMusic("LOGO防闪成功") else end end }, } }) end }) floatingWindowManager:newWindow('露关内部PUBG功能页面', { 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', { Switch, layout_width = 'match_parent', text = '全枪无后[64]', onCheckedChange = function(CompoundButton, state) if state then so=gg.getRangesList('libUE4.so')[1].start py=0x560CD14 setvalue(so+py,16,8.8411673e-21) so=gg.getRangesList('libUE4.so')[1].start py=0x560CE08 setvalue(so+py,16,8.8411673e-21) so=gg.getRangesList('libUE4.so')[1].start py=0x560CE78 setvalue(so+py,16,8.8411673e-21) else end end }, { Switch, layout_width = 'match_parent', text = '全枪防抖[64]', onCheckedChange = function(CompoundButton, state) if state then so=gg.getRangesList('libUE4.so')[1].start--防抖 py=0x58DCEB8 setvalue(so+py,16,2.19933704e12) so=gg.getRangesList('libUE4.so')[1].start--防抖 py=0x8B9E88C setvalue(so+py,16,8.8411673e-21) else end end }, { Switch, layout_width = 'match_parent', text = '全枪聚点[64]', onCheckedChange = function(CompoundButton, state) if state then so=gg.getRangesList('libUE4.so')[1].start py=0x5608300 setvalue(so+py,16,8.47963525e-21) else end end }, { Switch, layout_width = 'match_parent', text = '全枪瞬击[64]', onCheckedChange = function(CompoundButton, state) if state then so=gg.getRangesList('libUE4.so')[1].start py=0x5FF0F38 setvalue(so+py,16,8.95671814e-21) else end end }, { Switch, layout_width = 'match_parent', text = '全图除雾[64]', onCheckedChange = function(CompoundButton, state) if state then so=gg.getRangesList('libUE4.so')[1].start---除雾 py=0x7D1DFC0 setvalue(so+py,16,8.95671814e-21) else end end }, { Switch, layout_width = 'match_parent', text = '人物加速[64]', onCheckedChange = function(CompoundButton, state) if state then OP=gg.prompt({'改1到3\n改1为还原'},{[1]='3'},{[1]='number'}) if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消") else local t = {"libUE4.so:bss", "Cb"} local tt = {0x25468,0x0,0x1058} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 3}}) end else end end }, { Switch, layout_width = 'match_parent', text = '攀爬穿墙[64]', onCheckedChange = function(CompoundButton, state) if state then local t = {"libUE4.so:bss", "Cb"} local tt = {0x25468, 0x0, 0x460, 0x1B8} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 200}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x25468, 0x0, 0x2F0, 0x200, 0x2CC} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 99999}}) else end end }, { Switch, layout_width = 'match_parent', text = '上帝视角[64]', onCheckedChange = function(CompoundButton, state) if state then OP=gg.prompt({'1到2'},{[1]='1.6'},{[1]='number'})---广角 if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消") else so=gg.getRangesList('libUE4.so')[1].start py=0x33CECB8 setvalue(so+py,16,OP[1]) end else end end }, { Switch, layout_width = 'match_parent', text = '范围伤害[64]', onCheckedChange = function(CompoundButton, state) if state then so=gg.getRangesList('libUE4.so')[1].start py=0x32afcec setvalue(so+py,16,70) else end end }, { Switch, layout_width = 'match_parent', text = '全局离线[蓝圈开 撤离关]', onCheckedChange = function(CompoundButton, state) if state then if gg.getRangesList("libgcloud.so")[1] then local t = {} t[1] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x423A18; -- 数值地址:0x71F056BA18 t[2] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x424730; -- 数值地址:0x71F056C730 t[3] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x42E628; -- 数值地址:0x71F0576628 t[4] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x435D28; -- 数值地址:0x71F057DD28 t[5] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x49EF24; -- 数值地址:0x71F05E6F24 gg.addListItems({ [1] = { address = t[1], flags = 4, value = -721215457, freeze = true, }, [2] = { address = t[2], flags = 4, value = -721215457, freeze = true, }, [3] = { address = t[3], flags = 4, value = -721215457, freeze = true, }, [4] = { address = t[4], flags = 4, value = -721215457, freeze = true, }, [5] = { address = t[5], flags = 4, value = -721215457, freeze = true, }, }) end gg.alert('全局离线开启成功') string.toMusic("全局离线开启成功") else if gg.getRangesList("libgcloud.so")[1] then local t = {} t[1] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x423A18; -- 数值地址:0x71F056BA18 t[2] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x424730; -- 数值地址:0x71F056C730 t[3] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x42E628; -- 数值地址:0x71F0576628 t[4] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x435D28; -- 数值地址:0x71F057DD28 t[5] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x49EF24; -- 数值地址:0x71F05E6F24 gg.addListItems({ [1] = { address = t[1], flags = 4, value = -785096161, freeze = true, }, [2] = { address = t[2], flags = 4, value = 624587890, freeze = true, }, [3] = { address = t[3], flags = 4, value = 624587890, freeze = true, }, [4] = { address = t[4], flags = 4, value = 624587890, freeze = true, }, [5] = { address = t[5], flags = 4, value = 624587890, freeze = true, }, }) end gg.alert('全局离线关闭成功') string.toMusic("全局离线关闭成功") end end }, } }) end }) floatingWindowManager:newWindow('露关内部PUBG美化页面', { 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', { Switch, layout_width = 'match_parent', text = '自改外观美化[64]', onCheckedChange = function(CompoundButton, state) if state then local r = gg.prompt({'自改衣服美化\n木乃伊[蓝]1406891 木乃伊[黄]1405623 曙光芙洛1407103 明日香战斗服1406387 齐天大圣1406327 海洋之王1405983 血鸦圣装1405870 果冻圣装1406970 满级法老1406469\n'}, {''}, {'text'}) if r then local t = {"libUE4.so:bss", "Cb"} local tt = {0x25468,0x0,0x340,0x30,0x388,0x118} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value = r[1], freeze = true}}) end else end end }, { Switch, layout_width = 'match_parent', text = '自改手持美化[64]', onCheckedChange = function(CompoundButton, state) if state then local r = gg.prompt({'自改手持枪械美化\n星云妹控:1103007020 冰霜核心M4:1101004046 愚人小丑M4:1101004062 华丽浮雕AK :1101001042 吉利龙王AK:1101001128 冥河烈焰狗杂:1101005052 星云机械M762:1101008104 神庭冰棘ACE:1101102017 嗜血龙魇AMR:1103012010 苍穹之龙MG3:1105010008 AKM华丽浮雕1101001042 AKM怒海争锋1101001063 AKM白虎咆哮1101001068 AKM冰霜核心1101001089 AKM积木龙骨1101001103 AKM奇异之夜1101001116 AKM金牌海盗1101001143 AKM吉利龙王1101001128 AKM奇幻工坊1101001154 AKM部落之王1101001174 AKM星海提督1101001213 AKM俏皮兔宝1101001231M16A4血风暴1101002029 M16A4极光脉冲1101002056 M16A4缤纷利刃1101002068 M16A4猩红血月1101002081M16A4古堡龙卫1101002103死噶梦幻水枪1101003057死噶魔法南瓜1101003070死噶翌日行动1101003080 死噶诡秘之夜1101003099 死噶魔力结晶1101003119死噶邪能植物1101003146 死噶血魂魔皇1101003167M416冰霜核心1101004046 M416愚人小丑1101004062M416异域游者1101004078 M416萌龙咆哮1101004086M416野性呼唤1101004098 M416科技核心1101004138 M416潮鸣宫廷1101004163 M416庇护之潮1101004209Groza幻夜音乐1101005025 Groza绚烂之战1101005043 Groza冥河烈焰1101005052AUG流浪马戏团 1101006033 AUG第四使徒 1101006044 QBZ极致绝杀 1101007036 QBZ瑰绮灵姬1101007046 M762比特宝莉 1101008026\n'}, {''}, {'text'}) if r then local t = {"libUE4.so:bss", "Cb"} local tt = {0x25468,0x0,0x2740,0xA18,0x11C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = r[1]}}) end else end end }, { Switch, layout_width = 'match_parent', text = '万圣木乃伊-衣服美化[64]', onCheckedChange = function(CompoundButton, state) if state then local t = {"libUE4.so:bss", "Cb"} local tt = {0x25468,0x0,0x340,0x30,0x388,0x118}--衣服 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 1400779, freeze = true}}) else end end }, { Switch, layout_width = 'match_parent', text = '白木乃伊-衣服美化[64]', onCheckedChange = function(CompoundButton, state) if state then local t = {"libUE4.so:bss", "Cb"} local tt = {0x25468,0x0,0x340,0x30,0x388,0x118}--衣服 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 1400687, freeze = true}}) else end end }, { Switch, layout_width = 'match_parent', text = '黄木乃伊-衣服美化[64]', onCheckedChange = function(CompoundButton, state) if state then local t = {"libUE4.so:bss", "Cb"} local tt = {0x25468,0x0,0x340,0x30,0x388,0x118}--衣服 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 1405623, freeze = true}}) else end end }, { Switch, layout_width = 'match_parent', text = '蓝木乃伊-衣服美化[64]', onCheckedChange = function(CompoundButton, state) if state then local t = {"libUE4.so:bss", "Cb"} local tt = {0x25468,0x0,0x340,0x30,0x388,0x118}--衣服 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 1406891, freeze = true}}) else end end }, { Switch, layout_width = 'match_parent', text = '血渊圣王-衣服美化[64]', onCheckedChange = function(CompoundButton, state) if state then local t = {"libUE4.so:bss", "Cb"} local tt = {0x25468,0x0,0x340,0x30,0x388,0x118}--衣服 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 1406872, freeze = true}}) else end end }, { Switch, layout_width = 'match_parent', text = '齐天大圣-衣服美化[64]', onCheckedChange = function(CompoundButton, state) if state then local t = {"libUE4.so:bss", "Cb"} local tt = {0x25468,0x0,0x340,0x30,0x388,0x118}--衣服 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 1406327, freeze = true}}) else end end }, { Switch, layout_width = 'match_parent', text = '曙光芙洛-衣服美化[64]', onCheckedChange = function(CompoundButton, state) if state then local t = {"libUE4.so:bss", "Cb"} local tt = {0x25468,0x0,0x340,0x30,0x388,0x118}--衣服 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 1407103, freeze = true}}) else end end }, { Switch, layout_width = 'match_parent', text = '海王圣装-衣服美化[64]', onCheckedChange = function(CompoundButton, state) if state then local t = {"libUE4.so:bss", "Cb"} local tt = {0x25468,0x0,0x340,0x30,0x388,0x118}--衣服 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 1406469, freeze = true}}) else end end }, { Switch, layout_width = 'match_parent', text = '祖国人-衣服美化[64]', onCheckedChange = function(CompoundButton, state) if state then local t = {"libUE4.so:bss", "Cb"} local tt = {0x25468,0x0,0x340,0x30,0x388,0x118}--衣服 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 1406439, freeze = true}}) else end end }, { Switch, layout_width = 'match_parent', text = '金克丝-衣服美化[64]', onCheckedChange = function(CompoundButton, state) if state then local t = {"libUE4.so:bss", "Cb"} local tt = {0x25468,0x0,0x340,0x30,0x388,0x118}--衣服 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 1406140, freeze = true}}) else end end }, { Switch, layout_width = 'match_parent', text = '明日香-衣服美化[64]', onCheckedChange = function(CompoundButton, state) if state then local t = {"libUE4.so:bss", "Cb"} local tt = {0x25468,0x0,0x340,0x30,0x388,0x118}--衣服 local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 1406387, freeze = true}}) else end end }, } }) 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 = '5dp', {LinearLayout,--同一排代码 padding = {'0dp', '0dp', '0dp', '0dp'}, { TextView, layout_marginLeft = '0dp',--间距 text="热门音乐", textColor= "#ffffff",--文字颜色代码 gravity="center", layout_height="25dp",--长度 layout_width="70dp",--宽度 background= luajava.loadlayout { GradientDrawable, color = "#80615463",--背景颜色代码 cornerRadius = 38--背景圆角 }, onClick = function() A="https://api.uomg.com/api/rand.music?sort=热歌榜&format=json" Obtain=gg.makeRequest(A).content muchen=Obtain:match('url":"(.-)","picurl') name=Obtain:match('name":"(.-)","') gg.toast('开始播放['..name..']') gg.playMusic(muchen) end }, { TextView, layout_marginLeft = '10dp', text="暂停音乐", textColor= "#ffffff", gravity="center", layout_height="25dp", layout_width="70dp", background= luajava.loadlayout { GradientDrawable, color = "#80615463", cornerRadius = 38 }, onClick = function() gg.playMusic("stop") gg.toast("已停止播放") end }, }, newyyLayout('心做', '2008921547'), newyyLayout('青丝', '1904128480'), newyyLayout('答案', '2010857400'), newyyLayout('魔怔', '2018516241'), newyyLayout('若把你', '2021830360'), newyyLayout('布布布', '2017844374'), newyyLayout('情与义', '1825988337'), newyyLayout('一代天骄', '2000798461'), newyyLayout('爱人错过', '1368754688'), newyyLayout('他说别哭', '1963660383'), newyyLayout('劲爆旋律', '2031077377'), newyyLayout('大角牛之歌', '2027518413'), newyyLayout('远离灯火阑珊处', '1973535474'), newyyLayout('把回忆拼好给你', '1403318151'), } }) end }) floatingWindowManager:run()