function ffvpns() ffvpn= "https://vpn.uibe.edu.cn/por/phone_index.csp?rnd=0.23178949332658605#https%3A%2F%2Fvpn.uibe.edu.cn%2F" x=(tostring(gg[ "makeRequest" ](ffvpn))) if not x or not x:sub(1,20) then gg[ "alert" ]( "GG无法访问网络请查看相应限权" , "" ) else while #(x)<100 or x:find( "SSL" ) or x:find('I/O') or x:find('javax') do gg[ "alert" ]( "哼!😒你真是大坏蛋\n竟然想抓包😡\n略略略,大坏蛋😏,气屎你☺" , "" , "滚蛋" , "退出" ) local mpxgk=optfff() end end end gg.playVideo("https://cccimg.com/view.php/8d3dfeebb2fddf2be6a1713d03d5dbcc.mp4") string.toMusic("欢迎使用素质神宇宙服官方版") function Format(tab, format, write, Function) if format == "查看" then return print(tab) elseif format == "修改" then local Table = {} for k, v in pairs(tab) do for kk, vv in pairs(write) do Table[#Table + 1] = { ["address"] = v["address"] + vv[2], ["flags"] = vv[3], ["value"] = vv[1] } end end return gg.setValues(Table) elseif format == "载入" then gg.loadResults(tab) elseif format == "冻结" then local Table = {} for k, v in pairs(tab) do for kk, vv in pairs(write) do Table[#Table + 1] = { ["address"] = v["address"] + vv[2], ["flags"] = vv[3], ["value"] = vv[1], ["freeze"] = true } end end return gg.addListItems(Table) end end function LSQ_type_conversion(txt, type1, type2) gg.allocatePage(gg.PROT_READ | gg.PROT_WRITE | gg.PROT_EXEC, 0x99999999) local Table = { { ["address"] = 0x99999999, ["flags"] = type1, ["value"] = txt } } local set = gg.setValues(Table) Table[1]["flags"] = type2 local get = gg.getValues(Table)[1]["value"] return get end function Get_value() if gg.getResultsCount() > 100000 then local result = {} local Table = {} while true do local Results = gg.getResults(100000) if not Results or #Results == 0 then break end result[#result + 1] = Results local remove = gg.removeResults(Results) end for k = 1, #result do for kk, vv in pairs(result[k]) do Table[#Table + 1] = vv end end return Table else return gg.getResults(gg.getResultsCount()) end end function Type_filtering(values) if string.find(values, ".") then start, v = string.match(values, "^(.-)%.(.)") value = string.format("%s.%s", start, v) return value else return values end end function LSQ_pointer(search, write, mode) if search[1][5] and search[1][6] then region_start = search[1][5] region_end = search[1][6] else region_start = 0 region_end = -1 end gg.clearResults() if search[1][2] == "16" and search[1][2] == "64" then local Value = LSQ_type_conversion(search[1][1], search[1][2], Q) gg.setRanges(search[1][3]) gg.searchNumber(Value, Q, false, gg.SIGN_EQUAL, region_start, region_end) gg.searchNumber(Value, Q, false, gg.SIGN_EQUAL, region_start, region_end) else gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2], false, gg.SIGN_EQUAL, region_start, region_end) gg.searchNumber(search[1][1], search[1][2], false, gg.SIGN_EQUAL, region_start, region_end) end if gg.getResultsCount() == 0 then gg.toast("没有搜索到指针数据") return false else local result = Get_value() gg.clearResults() for i = 2, #search do local offset_array = {} for k, v in ipairs(result) do offset_array[#offset_array + 1] = { ["address"] = v["address"] + search[i][2], ["flags"] = search[i][3] } end offset_array = gg.getValues(offset_array) local verify_array = {} for k, v in ipairs(offset_array) do if v["flags"] == 16 then v["value"] = Type_filtering(v["value"]) end if v["flags"] == 64 then v["value"] = Type_filtering(v["value"]) end if not string.find(search[i][1], "~") then if v["value"] == search[i][1] then verify_array[#verify_array + 1] = result[k] end else min, max = string.match(search[i][1], '^(.-)~(.-)$') min, max = tonumber(min), tonumber(max) if v["value"] >= min and v["value"] <= max then verify_array[#verify_array + 1] = result[k] end end end result = verify_array end if #result > 0 then Format(result, mode, write) return #result else return false 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 & 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 Sear(search,write,xglx) if search[1][5]==nil or search[1][6]==nil then search[1][5]=0 search[1][6]=-1 end gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) time=os.clock() gg.searchNumber(search[1][1],search[1][2],false,gg.SlGN_EQUAL,search[1][5],search[1][6]) 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]} if vv[4]then table.insert(tb[1],p) else table.insert(tb[1],p) end if xglx=="冻结"then ts="冻结" gg.addListItems({{address=v.address+vv[2],flags=vv[3],value=vv[1],freeze=true}}) gg.clearList() end end end if xglx=="修改"then ts="修改" gg.setValues(tb[1]) end if xglx=="载入"then ts="载入" gg.loadResults(tb[1]) end gg.toast(search[1][4].."已"..ts.."共"..ts..(#tb[1]+#tb[2]).."条数据 耗时"..os.clock()-time.."秒")else balert(search[1][4]..ts.."失败") end end end --快搜1.2 function fastsearch(search,write) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) time=os.clock() gg.searchNumber(search[1][1],search[1][2],false,gg.SlGN_EQUAL,0,-1) 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(name.."已解析\n共解析" .. (#tb[1] + #tb[2]) .. "条数据\n耗时"..os.clock()-time.."秒") else gg.toast("解析失败") end end end --动态配置↑ function xyss(tzb,xgb,gnlx) gg.setRanges(tzb[1][3]) if tzb[1][4]==nil or tzb[1][5]==nil then tzb[1][4]=0 tzb[1][5]=-1 end if tzb[1]["name"]==nil then tzb[1]["name"]="" end gg.clearResults() local time = os.clock() gg.searchNumber(tzb[1][1],tzb[1][2], false, gg.SIGN_EQUAL, tzb[1][4], tzb[1][5]) local k=gg.getResults(gg.getResultsCount()) if #k==0 then gg.toast("开启失败") return end gg.clearResults() local writetable={{},{}} for a=2,#tzb do local b,hook={},{} for i,v in ipairs(k) do b[#b+1]={address=v.address+tzb[a][3],flags=tzb[a][2]} end b=gg.getValues(b) for x,y in ipairs(b) do if y.value==tzb[a][1] then hook[#hook+1]=k[x] end end k=hook end if #k>0 then for i=1,#k do for v=1,#xgb do if xgb[v][4] then writetable[1][#writetable[1]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1],freeze=true} else writetable[2][#writetable[2]+1]={address=k[i].address+xgb[v][3],flags=xgb[v][2],value=xgb[v][1]} end end end if gnlx=="修改" then gg.setValues(writetable[2]) gg.addListItems(writetable[1]) gg.toast(tzb[1]["name"].."解析成功\n共修改"..#writetable[2]..",冻结"..#writetable[1].."个值\n耗时:"..os.clock()-time.."秒") elseif gnlx=="载入" then gg.loadResults(writetable[2]) gg.toast(tzb[1]["name"].."解析成功\n共载入"..#writetable[2].."个值\n耗时:"..os.clock()-time.."秒") end else gg.toast(tzb[1]["name"].."开启失败") end end --指针配置↑ --配置勿删 do if type(getrlyunyz) ~= 'function' then gg.alert('请使用RLGG执行') os.exit() return end local info = { example_version = '1.0.3', name = '大牛宇宙服', appid = '87734', appkey = '24lVa7M2ASU8XyRh', rc4key = 'uex5FB1497weZR1f', version = '1.0', mi_type = '3' } local rlyunyz = getrlyunyz(info) local ret = rlyunyz.start() if not ret or not isTable(ret) or ret.sign ~= '3cf3963d6746fd2c95ea2d11d250d8a0' then os.exit() return end end YoYoImpl = luajava.getYoYoImpl() function huiz() string.toMusic('欢迎使用大牛宇宙服') draw.text('作者:大牛', 120,300)draw.setColor('#DB70DB') draw.text('大牛宇宙服', 120,380)draw.setColor('#DB70DB') draw.text('本宇宙服由大牛梦忆制作', 120,460)draw.setColor('#DB70DB') draw.text(' Root玩家随便使用框架已被排挤建议使用虚拟机', 120,540)draw.setColor('#DB70DB') draw.setSize(59) draw.setStyle('填充') draw3 = require('draw3') text1 = draw3.text('',150,200)draw.setColor('#00ffff') text2 = draw3.text('',150,265)draw.setColor('#00ffff') end gg.prevent(3) gg.ptrace(1) local json =json--调用 local g = {} g.file = gg.getFile() g.sel = nil gqlb={"请先搜索歌曲",} idb={"1010"} SN,gc=1,nil g.config = gg.getFile():gsub("%lua$", "").."cfg" function bei() g.data = loadfile("-- WSG PRO 1.0.9(109)\n"..g.config) if g.data ~= nil then g.sel = g.data() g.data = nil end if g.sel == nil then g.sel = {"请输入歌曲名","10"} end end bei() --搜索歌曲 function start(name,sl) fw=gg.makeRequest("http://music.163.com/api/search/get?s="..name.."&type=1&offset=0&total=true&limit="..sl) return fw end --歌词 --播放音乐 function play(id,name) gg.toast("正在播放音乐:"..name,true) gg.playMusic("http://music.163.com/song/media/outer/url?id="..id..".mp3") end --停止播放 function stop() gg.toast("正在停止音乐") for i=1,100 do gg.playMusic("stop") gg.playMusic("stop") gg.playMusic("stop") end end ---- function Play(gqlb,idb) SN = gg.choice(gqlb,nil,ts) if SN == nil then XGCK =-1 else sn=gg.choice({"播放歌曲","播放并下载"},nil,"歌曲:"..gqlb[SN]) if sn == nil then end if sn == 1 then play(idb[SN],gqlb[SN]) end if sn == 2 then local XEY=gg.makeRequest("http://music.163.com/song/media/outer/url?id="..idb[SN]..".mp3").content local XEY1=gg.getFile():gsub("[^/]+$","")..gqlb[SN]..".mp3" io.open(XEY1,"w"):write(XEY) gg.alert("提示:\n\n音乐已成功下载位置:\n\n"..XEY1) end XGCK=-1 end end function zjson(jsonr) local str = jsonr -- 匹配Json Key的正则表达式 local pattern = "\"[%w]+\":" string.gsub(str, pattern, function(v) if string.find(str, v) then str = string.gsub(str, v, string.gsub(v, "\"", "")) end end) str = string.gsub(str, ":", "=") str = string.gsub(str, "%[", "{") str = string.gsub(str, "%]", "}") local data = "-- WSG PRO 1.0.9(109)\nreturn " .. str local res = load(data)() return res end function json(con) res=zjson(con) zd=res.result.songCount pd=go3-zd if pd <= 0 then else go3=zd end ts="《"..go1.."》找到"..zd.."首歌曲,当前显示"..go3.."首" gqlb={} idb={} for i=1,go3 do gqlb[i]=res.result.songs[i].name idb[i]=res.result.songs[i].id end --print(idb) end function YY998() Obtain=gg.makeRequest("https://api.uomg.com/api/rand.music?sort=热歌榜&format=json").content muchen=Obtain:match('url":"(.-)","picurl') gg.playMusic(muchen) 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 & 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 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 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]) end changan={} changan.controlBig = function(control,time) luajava.runUiThread(function() import "android.animation.ObjectAnimator" ObjectAnimator():ofFloat(control,"scaleX", { 0, 0.4, 0.7, 1 }):setDuration(time):start() ObjectAnimator():ofFloat(control,"scaleY", { 0, 0.4, 0.7, 1 }):setDuration(time):start() end) end changan.controlFlip = function(control,time) luajava.runUiThread(function() import "android.view.animation.Animation" import "android.animation.ObjectAnimator" xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotationY", { 0, 360 }) xuanzhuandonghua:setRepeatCount(0) xuanzhuandonghua:setRepeatMode(Animation.REVERSE) xuanzhuandonghua:setDuration(time) xuanzhuandonghua:start() end) end changan.controlWater = function(control,time) luajava.runUiThread(function() import "android.animation.ObjectAnimator" ObjectAnimator():ofFloat(control,"scaleX", { 1, 0.8, 0.9, 1 }):setDuration(time):start() ObjectAnimator():ofFloat(control,"scaleY", { 1,0.8,0.9,1 }):setDuration(time):start() end) end changan.controlSmall = function(control,time) luajava.runUiThread(function() import "android.animation.ObjectAnimator" ObjectAnimator():ofFloat(control,"scaleX", { 1, 0.7, 0.4, 0 }):setDuration(time):start() ObjectAnimator():ofFloat(control,"scaleY", { 1, 0.7, 0.4, 0 }):setDuration(time):start() end) end ---------------------------------------------------------------------------------------------------------------- jianbian6 = luajava.new(GradientDrawable) jianbian6:setCornerRadius(10) jianbian6:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbian6:setOrientation(GradientDrawable.Orientation.TL_BR) jianbian6:setColors({0xB3000000,0x9CFF0069,0xE500CDEF,0xB3000000}) jianbian6:setStroke(4,"0xB9000000")--边框宽度和颜色 jianbian7 = luajava.new(GradientDrawable) jianbian7:setCornerRadius(40) jianbian7:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbian7:setColors({0xFD00FF00}) jianbian7:setStroke(4,"0xffffff00") jianbian8 = luajava.new(GradientDrawable) jianbian8:setCornerRadius(40) jianbian8:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbian8:setColors({0xFFDA0F00,0xD44BED3F}) jianbian8:setStroke(4,"0xfffff") jianbian9 = luajava.new(GradientDrawable) jianbian9:setCornerRadius(4) jianbian9:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbian9:setColors({0xFFDA0F00,0xD44BED3F}) jianbian9:setStroke(4,"0xaa000000") function balert(bltxt,bltxt1,bltxt2) result=0 if not bltxt then bltxt='内部\n稳定靠演技\n测试' end if not bltxt1 then bltxt1='取消' end if not bltxt2 then bltxt2='确定' end bltxt=tostring(bltxt) bltxt1=tostring(bltxt1) bltxt2=tostring(bltxt2) local dialog = luajava.new(AlertDialog.Builder, app.context) local block = luajava.getBlock() local result local function exit() block('end') end layoutabc=luajava.loadlayout({ScrollView, {LinearLayout, background="#ff0000", orientation="vertical", layout_width="match_parent", layout_height="match_parent", gravity = 'center', {ScrollView, gravity="center", layout_height="230dp", layout_width="fill_parent", padding="25dp", {LinearLayout, layout_marginTop="20dp", gravity="center", layout_height="220dp", layout_width="fill_parent", padding="25dp", {TextView, id = luajava.newId('弹窗文字'), textSize="18sp", text = bltxt, layout_height="wrap_content", layout_width="fill_parent", layout_gravity="center", gravity="center", },}}, {LinearLayout, gravity="center", layout_height="90dp", layout_width="fill_parent", orientation="horizontal", {Button, id="balt1", gravity="center", background=jianbian7, text=bltxt1, layout_height="40dp", layout_width="wrap_content", layout_marginRight="70dp", }, {Button, id="balt2", gravity="center", background=jianbian8, text=bltxt2, layout_height="40dp", layout_width="wrap_content", layout_marginLeft="70dp", } }}}) balt1.onClick = function() result = 1 dialog:dismiss() exit() end balt2.onClick = function() result = 2 dialog:dismiss() exit() end dialog:setView(layoutabc) dialog:setOnDismissListener(luajava.createProxy('android.content.DialogInterface$OnDismissListener', { onDismiss = function(view) exit() end})) local function invoke() dialog = dialog:create() local window = dialog:getWindow() window:setType(Build.VERSION.SDK_INT >= 26 and 2038 or 2002) window:setBackgroundDrawable(jianbian6) window:getDecorView():setPadding(0,0,0,0) dialog:show() --window:setLayout(1400,1000) YoYoImpl:with("FadeIn"):duration(300):playOn(layoutabc) end luajava.handlerPost(invoke) block('join') return result end function getVerticalBG(gtvb1,gtvb3,gtvb4,gtvb5) if not gtvb4 then gtvb4 = 0 gtvb5 = 0xff000000 end local jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(gtvb3) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(gtvb1) jianbians:setStroke(gtvb4,gtvb5)--边框宽度和颜色 return jianbians end jmbg1={} jmbg2={} for i=1,6 do jmbg1[i]=getVerticalBG({0x33000000,0x33000000},0x33000000,0x33000000) jmbg2[i]=getVerticalBG({0x33000000,0x33000000},0x33000000,0x33000000323) end function tst(text) text = tostring(text) local block = luajava.getBlock() local layout = luajava.loadlayout({ LinearLayout, background=jianbian7, gravity='center', layout_height='match_parent', layout_width='match_parent', layout_wight='1', { TextView, id = luajava.newId('TextView'), text = text, textSize = '18sp', textColor = "#ffffffff", margins = {'20dp', '10dp', '20dp', '10dp'} } }) local function invoke() if toaa==nil then toaa = Toast:makeText(app.context, '', 1) end toaa:setView(layout) toaa:show() end luajava.handlerPost(invoke) end gg.sleep(2000) -------------------------------------------------------------------------------------------------- local function switch2(...) local menus = {...} local block = luajava.getBlock() local context = app.context local window = context:getSystemService("window") -- 获取窗口管理器 local function getWindowManagerParams() local params = luajava.new(WindowManager.LayoutParams) params.type = (Build.VERSION.SDK_INT >= 26 and 2038 or 2002) params.format = PixelFormat.RGBA_8888 -- 设置背景 params.flags = params.FLAG_NOT_FOCUSABLE -- 焦点设置Finish params.width = params.WRAP_CONTENT -- 布局宽度 params.height = params.WRAP_CONTENT -- 布局高度 params.gravity = Gravity.LEFT | Gravity.TOP -- 重力设置 luajava.setFloatingWindowHide(false) luajava.setFloatingWindowHide(true) return params end local mainLayout = { LinearLayout, background=jianbian6, orientation = 'vertical', layout_width = 'wrap_content', padding = {'10dp', '10dp', '10dp', '10dp'} } local function exit() window:removeView(mainLayout) tuichu=1 end setExitEvent(exit) local hideLayout = { LinearLayout, orientation = 'horizontal', layout_width = 'fill_parent', gravity = 'center_horizontal', { ImageView, src = 0x7F02000C, padding = {'5dp', '5dp', '5dp', '5dp'}, onClick = function() local gridLayout = luajava.getIdView('功能界面') if not gridLayout then return end local VISIBLE = GridLayout.VISIBLE local GONE = GridLayout.GONE local visibility = gridLayout:getVisibility() > VISIBLE and VISIBLE or GONE gridLayout:setVisibility(visibility) if visibility==VISIBLE then 显示=1 luajava.runUiThread(function() titlet:setVisibility(View.VISIBLE) changan.controlBig(mainLayout,399) end) else 显示=0 luajava.runUiThread(function() titlet:setVisibility(View.GONE) changan.controlFlip(mainLayout,800) end) end end } } mainLayout[#mainLayout + 1] = {LinearLayout, { TextView, id="titlet", text = stitle, textSize = "13.5dp", textColor="#00FF7F", gravity = "center", layout_height = "wrap_content", layout_width="250dp", },hideLayout, } local main2Layout = { LinearLayout, id = luajava.newId('功能界面'), orientation = 'vertical', layout_width = 'wrap_content', gravity = 'center_horizontal' } mainLayout[#mainLayout + 1] = main2Layout local function formatList(list) local gridLayout = { GridLayout, orientation = 'horizontal', columnCount = '3', layout_width = 'wrap_content' } list[#list + 1] = { setText = '退出', onCheckedChanged = function(buttonView) return exit() end } for i, value in ipairs(list) do local name do local names = {'name', 'text', 'setText'} for i, key in ipairs(names) do name = value[key] if name then break end end if not name then name = string.format('功能%d', i) end for i, key in ipairs(names) do value[key] = name end end local switchLayout = { Switch, text = name } local onCheckedChanged = value.onCheckedChanged if not isFunction(onCheckedChanged) then onCheckedChanged = function(switch, isChecked) if not isSurvive() then gg.toast('脚本已结束') return exit() end local mode = isChecked and 'open' or 'close' local func = value[mode] if not isFunction(func) then switch:setChecked(not isChecked) func = function(self) gg.alert(string.format('%s缺少%s函数,该属性必须为function类型', value.name, mode)) end end luajava.startThread(function(...) pcall(func, ...) end, name, value, switch) end end if isFunction(onCheckedChanged) then onCheckedChanged = luajava.createProxy('android.widget.CompoundButton$OnCheckedChangeListener', { onCheckedChanged = onCheckedChanged }) end switchLayout.onCheckedChangeListener = onCheckedChanged gridLayout[#gridLayout + 1] = switchLayout end return gridLayout end local navigate2 = { LinearLayout, orientation = 'horizontal', layout_width = 'match_parent', gravity = 'center_horizontal' } local navigate12 = {--------横线 LinearLayout, layout_width = 'fill_parent', layout_height = "1dp", background = "#000000", } local ids = {} local views = {} for i, menu in ipairs(menus) do local name = menu.name if not name then name = ('菜单%s'):format(i) menu.name = name end ids[i] = string.format('%s-%s', i, name) local menuLayout = { Button, text = name, background = '#0000000', layout_width = 'wrap_content', onClick = function() for i2, id in ipairs(ids) do local view = views[i2] if not view then view = luajava.getIdView(id) if view then views[i2] = view end end if view then local VISIBLE = view.VISIBLE local GONE = view.GONE local state = i == i2 and VISIBLE or GONE view:setVisibility(state) end end end } navigate2[#navigate2 + 1] = menuLayout end main2Layout[#main2Layout + 1] = navigate12 main2Layout[#main2Layout + 1] = navigate2 main2Layout[#main2Layout + 1] = navigate12 local main3Layout = { LinearLayout, layout_width = 'match_parent', gravity = 'center_horizontal' } for i, menu in ipairs(menus) do local gridLayout = formatList(menu) gridLayout.id = luajava.newId(ids[i]) gridLayout.visibility = i == 1 and GridLayout.VISIBLE or GridLayout.GONE main3Layout[#main3Layout + 1] = gridLayout end main2Layout[#main2Layout + 1] = main3Layout local function setOnTouchListener(move, layout, params) local RawX, RawY, x, y local ACTION_DOWN = MotionEvent.ACTION_DOWN local ACTION_MOVE = MotionEvent.ACTION_MOVE local tonumber = tonumber move:setOnTouchListener(luajava.createProxy("android.view.View$OnTouchListener", { onTouch = function(v, event) local Action = event:getAction() if Action == ACTION_DOWN then -- 点击时的XY坐标 RawX = event:getRawX() -- 获取X坐标 RawY = event:getRawY() -- 获取Y坐标 x = params.x -- 申明变量xmX为原X坐标 y = params.y -- 申明变量xmY为原Y坐标 elseif Action == ACTION_MOVE then -- 移动时的XY坐标 params.x = tonumber(x) + (event:getRawX() - RawX) params.y = tonumber(y) + (event:getRawY() - RawY) window:updateViewLayout(layout, params) end end })) end local params = getWindowManagerParams() mainLayout = luajava.loadlayout(mainLayout) setOnTouchListener(mainLayout, mainLayout, params) local function invoke() window:addView(mainLayout, params) end gg.setVisible(false) import("android.media.AudioManager") audi = context:getSystemService("audio") audiotype = { AudioManager.STREAM_ALARM, --手机闹铃的声音 AudioManager.STREAM_MUSIC, --手机音乐的声音 AudioManager.STREAM_NOTIFICATION, --系统提示的通知 AudioManager.STREAM_RING, --电话铃声的声音 AudioManager.STREAM_SYSTEM, --手机系统的声音 AudioManager.STREAM_VOICE_CALL, --语音电话的声音 AudioManager.STREAM_DTMF, --DTMF音调的声音 --AudioManager.STREAM_BLUETOOTH_SCO, } yinl = {} for i = 1,#audiotype do yinl[i] = {} yinl[i].type = audiotype[i] yinl[i].min = audi:getStreamMinVolume(audiotype[i]) yinl[i].max = audi:getStreamMaxVolume(audiotype[i]) yinl[i].now = audi:getStreamVolume(audiotype[i]) end yltype = 0 function jianting3(func) yinln = {} for i = 1,#audiotype do yinln[i] = {} yinln[i].type = audiotype[i] yinln[i].now = audi:getStreamVolume(audiotype[i]) if yinln[i].now > yinl[i].now then yinl[i].now = yinln[i].now if yltype == 1 then yltype = 0 func() end elseif yinln[i].now < yinl[i].now then yinl[i].now = yinln[i].now if yltype == 0 then yltype = 1 func() end end end end floatWindow=mainLayout qiehuan = function() if qhkai == 1 then yinll = 1 qhkai = 0 huiz() luajava.runUiThread(function() floatWindow:setVisibility(View.VISIBLE) changan.controlBig(mainLayout,600) end) else qhkai = 1 yinll = 0 draw.remove() luajava.runUiThread(function() changan.controlSmall(mainLayout,600) end) gg.sleep(800) luajava.runUiThread(function() floatWindow:setVisibility(View.GONE) end) end end local c1 luajava.post(invoke) luajava.newThread(function() while true do if 显示 == 1 then titlet:scrollBy(20,0) if titlet:getScrollX() >= 900 then titlet:scrollBy(-titlet:getScrollX()-1200,0) end end gg.sleep(125) end end):start() luajava.setFloatingWindowHide(true) while true do if tuichu == 1 then break end jianting3(qiehuan) gg.sleep(120) end gg.setVisible(false) luajava.setFloatingWindowHide(false) end function YY998() Obtain=gg.makeRequest("https://api.uomg.com/api/rand.music?sort=热歌榜&format=json").content muchen=Obtain:match('url":"(.-)","picurl') gg.playMusic(muchen) end -- 定义走马灯控件类 显示=1 _ENV['菜单1'] = { name = '防封页面', [1] = { name = '选择进程', open = function(self) string.toMusic("请选择进程") gg.setProcessX() end, close = function(self) string.toMusic("请选择进程") gg.setProcessX() end }, [2] = { name = '防闪功能', open = function(self) 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 local t = {"libtersafe.so:bss", "Cb"} local tt = {0xAA8} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 64, freeze = true}}) local t = {"libtersafe.so:bss", "Cb"} local tt = {0xB50} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 64, freeze = true}}) string.toMusic("防闪开启成功") gg.text("开启成功,不可关闭") end, close = function(self) string.toMusic("关闭成功") end }, [3] = { name = '防资源破坏', open = function(self) Sear({{-787807233,4,16384,"资源损坏"},{-698416192,-32,4},{705168352,-40,4},},{{1384120352,-0x1C,4},{-698416192,-0x18,4}},"修改") string.toMusic("防资源破坏开启成功") gg.text("开启成功,不可关闭") end, close = function(self) string.toMusic("关闭成功") end }, [4] = { name = '静音改单机', open = function(self) dy({{1109393408,4,32,['name']='单机'},{3450,4,-68},},{{3448,4,-68,false},},"修改") string.toMusic("改单机开启成功") gg.text("开启成功,不可关闭") end, close = function(self) string.toMusic("关闭成功") end }, [5] = { name = '防掉进程(框架必开)', open = function(self) xyss({{-301047508,4,16,['name']='过掉进程'},{0,4,1272},},{{256,4,1268,true},},"修改") end, close = function(self) string.toMusic("关闭成功") end }, [6] = { name = '全英雄全皮肤', open = function(self) local a=[[10500#10501#10502#10503#10504 10600#10601#10602#10603#10604#10605#10606#10607#10608#10609 10700#10701#10702#10703#10704#10705#10706#10708#10709#10710#10712 10800#10801#10802#10803#10804#10805#10806 10900#10901#10902#10903#10904#10905#10906#10907#10908#10909#10910 11000#11001#11002#11003#11004 11100#11101#11102#11103#11104#11105#11106#11107#11108#11109#11110 11200#11201#11202#11203#11204#11205#11206#11207#11208#11209#11210#11211 11300#11301#11302#11303#11304#11305#11306#11307#11308 11400#11401#11402#11403#11404#11405#11406 11500#11501#11502#11503#11504#11505 11600#11601#11602#11603#11604#11605 11700#11701#11702#11703#11704#11705#11706 11800#11801#11802#11803#11804#11805#11806#11807 11900#11901#11902#11903#11904#11905 12000#12001#12002#12003#12004#12005 12100#12101#12102#12103#12104#12105#12106 12300#12301#12302#12303#12304#12305#12306#12307#12308#12309#12310 12400#12401#12402#12403#12404#12405#12406 12500#12501#12502#12503 12600#12601#12602#12603#12604#12605#12606 12700#12701#12702#12703#12704#12705#12706#12707 12800#12802#12803#12804#12805#12806#12807#12808 12900#12901#12902#12903#12904#12905#12906 13000#13001#13002#13004#13005#13006#13007 13100#13101#13102#13103#13104#13106#13107#13108#13109 13200#13201#13202#13203#13204#13205#13206#13207#13208#13209 13300#13301#13302#13303#13304#13305#13306#13307#13308 13400#13401#13402#13403#13404#13405 13500#13501#13502#13503#13504#13505#13506#13507#13508 13600#13601#13602#13603#13604 13700#13701#13702 13900#13901#13902#13903#13904#13905#13906 14000#14001#14002#14003#14005#14006#14007#14008 14100#14101#14102#14103#14104#14106#14107#14108#14109#14110#14111 14200#14201#14202#14203#14204#14205#14206#14207 14400#14401#14402#14403#14404#14405#14406#14407#14408#14409 14600#14601#14602#14603#14604#14605#14606#14607 14800#14801#14802#14803#14804 14900#14901#14903#14904#14905#14906 15000#15001#15002#15003#15004#15005#15006#15007#15008 15200#15201#15202#15203#15204#15206#15207#15208#15209#15210 15300#15301#15302#15303#15304#15305#15306#15307 15400#15401#15402#15403#15404#15405#15406#15407#15408#15409 15500#15501#15502#15503#15504#15505 15600#15601#15602#15603#15604#15605#15606#15607 15700#15701#15702#15703 15900#15901#15902 16200#16201#16202 16300#16301#16302 16600#16601#16602#16603#16604#16605#16606 16700#16701#16702#16703#16704#16705#16706#16707#16708#16709#16711 16800#16801#16802#16803#16804#16805 16900#16901#16902#16903#16904#16905#16906#16907#16908 17000#17001#17002#17003#17004#17005#17006#17007 17100#17101#17102#17104#17105 17300#17301#17302#17303#17304#17305#17306#17307#17308#17309 17400#17401#17402#17403#17404#17405#17407#17408#17409 17500#17501#17502#17503#17504 17600#17601#17602#17604#17605 17700#17701 17800#17801#17802#17803#17804#17805#17806 17900#17901#17902#17903 18000#18001#18002#18003#18004#18005 18200#18201#18202#18203#18204#18205#18206#18207 18300#18301#18302#18303#18304#18305 18400#18401#18402#18403#18404#18405#18406#18407 18600#18601#18602#18603#18604 18700#18701#18702#18703 18900#18901#18902#18903#18904#18905 19000#19001#19002#19003#19004#19005#19006#19007 19100#19101#19102#19103#19104#19105#19106#19107#19108#19109 19200#19201#19203#19204#19205 19300#19301#19302#19303#19304#19305#19306#19307 19400#19401#19402#19403#19404 19500#19501#19502#19503#19504#19505 19600#19601#19603#19604#19605#19606#19607 19700#19701#19702#19703#19704 19800#19801#19802#19803#19804 19900#19901#19902#19903#19904#19905#19906#19907 31200#31201#31202#31203#31204#31205#31206#31207 50100#50101#50102#50103#50104#50105 50200#50201#50202#50203#50204#50205#50206 50300#50301#50302#50303#50304 50400 50500#50501#50502#50503#50504#50505#50506 50600#50601#50602#50603#50604 50700#50701#50702#50703 50800#50801#50802#50803#50804#50805#50806 50900#50901#50902#50903#50904 51000#51001#51002#51003#51004#51006 51100#51101#51102#51103#51104 51300#51301#51302#51303#51304#51305#51306 51400#51401#51402#51404 51500#51501#51502#51503#51504#51505 51700#51701#51702 57700#57702 51800#51801#51803#51804#51805 51900 52100#52101#52102#52103#52104 52200#52201#52202#52203#52204 52300#52301#52303#52304#52305#52306 52400#52401#52402#52403#52404#52405#52406 52500#52501#52502#52503#52504 52700#52701#52702#52703 52800#52801#52802#52803#52804 52900#52901#52902#52903#52904 53100#53101#53102#53103#53104#53105#53106 53300#53301#53302#53303 53400#53401#53402#53403#53404 53600#53601#53602 53700#53701#53702 53800#53801#53803 54000#54001#54002 54200#54201#54202#54203 54400#54401#54402 54500#54501#54502 54800#54801#54802 56300#56301#56302 56400#56401#56402#56403 58100 ]] local b={} for i in a:gmatch('(.-)\n') do b[#b+1]=i end function xy_Actad(tab) local v,address=gg.getRangesList(tab[1]) if not v[1] then gg.toast("获取失败,原因:未获取模块") return end local pd=gg.getTargetInfo().x64 local address=v[1].start+tab[2][1] for i=2,#tab[2] do if pd then address=gg.getValues({{address=address,flags=32}})[1].value+tab[2][i] else address=gg.getValues({{address=address,flags=4}})[1].value & 0xFFFFFFFFF address=address+tab[2][i] end end if address==tab[2][#tab[2]] then gg.toast("获取失败,原因:指针错误") return end return address end local addr1=xy_Actad({"libGameCore.so:bss",{1396704,8,0}})--105 local addr=addr1+0x1340--字符起始 local xg,dm,dz={},{},{}--dz是字符串起始地址 local sum=0 for i,v in pairs(b) do dm[#dm+1]=tonumber(v:sub(1,3)) dz[#dz+1]=addr+sum for x in v:gmatch('.') do xg[#xg+1]={address=addr+sum,flags=1,value=':'..x} sum=sum+1 end xg[#xg+1]={address=addr+sum,flags=1,value=0} xg[#xg+1]={address=addr+sum+1,flags=1,value=0} xg[#xg+1]={address=addr+sum+2,flags=1,value=0} sum=sum+3 end local b={} for i=0,119 do b[#b+1]={address=addr1+0x28*i,flags=4} end local b=gg.getValues(b) local bj=addr1-0x90 for i,v in pairs(b) do for x,y in pairs(dm) do if y==v.value then xg[#xg+1]={address=v.address+0x1c,flags=4,value=(dz[x]-bj)*64} xg[#xg+1]={address=v.address+0xc,flags=4,value=(dz[x]-bj)*64} break end end end gg.setValues(xg) string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, --cd -- [4] = { -- name = 'LOGO防杀86', -- open = function(self) -- gg.clearResults() -- gg.setRanges(-2080896) -- gg.searchNumber("1,697,128,568", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) -- gg.refineNumber("1,697,128,568", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) -- revert = gg.getResults(100, nil, nil, nil, nil, nil, nil, nil, nil) -- local t = gg.getResults(100, nil, nil, nil, nil, nil, nil, nil, nil) -- for i, v in ipairs(t) do -- if v.flags == gg.TYPE_DWORD then -- v.value = "65792" -- v.freeze = true -- end -- end -- gg.addListItems(t) -- gg.clearResults() -- gg.setRanges(-2080896) -- gg.searchNumber("1,650,803,712", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) -- gg.refineNumber("1,650,803,712", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) -- revert = gg.getResults(100, nil, nil, nil, nil, nil, nil, nil, nil) -- local t = gg.getResults(100, nil, nil, nil, nil, nil, nil, nil, nil) -- for i, v in ipairs(t) do -- if v.flags == gg.TYPE_DWORD then -- v.value = "65792" -- v.freeze = true -- end -- end -- gg.alert("大厅第二套开启成功") -- gg.toast("大厅第二套开启成功") -- string.toMusic("大厅第二套开启成功") -- end, -- close = function(self) -- string.toMusic("无法关闭") -- end -- }, --cb内存 } _ENV['菜单2'] = { name = '英雄技能360', [1] = { name = '铠一技能360', open = function(self) xyss({{655265071,4,4,['name']='360'},{360,4,1880},},{{3,4,1896,false},},"修改") xyss({{-768239778,4,4,['name']='数量'},{0,4,84},},{{99,4,88,false},},"修改") gg.toast("开启成功") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [2] = { name = '诸葛亮一技能360', open = function(self) xyss({{-1324470703,4,4,['name']='数量1'},{0,4,84},},{{88,4,88,false},},"修改") xyss({{2036716302,4,4,['name']='数量2'},{0,4,84},},{{88,4,88,false},},"修改") xyss({{-1296744778,4,4,['name']='数量3'},{0,4,84},},{{88,4,88,false},},"修改") xyss({{190100,4,4,['name']='诸葛亮一技能360'},{360,4,-712},},{{3,4,-696,false},},"修改") gg.toast("开启成功") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [3] = { name = '诸葛亮三技能360', open = function(self) xyss({{2059110948,4,4,['name']='数量'},{0,4,84},},{{88,4,88,false},},"修改") xyss({{190300,4,4,['name']='诸葛亮大招360'},{360,4,-3900},},{{3,4,-3884,false},},"修改") gg.toast("开启成功") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [4] = { name = '司空震二技能360', open = function(self) xyss({{-394509074,4,4,['name']='数量'},{0,4,84},},{{99,4,88,false},},"修改") xyss({{16777235,4,4,['name']='司空震二技能360'},{15000,4,860},},{{3,4,856,true},},"修改") gg.toast("开启成功") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [5] = { name = '元歌二技能360', open = function(self) xyss({{-1424964715,4,4,['name']='元歌二技能数量'},{0,4,84},},{{88,4,88,false},},"修改") xyss({{125200,4,4,['name']='360'},{360,4,-712},},{{3,4,-696,false},},"修改") gg.toast("开启成功") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [6] = { name = '元歌三技能360', open = function(self) xyss({{2141330581,4,4,['name']='数量'},{0,4,84},},{{99,4,88,false},},"修改") xyss({{125300,4,4,['name']='360'},{360,4,1352},},{{3,4,1368,false},},"修改") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [7] = { name = '守约二技能360', open = function(self) xyss({{-1420754562,4,4,['name']='守约二技能数量99+'},{0,4,84},},{{99,4,88,true},},"修改") xyss({{196200,4,4,['name']='守约二技能360'},{15000,4,2180},},{{3,4,2176,false},},"修改") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [8] = { name = '守约三技能360', open = function(self) xyss({{-836247937,4,4,['name']='守约三技能数量99+'},{0,4,84},},{{99,4,88,true},},"修改") xyss({{196300,4,4,['name']='守约三技能360'},{360,4,-696},},{{3,4,-680,false},},"修改") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [9] = { name = '小乔一技能360', open = function(self) xyss({{1055260444,4,4,['name']='数量'},{0,4,84},},{{99,4,88,false},},"修改") xyss({{106100,4,4,['name']='小乔一技能360'},{360,4,-2356},},{{3,4,-2340,false},},"修改") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [10] = { name = '妲己二技能360', open = function(self) xyss({{-1724920734,4,4,['name']='数量'},{0,4,92},},{{50,4,88,false},},"修改") xyss({{109200,4,4,['name']='妲己二技能360'},{360,4,-712},},{{3,4,-696,false},},"修改") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, } _ENV['菜单3'] = { name = '装备', [1] = { name = '红莲被动改狄仁杰二技能无限触发', open = function(self) xyss({{1695023872,4,-2080896,['name']='红莲价格'},{0,4,16},},{{0,4,20,false},},"修改") xyss({{91331,4,-2080896,['name']='间隔'},{4,4,40},},{{0,4,44,false},},"修改") xyss({{15309312,4,-2080896,['name']='效果'},{0,4,176},},{{-60290467,4,180,false},{103020032,4,184,false},},"修改") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [2] = { name = '红莲被动改程咬金二技能无限触发', open = function(self) xyss({{1695023872,4,-2080896,['name']='红莲价格'},{0,4,16},},{{0,4,20,false},},"修改") xyss({{91331,4,-2080896,['name']='间隔'},{4,4,40},},{{200,4,44,false},},"修改") xyss({{15309312,4,-2080896,['name']='效果'},{0,4,176},},{{-60290467,4,180,false},{107607040,4,184,false},},"修改") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [3] = { name = '无限名刀', open = function(self) xyss({{14925056,4,-2080896,['name']='价格'},{0,4,60},},{{-5201314,4,64,false},},"修改") xyss({{911279,4,-2080896,['name']='Cd'},{0,4,8},},{{0,4,4,false},},"修改") xyss({{91127,4,-2080896,['name']='cd'},{0,4,8},},{{0,4,4,false},},"修改") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [4] ={ name = '100万血', open = function(self) 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 local t = {"libGameCore.so:bss", "Cb"} local tt = {0x14A690, 0x578, 0x88} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1000000, freeze = true}}) local t = {"libGameCore.so", "Cd"} local tt = {0xE07E0, 0x78, 0x568, 0x278} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1000000, freeze = true}}) local t = {"libGameCore.so", "Cd"} local tt = {0xE07E0, 0x78, 0x548, 0x658} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1000000, freeze = true}}) local t = {"libGameCore.so", "Cd"} local tt = {0xE07E0, 0x78, 0x558, 0x468} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1000000, freeze = true}}) local t = {"libGameCore.so:bss", "Cb"} local tt = {0x14A690, 0x568, 0x278} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1000000, freeze = true}}) local t = {"libGameCore.so:bss", "Cb"} local tt = {0x14A690, 0x548, 0x658} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1000000, freeze = true}}) local t = {"libGameCore.so:bss", "Cb"} local tt = {0x14A690, 0x558, 0x468} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1000000, freeze = true}}) gg.toast("100万血开启成功") string.toMusic("100万血开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [5] = { name = '无尽之刃', open = function(self) 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 local t = {"libGameCore.so:bss", "Cb"} local tt = {0x14A690, 0x148, 0x60} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = -99999, freeze = true}}) local t = {"libGameCore.so:bss", "Cb"} local tt = {0x14A690, 0x148, 0x24} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = -99999, freeze = true}}) local t = {"libGameCore.so:bss", "Cb"} local tt = {0x14A690, 0x148, 0x68} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = -99999, freeze = true}}) local t = {"libGameCore.so", "Cd"} local tt = {0xE07E0, 0x78, 0x148, 0x60} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 9999, freeze = true}}) local t = {"libGameCore.so", "Cd"} local tt = {0xE07E0, 0x78, 0x148, 0x24} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = -99999, freeze = true}}) local t = {"libGameCore.so", "Cd"} local tt = {0xE07E0, 0x78, 0x148, 0x68} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 9999, freeze = true}}) gg.toast("无尽伤害开启成功") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [6] = { name = '苍穹夏洛特', open = function(self) db=gg.getRangesList("dataCache.db")[1] xyss({{53603,4,-2080896,['name']='苍穹改夏洛特七星',db["start"],db["end"]},{-60290467,4,192},},{{-1,4,128,false},{0,4,184,false},{5201314,4,228,false},{5201314,4,232,false},{5201314,4,236,false},{5201314,4,240,false},{5201314,4,244,false},{5201314,4,252,false},{5201314,4,256,false},{5201314,4,260,false},{5201314,4,264,false},{5201314,4,268,false},{-888,4,308,false},},"修改") xyss({{11311,4,-2080896,['name']='改技能',db["start"],db["end"]},{417094601,4,40},},{{0,4,36,false},{19999,4,96,false},{53603,4,352,false},},'修改') gg.toast("苍穹夏洛特开启成功") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [7] = { name = '苍穹老亚瑟', open = function(self) db=gg.getRangesList("dataCache.db")[1] xyss({{16630,4,-2080896,['name']='打队友',db["start"],db["end"]},{-60290467,4,192},},{{-1,4,128,false},{0,4,184,false},{5201314,4,228,false},{5201314,4,232,false},{5201314,4,236,false},{5201314,4,240,false},{5201314,4,244,false},{5201314,4,252,false},{5201314,4,256,false},{5201314,4,260,false},{5201314,4,264,false},{5201314,4,268,false},{2052,4,276,false},{-888,4,308,false},},'修改') xyss({{11311,4,-2080896,['name']='改技能',db["start"],db["end"]},{417094601,4,40},},{{0,4,36,false},{19999,4,96,false},{16630,4,352,false},},'修改') gg.toast("老亚瑟开启成功") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [8] = { name = '内透', open = function(self) xyss({{168297174,4,16384,['name']='xa'},{168297174,4,0},},{{705168086,4,0,false},},'修改') gg.toast("内透开启成功") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [9] = { name = '自定义复活时间', open = function(self) 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 a = gg.prompt({"请输入复活时间"},{[1]=1},{[1]="number"})[1] local t = {"libGameCore.so:bss", "Cb"} local tt = {0x195760, 0x134} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = a, freeze = true}}) string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [10] = { name = '自定义等级', open = function(self) local k=gg.prompt({"输入要改的等级"},{"30"},{'number'})[1] local dj=(k-1)*8192 local addr = readPointer("libGameCore.so:bss",{0x1955B0,0x4C8,0x168,0x60,0x28}, 1) gg.edits(addr, {{dj, 4, 0, false}, {1000, 4, 4, false}, {1000, 4, 8, false}, {1000, 4, 12, false}},'自定义等级') balert("已修改为"..dj.."级") end, close = function(self) string.toMusic("关闭成功") end }, [11] = { name = '自定义经济没修复。', open = function(self) local k=gg.prompt({"输入要改的金币"},{"52000"},{'number'})[1] local addr = readPointer("libGameCore.so:bss",{0x1955B0,0x4C8,0x168,0x60,0x28}, 1) gg.edits(addr, {{k*8192,4,0,false}},"自定义改金币") balert("经济已修改为"..k.."元") end, close = function(self) string.toMusic("关闭成功") end }, [12] = { name = '当前英雄技能无CD', open = function(self) local t = {"libil2cpp.so:bss", "Cb"} local tt = {58760,0xB8,0x60} local ttt = S_Pointer(t, tt, true) local ttt=gg.getValues({{address=ttt,flags=4,value=nil},}) l=ttt[1].value db=gg.getRangesList("dataCache.db")[1] xyss({{l..'00~'..l..'99',4,-2080896,['name']='技能无CD',db["start"],db["end"]},{-60290467,4,24},},{{-1,4,128,false},{0,4,184,false},{-1,4,188,false},{00,4,308,false},},'修改') balert("当前英雄代码"..l.."\n技能无CD注入成功成功\n耗时为:"..os.clock()-time.."秒") end, close = function(self) string.toMusic("关闭成功") end }, [13] = { name = '姜子牙自定义封神', open = function(self) c = gg.prompt({"请输入苍穹位置1∽11","封神队友","封神敌人","封神防御塔"},{9,false,false,false},{'number','checkbox','checkbox','checkbox'}) if c[2]==true then a=16779266 b=276 end if c[3]==true then a=257 b=276 end if c[4]==true then a=16406 b=300 end db=gg.getRangesList("dataCache.db")[1] xyss({{14850,4,-2080896,db["start"],db["end"]},{-241108919,4,24},},{{-1,4,128,false},{0,4,184,false},{-1,4,188,false},{16779266,4,276,false},{278,4,292,false},{0,4,300,false},{0,4,308,false},},"修改") xyss({{14850,4,-2080896,db["start"],db["end"]},{-241108919,4,24},},{{-1,4,128,false},{0,4,184,false},{-1,4,188,false},{a,4,b,false},},"修改") xyss({{11311,4,-2080896,db["start"],db["end"]},{417094601,4,8},},{{0,4,36,false},{14850,4,352,false},{c[1],4,356,false},},"修改") balert("请购买苍穹") end, close = function(self) string.toMusic("关闭成功") end }, [14] = { name = '无限复活甲', open = function(self) db=gg.getRangesList("dataCache.db")[1] xyss({{1337,4,-2080896,['name']='装备0元',db["start"],db["end"]},{417094601,4,8},},{{0,4,36,false},},'修改') xyss({{50068,4,-2080896,['name']='载入'},{-297008191,4,16},},{{50068,4,0,false},},'载入') tzm1=gg.getValues({{address=gg.getResults(1)[1].address+0x20,flags=4,value=nil},})[1].value tzm2=gg.getValues({{address=gg.getResults(1)[1].address+0x24,flags=4,value=nil},})[1].value xyss({{91337,4,-2080896,['name']='无限复活甲'},{-297008191,4,16},},{{0,4,4,false},{tzm1,4,32,false},{tzm2,4,36,false},},'修改') balert("无限复活甲注入成功\n请购买复活甲") end, close = function(self) string.toMusic("关闭成功") end }, [15] = { name = '吕布大招吸全图', open = function(self) xy_Offset_Search({ {123290,4,4,name="吕布二技能吸全图"}, {100,4,-4}, {123200,4,4}, }, { {175290,4,8,"修改"}, {0,4,192,"修改"}, }) balert("吕布二技能吸全图开启成功\n耗时:"..os.clock()-time.."秒\nPowerd By.大牛") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [16] = { name = '等待', open = function(self) xyss({{14925056,4,-2080896,['name']='价格'},{0,4,60},},{{-5201314,4,64,false},},"修改") xyss({{911279,4,-2080896,['name']='Cd'},{0,4,8},},{{0,4,4,false},},"修改") xyss({{91127,4,-2080896,['name']='cd'},{0,4,8},},{{0,4,4,false},},"修改") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [17] = { name = '等待', open = function(self) xyss({{14925056,4,-2080896,['name']='价格'},{0,4,60},},{{-5201314,4,64,false},},"修改") xyss({{911279,4,-2080896,['name']='Cd'},{0,4,8},},{{0,4,4,false},},"修改") xyss({{91127,4,-2080896,['name']='cd'},{0,4,8},},{{0,4,4,false},},"修改") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [18] = { name = '等待', open = function(self) xyss({{14925056,4,-2080896,['name']='价格'},{0,4,60},},{{-5201314,4,64,false},},"修改") xyss({{911279,4,-2080896,['name']='Cd'},{0,4,8},},{{0,4,4,false},},"修改") xyss({{91127,4,-2080896,['name']='cd'},{0,4,8},},{{0,4,4,false},},"修改") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, [19] = { name = '等待', open = function(self) xyss({{14925056,4,-2080896,['name']='价格'},{0,4,60},},{{-5201314,4,64,false},},"修改") xyss({{911279,4,-2080896,['name']='Cd'},{0,4,8},},{{0,4,4,false},},"修改") xyss({{91127,4,-2080896,['name']='cd'},{0,4,8},},{{0,4,4,false},},"修改") string.toMusic("开启成功") end, close = function(self) string.toMusic("关闭成功") end }, } _ENV['菜单4'] = { name = '音乐', [1] = { name = '搜索歌曲',---8391694libil2cpp.so:bss+0x2E268+0xBB0+0x200+0x798+0x1A60 open = function(self) search = gg.prompt({ "输入要搜索的歌曲\n可加上歌手名字", "设置显示数量(数字)", },g.sel,{ "text", }) if not search then return end gg.saveVariable(search,g.config) bei() go1=search[1] go3=search[2] jg=start(go1,go3) if jg.code == 200 then fh=jg.content fh=json(fh) --print(fh) Play(gqlb,idb) else function inspect() gg.alert("访问网络异常,错误代码:\n\n"..jg.code) end if not pcall(inspect) then print("网络异常,请先连接上网络") os.exit() end end XGCK=-1 end, close = function(self) end }, [2] = { name = '强行cp上头歌曲', open = function(self) gg.playMusic('https://cccimg.com/view.php/095458b5c3696798400dad1639f82152.mp3') end, close = function(self) end }, [3] = { name = '武家坡', open = function(self) gg.playMusic("http://music.163.com/song/media/outer/url?id=1891431677.mp3") end, close = function(self) end }, [4] = { name = '海阔天空', open = function(self) gg.playMusic("http://music.163.com/song/media/outer/url?id=1357374736.mp3") end, close = function(self) end }, [5] = { name = '光辉岁月', open = function(self) gg.playMusic("http://music.163.com/song/media/outer/url?id=28875158.mp3") end, close = function(self) end }, [6] = { name = '爱情故事', open = function(self) gg.playMusic("http://music.163.com/song/media/outer/url?id=1989479877.mp3") end, close = function(self) end }, [7] = { name = '鬼新娘', open = function(self) gg.playMusic("http://music.163.com/song/media/outer/url?id=1854927969.mp3") end, close = function(self) end }, [8] = { name = '释怀歌曲', open = function(self) gg.playMusic('http://music.163.com/song/media/outer/url?id=1940376172.mp3') end, close = function(self) end }, [9] = { name = '我结婚了', open = function(self) gg.playMusic('http://music.163.com/song/media/outer/url?id=1879904599.mp3') end, close = function(self) end }, [10] = { name = '喜欢你', open = function(self) gg.playMusic("http://music.163.com/song/media/outer/url?id=346163&uct2.mp3") end, close = function(self) end }, [11] = { name = '可不可以', open = function(self) gg.playMusic("http://music.163.com/song/media/outer/url?id=553755659.mp3") end, close = function(self) end }, [12] = { name = '原神启动', open = function(self) gg.playMusic("http://music.163.com/song/media/outer/url?id=2056964874.mp3") end, close = function(self) end }, [13] = { name = '心做DJ', open = function(self) gg.playMusic("http://music.163.com/song/media/outer/url?id=2005190306.mp3") end, close = function(self) end }, [14] = { name = '停止播放', open = function(self) gg.playMusic("stop") gg.playMusic("stop") gg.playMusic("stop") end, close = function(self) gg.playMusic("stop") gg.playMusic("stop") gg.playMusic("stop") end } } stitle = "素质神独家脚本\n作者:素质神(Hwc)\n独家脚本\n●●●●●●●\n无敌素质神\n无人局请在登录页面打开"--滚动字体 switch2(_ENV['菜单1'], _ENV['菜单2'], _ENV['菜单3'],_ENV['菜单4']) -----↑这里是登录成功后进入的界面或悬浮窗↑-----