do if type(getrlyunyz) ~= 'function' then gg.alert('请使用RLGG执行') os.exit() return end local info = { example_version = '1.0.3', name = 'DS全防', appid = '99489', appkey = '4b4WSp9MBw4mM41i', rc4key = 'vy2yKFEjy9hEeMF2', version = '1.5', mi_type = '3' } local rlyunyz = getrlyunyz(info) local ret = rlyunyz.start() if not ret or not isTable(ret) or ret.sign ~= '4f812cad75db425e176e6c656f1b8c04' then os.exit() return end end local loadingBox = getLoadingBox('正在检测您是否获取了root权限?') loadingBox['显示']() gg.sleep(2000) loadingBox['关闭']() local loadingBox = getLoadingBox('已获取root权限') loadingBox['显示']() gg.sleep(1000) loadingBox['关闭']() local loadingBox = getLoadingBox('即将HOOK腾讯服务器') loadingBox['显示']() gg.sleep(2000) string.toMusic("欢迎使用无名全防助各位能稳定上大分,天天开心!") gg.setVisible(false) luajava.setFloatingWindowHide(true) changan = {} swits={ } swits["第一页"]={} swits["第二页"]={} swits["第三页"]={} swits["第四页"]={} swits["第五页"]={} swits["标题"]={ {},{},{},{},{}, } YoYoImpl = luajava.getYoYoImpl() vibra = context:getSystemService(Context.VIBRATOR_SERVICE) function guid() seed = { 'e','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' } tb = {} for i = 1,32 do table.insert(tb,seed[math.random(1,16)]) end sid = table.concat(tb) return string.format('%s%s%s%s%s', string.sub(sid,1,8), string.sub(sid,10,12), string.sub(sid,21,22)) ..string.format('%s%s%s%s%s', string.sub(sid,1,6), string.sub(sid,21,25) ) end function getTimeStamp(t) local str = os.date("%Y年%m月%d日%H:%M:%S",t) return str end function panduan(rec) fille,err = io.open(rec) if fille == nil then return false else return true end end function 获取图片(txt) gg.toast("正在加载资源...") txt = string.url(txt,"de") txt=file.checkUrl(txt) return luajava.getBitmapDrawable(txt) end hanshu = function(v, event) local Action = event:getAction() if Action == MotionEvent.ACTION_DOWN then isMove = false RawX = event:getRawX() RawY = event:getRawY() x = mainLayoutParams.x y = mainLayoutParams.y elseif Action == MotionEvent.ACTION_MOVE then isMove = true mainLayoutParams.x = tonumber(x) + (event:getRawX() - RawX) mainLayoutParams.y = tonumber(y) + (event:getRawY() - RawY) window:updateViewLayout(floatWindow, mainLayoutParams) end end function panduan(rec) fille,err = io.open(rec) if fille == nil then return false else return true end end function pdcf(lujing) rec = "/sdcard/无名全防文件请勿动/配置文件/"..lujing fille,err = io.open(rec) if fille == nil then return false else return true end end sleep = gg.sleep --if gg.isHTTPdump()==true and panduan("/sdcard/无名全防文件请勿动/配置文件/vpn.txt") == false then gg.alert("\n抓包?") os.exit() end function read(fileName) f = assert(io.open(fileName, 'r')) content = f:read("*all") f:close() return content end function wtcf(lujing,neirong) write("/sdcard/无名全防文件请勿动/配置文件/"..lujing,neirong) end function rdcf(lujing) return read("/sdcard/无名全防文件请勿动/配置文件/"..lujing) end 开 = "开" 关 = "关" function checkimg(tmp) if panduan("/sdcard/无名全防文件请勿动/图片/"..tmp) ~= true then gg.toast("正在下载资源"..tmp.."\n请耐心等待") download("https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/"..tmp,"/sdcard/无名全防文件请勿动/图片/"..tmp) end end ckimg = { "80ht", "80.css", "backg.zip", "pubgT","pubgY","pubgR","pubgG" } for i = 1,#ckimg do jindu = i checkimg(ckimg[i]) end local zip_path="/sdcard/无名全防文件请勿动/图片/backg.zip" local out_path = zip_path:getdir():appendPath('backg') file.unzip(zip_path, out_path) local listFiles = out_path:listFiles() local duration = 100 photos = {} for i = 1, #listFiles do local path = string.format('%s/%s.png', out_path, i) photos[#photos+1] = path end empty=luajava.loadlayout { GradientDrawable, color = "#BC8F8F", cornerRadius = 30 } empty2=luajava.getBitmap("https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/jot8z1zy") currentBack = 1 saveBitmaps = {} saveBitmap = {} function changeBack() if currentBack == 5 then if not webbg then webbg=broser("file:///sdcard/无名全防文件请勿动/图片/80ht") end luajava.newThread(function() file.write("/sdcard/无名全防文件请勿动/配置文件/currentBack","5") end):start() mainbg:setBackground(empty) setback:setImageBitmap(empty2) web_:setVisibility(View.VISIBLE) local function invoke() web_:addView(webbg) end luajava.post(invoke) showweb=true currentBack = -1 else if showweb then local function invoke() web_:removeView(webbg) end luajava.post(invoke) web_:setVisibility(View.GONE) end currentBack = currentBack+1 if saveBitmaps[currentBack] == nil then saveBitmaps[currentBack] = luajava.getBitmapDrawable(photos[currentBack]) saveBitmap[currentBack] = luajava.getBitmap(photos[currentBack]) end mainbg:setBackground(saveBitmaps[currentBack]) setback:setImageBitmap(saveBitmap[currentBack]) luajava.newThread(function() file.write("/sdcard/无名全防文件请勿动/配置文件/currentBack",currentBack) end):start() end end function broser(tmp) import('android.webkit.*') Color = luajava.bindClass('android.graphics.Color') local function web(url) local function invoke() local web = luajava.loadlayout( {WebView, background = "#802A2A" }) local settings = web:getSettings() settings:setJavaScriptEnabled(true); settings:setDomStorageEnabled(true); settings:setUseWideViewPort(true); settings:setLoadWithOverviewMode(true); settings:setBlockNetworkImage(false); settings:setBuiltInZoomControls(false); settings:setSupportZoom(false); settings:setPluginState(WebSettings.PluginState.ON); settings:setJavaScriptCanOpenWindowsAutomatically(true); settings:setAllowFileAccess(true); settings:setLoadWithOverviewMode(true); settings:setUseWideViewPort(true); web:setWebChromeClient(luajava.new(WebChromeClient)) web:setLayerType(View.LAYER_TYPE_HARDWARE) web:setWebViewClient(webViewClient) web:setVerticalScrollBarEnabled(false) web:setHorizontalScrollBarEnabled(false) web:setScrollContainer(false) web:loadUrl(url) web:setBackgroundColor(0x0) return web end return luajava.post(invoke) end return web(tmp) end function fresh() if file.checkFile("/sdcard/无名全防文件请勿动/配置文件/currentBack")~=false then if file.read("/sdcard/无名全防文件请勿动/配置文件/currentBack")=="" then return 0 end currentBack=tonumber(file.read("/sdcard/无名全防文件请勿动/配置文件/currentBack")) luajava.runUiThread(function() if currentBack == 5 then if not webbg then webbg=broser("file:///sdcard/无名全防文件请勿动/图片/80ht") end mainbg:setBackground(empty) setback:setImageBitmap(empty2) local function invoke() web_:addView(webbg) end luajava.post(invoke) web_:setVisibility(View.VISIBLE) showweb=true currentBack = 1 else if showweb then local function invoke() web_:removeView(webbg) end luajava.post(invoke) web_:setVisibility(View.GONE) end if saveBitmaps[currentBack] == nil then saveBitmaps[currentBack] = luajava.getBitmapDrawable(photos[currentBack]) saveBitmap[currentBack] = luajava.getBitmap(photos[currentBack]) end mainbg:setBackground(saveBitmaps[currentBack]) setback:setImageBitmap(saveBitmap[currentBack]) end end) end end window = context:getSystemService("window") -- 获取窗口管理器 function getLayoutParams() LayoutParams = WindowManager.LayoutParams layoutParams = luajava.new(LayoutParams) if (Build.VERSION.SDK_INT >= 26) then -- 设置悬浮窗方式 layoutParams.type = LayoutParams.TYPE_APPLICATION_OVERLAY else layoutParams.type = LayoutParams.TYPE_PHONE end layoutParams.format = PixelFormat.RGBA_8888 -- 设置背景 layoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE -- 焦点设置Finish layoutParams.gravity = Gravity.TOP|Gravity.LEFT -- 重力设置 layoutParams.width = LayoutParams.WRAP_CONTENT -- 布局宽度 layoutParams.height = LayoutParams.WRAP_CONTENT -- 布局高度 return layoutParams end mainLayoutParams = getLayoutParams() function changan.menu() cebian = { LinearLayout, layout_height = "wrap_content", layout_width = "100dp", gravity = "center_vertical", layout_marginBottom = "5dp", padding = "3dp", orientation = "vertical", } for i = 1,#stab do _ENV["jm"..i.."bg"] = getSelector() _ENV["jm"..i] = luajava.loadlayout({ LinearLayout, gravity = "center", layout_height = "38dp", layout_width = "90dp", background = _ENV["jm"..i.."bg"], onTouch = hanshu, onClick = function() 切换(i) end, { TextView, id = "jmt"..i, textSize = "13sp", textColor = "#802A2A", text = stab[i], } }) cebian[#cebian+1] = _ENV["jm"..i] end leftbar = luajava.loadlayout({ LinearLayout, layout_height = "fill_parent", layout_width = "100dp", orientation = "vertical", { ImageView, onTouch = hanshu, id="control1", onClick = 隐藏, gravity = "center", layout_height = "50dp", layout_width = "100dp", padding = "8dp", src = 获取图片(xfcpic), background = luajava.loadlayout { GradientDrawable, color = "#802A2A", cornerRadius = 30 }, }, { ScrollView, layout_height = "228dp", layout_marginTop = "8dp", layout_width = "100dp", background = luajava.loadlayout { GradientDrawable, color = "#802A2A", cornerRadius = 30 }, cebian } }) for i=1,2 do _ENV["layout"..i]=luajava.loadlayout({ ScrollView, id = "layout"..i, fillViewport = true, visibility = "gone", layout_height = "fill_parent", layout_width = "match_parent", { LinearLayout, id = "layoutm"..i, layout_height = "wrap_content", layout_width = "match_parent", orientation = "vertical", { LinearLayout, layout_height = "50dp", layout_width = "match_parent", gravity = "center", orientation = "vertical", layout_marginLeft = "8dp", background = luajava.loadlayout { GradientDrawable, color = "#802A2A", cornerRadius = 30 }, --onClick = changeLanguage, { TextView, text = swits["标题"][i][1], textSize = "20dp", gravity = "center", }, { TextView, text = swits["标题"][i][2], textSize = "13dp", gravity = "center", } }, { LinearLayout, layout_height = "match_parent", layout_width = "match_parent", layout_marginLeft = "3dp", orientation="horizontal", gravity = "center", padding = "5dp", {LinearLayout, background = luajava.loadlayout { GradientDrawable, color = "#802A2A", cornerRadius = 30 }, id="switchs"..i.."1", orientation="vertical", gravity="center_horizontal", layout_height = "match_parent", layout_width = "match_parent", layout_weight=1, },{LinearLayout, gravity="top", layout_height = "match_parent", layout_width = "match_parent", layout_weight=1, layout_marginLeft="8dp", orientation="vertical", {LinearLayout, layout_height = "wrap_content", layout_width = "match_parent", id="switchs"..i.."2", background = luajava.loadlayout { GradientDrawable, color = "#802A2A", cornerRadius = 30 }, gravity="center_vertical", orientation="vertical", }, {LinearLayout, layout_height = "wrap_content", layout_width = "fill_parent", layout_marginTop = "8dp", layout_weight=1, id="switchs"..i.."3", background = luajava.loadlayout { GradientDrawable, color = "#802A2A", cornerRadius = 30 }, gravity="top", orientation="vertical", }, } } }}) end for i=3,3 do _ENV["layout"..i]=luajava.loadlayout({ ScrollView, id = "layout"..i, fillViewport = true, visibility = "gone", layout_height = "fill_parent", layout_width = "match_parent", { LinearLayout, id = "layoutm"..i, layout_height = "wrap_content", layout_width = "match_parent", orientation = "vertical", { LinearLayout, layout_height = "50dp", layout_width = "match_parent", gravity = "center", orientation = "vertical", layout_marginLeft = "8dp", background = luajava.loadlayout { GradientDrawable, color = "#802A2A", cornerRadius = 30 }, --onClick = changeLanguage, { TextView, text = swits["标题"][i][1], textSize = "20dp", gravity = "center", }, { TextView, text = swits["标题"][i][2], textSize = "13dp", gravity = "center", } }, { LinearLayout, layout_height = "match_parent", layout_width = "match_parent", layout_marginLeft = "3dp", orientation="horizontal", gravity = "center", padding = "5dp", {LinearLayout, gravity="top", layout_height = "match_parent", layout_width = "match_parent", layout_weight=1, layout_marginLeft="8dp", orientation="vertical", {LinearLayout, layout_height = "wrap_content", layout_width = "match_parent", id="switchs"..i.."1", background = luajava.loadlayout { GradientDrawable, color = "#802A2A", cornerRadius = 30 }, gravity="center_vertical", orientation="vertical", },{LinearLayout, layout_height = "wrap_content", layout_width = "match_parent", id="switchs"..i.."2", background = luajava.loadlayout { GradientDrawable, color = "#802A2A", cornerRadius = 30 }, gravity="center_vertical", orientation="vertical", }, {LinearLayout, layout_height = "wrap_content", layout_width = "fill_parent", layout_marginTop = "8dp", layout_weight=1, id="switchs"..i.."3", background = luajava.loadlayout { GradientDrawable, color = "#802A2A", cornerRadius = 30 }, gravity="top", orientation="vertical", }, },{LinearLayout, gravity="top", layout_height = "match_parent", layout_width = "match_parent", layout_weight=1, layout_marginLeft="8dp", orientation="vertical", {LinearLayout, layout_height = "wrap_content", layout_width = "match_parent", id="switchs"..i.."4", background = luajava.loadlayout { GradientDrawable, color = "#802A2A", cornerRadius = 30 }, gravity="center_vertical", orientation="vertical", },{LinearLayout, layout_height = "wrap_content", layout_width = "match_parent", id="switchs"..i.."5", background = luajava.loadlayout { GradientDrawable, color = "#802A2A", cornerRadius = 30 }, gravity="center_vertical", orientation="vertical", }, {LinearLayout, layout_height = "wrap_content", layout_width = "fill_parent", layout_marginTop = "8dp", layout_weight=1, id="switchs"..i.."6", background = luajava.loadlayout { GradientDrawable, color = "#802A2A", cornerRadius = 30 }, gravity="top", orientation="vertical", }, } } }}) end layout4 = luajava.loadlayout({ HorizontalScrollView, id = "layout4", padding="10dp", visibility = "gone", layout_height = "fill_parent", layout_width = "match_parent", { LinearLayout, id = "layoutm5", layout_height = "match_parent", layout_width = "wrap_content", orientation = "horizontal", gravity="center_vertical", {FrameLayout, layout_height = "260dp", layout_width = "170dp", gravity="center", { FrameLayout, layout_height = "260dp", layout_width = "150dp", --layout_weight = 1, gravity = "center", layout_gravity="center_horizontal", background = luajava.loadlayout { GradientDrawable, color = "#802A2A", cornerRadius = 30 }, { ImageView, src = "/sdcard/无名全防文件请勿动/图片/pubgT", layout_marginTop="20dp", layout_gravity="center_horizontal", layout_height="60dp", layout_width="60dp", }, { TextView, text = "小缘", textSize = "16dp", layout_marginTop="90dp", layout_gravity="center_horizontal", gravity = "center", }, { LinearLayout, onClick = function() luajava.newThread(function() 切换(1) launch("com.rekoo.pubgm") end):start() end, background = getShape(90,0xff28FEB9,0xff28FEB9,0xff28FEB9), layout_height = "25dp", layout_width = "55dp", layout_gravity="center_horizontal", layout_marginTop = "190dp", gravity = "center", { TextView, textColor = "#000000", text = "创作者", textSize = "12sp", layout_height = "20dp", gravity = "center", layout_width = "30dp", } } }, }, {FrameLayout, layout_height = "260dp", layout_width = "170dp", gravity="center", { FrameLayout, layout_height = "260dp", layout_width = "150dp", --layout_weight = 1, gravity = "center",layout_gravity="center_horizontal", background = luajava.loadlayout { GradientDrawable, color = "#802A2A", cornerRadius = 30 }, { ImageView, src = "/sdcard/无名全防文件请勿动/图片/pubgY", layout_marginTop="20dp", layout_gravity="center_horizontal", layout_height="70dp", layout_width="70dp", }, { TextView, text = "无名", textSize = "16dp", layout_marginTop="90dp", layout_gravity="center_horizontal", gravity = "center", }, { LinearLayout, onClick = function() luajava.newThread(function() 切换(1) launch("com.vng.pubgmobile") end):start() end, background = getShape(90,0xFF00FFFF,0xFFFF8AC9,0x802A2A), layout_height = "25dp", layout_width = "55dp", layout_gravity="center_horizontal", layout_marginTop = "190dp", gravity = "center", { TextView, textColor = "#000000", text = "赞助者", textSize = "12sp", layout_height = "20dp", gravity = "center", layout_width = "30dp", } } }, }, {FrameLayout, layout_height = "260dp", layout_width = "170dp", gravity="center", { FrameLayout, layout_height = "260dp", layout_width = "150dp", --layout_weight = 1, gravity = "center",layout_gravity="center_horizontal", background = luajava.loadlayout { GradientDrawable, color = "#802A2A", cornerRadius = 30 }, { ImageView, src = "/sdcard/无名全防文件请勿动/图片/pubgR", layout_marginTop="20dp", layout_gravity="center_horizontal", layout_height="60dp", layout_width="60dp", }, { TextView, text = "小黑屋的原因:①设备不干净导致\n②吃举报导致", textSize = "16dp", layout_marginTop="90dp", layout_gravity="center_horizontal", gravity = "center", }, { LinearLayout, onClick = function() luajava.newThread(function() 切换(1) launch("com.pubg.krmobile") end):start() end, background = getShape(90,0xFF00FFFF,0xFFFF8AC9,0x802A2A), layout_height = "25dp", layout_width = "55dp", layout_gravity="center_horizontal", layout_marginTop = "190dp", gravity = "center", { TextView, textColor = "#000000", text = "", textSize = "12sp", layout_height = "20dp", gravity = "center", layout_width = "30dp", } } }, }, {FrameLayout, layout_height = "260dp", layout_width = "170dp", gravity="center", { FrameLayout, layout_height = "260dp", layout_width = "150dp", --layout_weight = 1, gravity = "center",layout_gravity="center_horizontal", background = luajava.loadlayout { GradientDrawable, color = "#802A2A", cornerRadius = 30 }, { ImageView, src = "/sdcard/无名全防文件请勿动/图片/pubgG", layout_marginTop="20dp", layout_gravity="center_horizontal", layout_height="60dp", layout_width="60dp", }, { TextView, text = "高风险的原因:①行为问题\n②防封问题请及时反馈", textSize = "16dp", layout_marginTop="90dp", layout_gravity="center_horizontal", gravity = "center", }, { LinearLayout, onClick = function() luajava.newThread(function() 切换(1) launch("com.tencent.ig") end):start() end, background = getShape(90,0xFF00FFFF,0xFFFF8AC9,0x802A2A), layout_height = "25dp", layout_width = "55dp", layout_gravity="center_horizontal", layout_marginTop = "190dp", gravity = "center", { TextView, textColor = "#000000", text = "", textSize = "12sp", layout_height = "20dp", gravity = "center", layout_width = "30dp", } } }, } }}) layout5 = luajava.loadlayout({ ScrollView, id = "layout5", visibility = "gone", layout_height = "fill_parent", layout_width = "match_parent", { LinearLayout, id = "layoutm5", layout_height = "wrap_content", layout_width = "match_parent", orientation = "vertical", {LinearLayout, layout_height = "wrap_content", layout_width = "match_parent", orientation = "horizontal",{ LinearLayout, layout_height = "120dp", layout_width = "match_parent", layout_weight = 1, gravity = "center", layout_marginLeft = "8dp", background = luajava.loadlayout { GradientDrawable, color = "#802A2A", cornerRadius = 30 }, onClick = changeLanguage, { TextView, id = "langt", text = "中文", textSize = "23dp", gravity = "center", } }, { ImageView, id = "setback", layout_height = "120dp", layout_width = "match_parent", layout_weight = 1, layout_marginLeft = "8dp", background = luajava.loadlayout { GradientDrawable, color = "#802A2A", cornerRadius = 30 }, gravity = "center", padding = "5dp", src = photos[currentBack], onClick = changeBack, }}, {LinearLayout, orientation="vertical", layout_width="fill_parent", layout_height="fill_parent", layout_weight=1, gravity="center_horizontal", {TextView, text="TG@wuming78nb", textColor="#802A2A", layout_marginTop="60dp", layout_width="fill_parent", gravity="center", textSize="14sp", onClick=function() 隐藏() luajava.newThread(function() gg.intent("https://t.me/HJNByyds") end):start() end, }, {TextView, text="退出", textColor="#000000", layout_marginTop="20dp", layout_width="wrap_content", background=luajava.loadlayout { GradientDrawable, color = "#802A2A", cornerRadius = 20 }, gravity="center", padding={"35dp","0dp","35dp","0dp",}, textSize="15sp", onClick=function() tuichu = 1 end, } } }}) floatWindow = luajava.loadlayout( { FrameLayout, layout_height = "wrap_content", layout_width = "wrap_content", { ImageView, onTouch = hanshu, id="control2", visibility="gone", onClick = 隐藏, gravity = "center", layout_height = "40dp", layout_width = "40dp", src = 获取图片(xfcpic) }, {FrameLayout, id="chuangk", {LinearLayout, layout_gravity="center", id="web_", visibility="gone", layout_height = "300dp", layout_width = "535dp", background=luajava.loadlayout { GradientDrawable, color = "#FFFF8AC9", cornerRadius = 40, }, }, { LinearLayout, orientation = "horizontal", id = "mainbg", padding = "8dp", background = photos[1], onTouch = hanshu, layout_height = "300dp", layout_width = "535dp", leftbar, layout1, layout2, layout3, layout4, layout5, }, } }) local function invoke() mainLayoutParams.x = -device.width/4 mainLayoutParams.y = device.height/4 window:addView(floatWindow,mainLayoutParams) --web_:addView(webbg) end luajava.post(invoke) --print(os.clock()-tlt) 切换(1) local function invoke() for i=1,#swits["第一页"]["第一板块"] do _ENV["switchs11"]:addView(swits["第一页"]["第一板块"][i]) end for i=1,#swits["第一页"]["第二板块"] do _ENV["switchs12"]:addView(swits["第一页"]["第二板块"][i]) end for i=1,#swits["第一页"]["第三板块"] do _ENV["switchs13"]:addView(swits["第一页"]["第三板块"][i]) end for i=1,#swits["第二页"]["第一板块"] do _ENV["switchs21"]:addView(swits["第二页"]["第一板块"][i]) end for i=1,#swits["第二页"]["第二板块"] do _ENV["switchs22"]:addView(swits["第二页"]["第二板块"][i]) end for i=1,#swits["第二页"]["第三板块"] do _ENV["switchs23"]:addView(swits["第二页"]["第三板块"][i]) end for i=1,#swits["第三页"]["第一板块"] do _ENV["switchs31"]:addView(swits["第三页"]["第一板块"][i]) end for i=1,#swits["第三页"]["第二板块"] do _ENV["switchs32"]:addView(swits["第三页"]["第二板块"][i]) end for i=1,#swits["第三页"]["第三板块"] do _ENV["switchs33"]:addView(swits["第三页"]["第三板块"][i]) end for i=1,#swits["第三页"]["第四板块"] do _ENV["switchs34"]:addView(swits["第三页"]["第四板块"][i]) end for i=1,#swits["第三页"]["第五板块"] do _ENV["switchs35"]:addView(swits["第三页"]["第五板块"][i]) end for i=1,#swits["第三页"]["第六板块"] do _ENV["switchs36"]:addView(swits["第三页"]["第六板块"][i]) end for i=1,#swits["第四页"]["第一板块"] do _ENV["switchs41"]:addView(swits["第四页"]["第一板块"][i]) end for i=1,#swits["第四页"]["第二板块"] do _ENV["switchs42"]:addView(swits["第四页"]["第二板块"][i]) end for i=1,#swits["第四页"]["第三板块"] do _ENV["switchs43"]:addView(swits["第四页"]["第三板块"][i]) end end luajava.post(invoke) fresh() setOnExitListener(function() tuichu = 1 local function invoke() return window:removeView(floatWindow) end luajava.post(invoke) luajava.setFloatingWindowHide(false) end) qhkai = 0 qiehuan = function() if qhkai == 0 then qhkai = 1 draw.remove() luajava.runUiThread(function() changan.controlSmall(floatWindow,400) end) gg.sleep(400) luajava.runUiThread(function() floatWindow:setVisibility(View.GONE) end) else qhkai = 0 huiz() draw.text('.', -9200,-9200) luajava.runUiThread(function() floatWindow:setVisibility(View.VISIBLE) end) luajava.runUiThread(function() changan.controlBig(floatWindow,400) end) end end huiz() draw.text('.', -9200,-9200) while true do if tuichu == 1 then break end jianting3(qiehuan) gg.sleep(300) end local function invoke() return window:removeView(floatWindow) end luajava.post(invoke) luajava.setFloatingWindowHide(false) end slcta = luajava.loadlayout { GradientDrawable, color = "#FFFF8AC9", cornerRadius = 40 } slctb = luajava.loadlayout { GradientDrawable, color = "0xFF000000", cornerRadius = 30 } function getSelector() selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, slcta) -- 点击时候的背景 selector:addState({ -android.R.attr.state_pressed }, slctb) -- 没点击的背景 return selector end function 切换(x) luajava.runUiThread ( function ( ) 当前ui = x for i = 1,#stab do if i ~= x then _ENV["layout"..i]:setVisibility(View.GONE) _ENV["jm"..i]:setBackground(_ENV["jm"..i.."bg"]) end end _ENV["layout"..当前ui]:setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(300):playOn(_ENV["layout"..当前ui]) _ENV["jm"..当前ui]:setBackground(slcta) end) end 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 YoYoImpl = luajava.getYoYoImpl() function 隐藏() luajava.runUiThread ( function ( ) if tonumber ( tostring ( chuangk: getVisibility ( ) ) ) == 8.0 then 显示=1 chuangk : setVisibility ( View.VISIBLE ) control2 : setVisibility ( View.GONE ) changan.controlBig ( floatWindow , 250 ) else 显示=0 chuangk : setVisibility ( View.GONE ) control2 : setVisibility ( View.VISIBLE ) changan.controlWater ( floatWindow , 300 ) end end ) end function adView(tmp,x) local function invoke() _ENV[tmp]:addView(x) end luajava.post(invoke) end 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音调的声音 } 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 function jianting2() yinln = {} for i = 1,#audiotype do yinln[i] = {} yinln[i].type = audiotype[i] yinln[i].min = audi:getStreamMinVolume(audiotype[i]) yinln[i].max = audi:getStreamMaxVolume(audiotype[i]) yinln[i].now = audi:getStreamVolume(audiotype[i]) if yinln[i].now > yinl[i].now then audi:adjustStreamVolume(yinln[i].type,AudioManager.ADJUST_LOWER,0) gg.alert("up") elseif yinln[i].now < yinl[i].now then audi:adjustStreamVolume(yinln[i].type,AudioManager.ADJUST_RAISE,0) gg.alert("down\n"..yinln[i].now.."\n"..yinl[i].now) end end 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 function jianting(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].max then audi:adjustStreamVolume(yinln[i].type,AudioManager.ADJUST_LOWER,0) end if yinln[i].now > yinl[i].now then audi:setStreamVolume(yinln[i].type,yinl[i].now,0) func() end end end langj = 1 function changeLanguage() if langj<#language[1] then langj = langj+1 else langj = 1 end langt:setText(language[1][langj][1]) for i = 1,#stab do _ENV["jmt"..i]:setText(language[i][langj][2]) end end function getShape(tmp0,tmp1,tmp2,tmp3) jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(tmp0) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(tmp1) jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT) jianbians:setStroke(14,tmp3)--边框宽度和颜色 return jianbians end function getShape2(tmp0,tmp1,tmp2,tmp3) jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(tmp0) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(tmp1) jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT) jianbians:setStroke(0,tmp3)--边框宽度和颜色 return jianbians end checkbg=getShape( 45, {0xFF00FFFF,0xFFFF8AC9}, 0x802A2A) checkbga=getShape( 45, {0xFF00FFFF,0xFFFF8AC9}, 0x802A2A) checkbg1=getShape2( 45, {0xFF00FFFF,0xFFFF8AC9}, 0x802A2A) checkbg2=getShape2( 45, {0xFF00FFFF,0xFFFF8AC9}, 0x802A2A) function 开关3(name,func1,func2,nid) name=name..guid() _ENV[name] = "关" 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 luajava.runUiThread(function() luajava.getIdValue(nid.."k"):setVisibility(View.GONE) luajava.getIdValue(nid.."g"):setVisibility(View.VISIBLE) luajava.getIdValue(nid):setBackground(checkbga) end) _ENV[name] = "开" vibra:vibrate(10) pcall(func1) else luajava.runUiThread(function() luajava.getIdValue(nid.."g"):setVisibility(View.GONE) luajava.getIdValue(nid.."k"):setVisibility(View.VISIBLE) luajava.getIdValue(nid):setBackground(checkbg) end) _ENV[name] = "关" vibra:vibrate(10) pcall(func2) end end end end function launch(pkg) 隐藏() gg.setProcess(pkg) gg.sleep(500) if tostring(gg.getTargetPackage()) == pkg then gg.toast("进程已选择:"..pkg) return 0 end gg.toast("正在启动游戏...") print(gg.isPackageInstalled(pkg)) app.start(pkg) jci=0 --gg.sleep(5000) while true do gg.setProcess(pkg) gg.sleep(400) if tostring(gg.getTargetPackage()) == pkg then gg.alert("启动成功") break else jci=jci+1 if jci==14 then gg.alert("自动获取进程失败\n请手动选择游戏进程") gg.setProcessX() break end end gg.sleep(100) end end function changan.switch(name,func1,func2,yans) nid = name..guid() if not yans then yans="#ffffff" end local func = 开关3(name,func1,func2,nid) if not name then name = "未设置" end rest = luajava.loadlayout({ LinearLayout, layout_width = 'fill_parent', layout_height = "36dp", gravity = "center_vertical", { LinearLayout, layout_width = 'fill_parent', layout_height = "35dp", gravity = "center_vertical", { TextView, gravity = "top", text = name, textColor=yans, textSize="14sp", layout_weight=1, layout_width = 'match_parent', layout_marginLeft = "10dp", layout_marginRight = "10dp", }, { FrameLayout, id = luajava.newId(nid), background = checkbg, onClick = function() luajava.newThread(function() func() end):start() end, layout_width = '43dp', layout_marginRight="10dp", layout_marginLeft="-10dp", layout_height = 'wrap_content', padding="0dp", { LinearLayout, layout_gravity="left", id = luajava.newId(nid.."k"), background = checkbg1, onClick = function() luajava.newThread(function() func() end):start() end, layout_width = '21dp', layout_height = '21dp', },{ LinearLayout, visibility="gone", layout_gravity="right", id = luajava.newId(nid.."g"), background = checkbg2, onClick = function() luajava.newThread(function() func() end):start() end, layout_width = '21dp', layout_height = '21dp', } }} }) return rest end function getShape(tmp0,tmp1,tmp2,tmp3) jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(tmp0) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors({ tmp1,tmp2 }) return jianbians end function changan.text(txt,color,size) if not txt then txt = "未设置文字" end if not color then color = "#ffffff" end if not size then size = "14sp" end return luajava.loadlayout( { TextView, text = txt, textSize = size, textColor = color, layout_width="match_parent", gravity="center", }) 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]) gg.toast((name or "") .. "开启成功, 共修改"..#Table.."个值by.科比") 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 XGBase(Address,AFV) local address=0 for index,offset in ipairs(Address)do if index==1 then address=offset else address=gg.getValues({{address=address+offset,flags=4}})[1].value end end local Value,Freeze={},{} for index,value in ipairs(AFV)do local VALUE={address=address+value[3],flags=value[2],value=value[1],freeze=true} if value[4]then Freeze[#Freeze+1]=VALUE else Value[#Value+1]=VALUE end end gg.setValues(Value) gg.addListItems(Freeze) end function 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 local ALL = [==[ v1.0 -> 优化指针链条判断 v1.1 -> 添加多功能模板,可查看,修改,冻结,载入 v1.3 -> 修复了同一个so名称下有多个基址头,而只判断第一个基址头偏移的问题点 v1.4 -> 修复了在64位环境下偏移异常的问题 ]==] 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 & 0xFFFFFFFF--对值进行补位操作 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 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 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]) gg.toast((name or "") .. "开启成功, 共修改"..#Table.."个值by.科比") 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 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 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 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 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 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 -- telegram: @XZNB886 -- 仙执PUBG local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x269CDB36) 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 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("音乐配置"..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 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 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 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 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 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 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 & 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 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 & 0xFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end -- 修改内存地址的函数 function gg.edits(addr, Table, name) local Table1 = {{}, {}} for k, v in ipairs(Table) do local value = {address = addr+v[3], value = v[1], flags = v[2], freeze = v[4]} if v[4] then Table1[2][#Table1[2]+1] = value else Table1[1][#Table1[1]+1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) gg.toast((name or "") .. "开启成功, 共修改"..#Table.."个值") end swits={ } swits["第一页"]={} swits["第二页"]={} swits["第三页"]={} swits["第四页"]={} swits["第五页"]={} swits["标题"]={ {},{},{},{},{}, } function huiz() ---绘制需要全部写在这里否则会消失 draw.text('无名防人脸主频道(冲91k)', 200,150)draw.setColor('#ff0000') draw.text('@wuming78nb', 200,200)draw.setColor('#ff0000') end --悬浮窗图标链接 xfcpic ="http://pan.rlyun.asia/api/v3/file/get/60640/mmexport1700364199853.jpg?sign=WZ2u7-RDbPEwnFurNXDjuih0ZzMw0oxIGgMmk0C0-qo%3D%3A0" stab = {---初始标题 "防封", "待更新", "待更新", "游戏", "设置", } language = {--标题翻译 { { "中文","防封" }, { 'English','Players' }, { 'にほんご','プレイヤーズ' }, { '한국어','선수' }}, { { "中文","功能" }, { '英语','Functions' }, { '日语','機能メニュー' }, { '韩语','기능메뉴' }}, { { "中文","美化" }, { '英语','Beautify' }, { '日语','身なり' }, { '韩语','미화' }}, { { "中文","介绍公告" }, { '英语','Game startup area' }, { '日语','ゲーム起動エリア' }, { '韩语','게임 실행 영역' }}, { { "中文","设置" }, { '英语','Settings' }, { '日语','設定' }, { '韩语','설정' }} } swits["标题"][1][1]="防封菜单" swits["标题"][1][2]="logo和防闪过86在腾讯界面开" swits["第一页"]["第一板块"]={ changan.text(string.fromHtml("防封区")), changan.text("更新时间2026年3月29日 12:31分",nil,"14sp"), changan.switch( "选择进程", function() string.toMusic("请选择游戏进程") gg.setProcessX() end), changan.switch( "LOGO1防", function() So_RepairList("libtersafe.so", { {offset=0x51CB28, value=16512}, {offset=0x51CB68, value=16512}, {offset=0x51CB80, value=16512} }) end gg.toast("oneLOGO防开启成功") string.toMusic('oneLOGO防开启成功') end), changan.switch( "LOGO2防", function() So_RepairList("libPcdnTegTransSdk.so:bss", { {offset=0xD00, value=16512}, {offset=0xD04, value=16512}, {offset=0xD68, value=16512} }) end gg.toast("LOGO第Two套开启成功") string.toMusic("LOGO第Two套开启成功") end), changan.switch( "LOGO3防", function() string.toMusic("正在开启中") So_RepairList("libPluginCrosCurl.so", { {offset=0x7FE8, value=1014136644}, {offset=0x7FF0, value=1014136896}, {offset=0x7FF8, value=-721215457} }) end gg.toast("LOGOthree开启成功") string.toMusic("LOGOtree防开启成功") end), changan.switch( "全局离线[开/关]", function() so=gg.getRangesList('libgcloud.so')[1].start py=0xE687C setvalue(so+py,4,-698416192) draw.setColor("#00FFFF") string.toMusic('全局离线开启成功')---语音 end, function() so=gg.getRangesList('libgcloud.so')[1].start py=0xE687C setvalue(so+py,4,-702610912) string.toMusic("全局离线关闭成功") end), } swits["第一页"]["第二板块"]={ changan.text(string.fromHtml("防闪")), changan.switch( "logo防闪", function() local t = {"libanogs.so:bss", "Cb"} local tt = {0x628} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 64, freeze = true}}) gg.toast("开启成功") string.toMusic('开启成功') end), } swits["第一页"]["第三板块"]={ changan.text(string.fromHtml("过86")), changan.switch( "虚拟机过86", function() local t = {"libanogs.so:bss", "Cb"} local tt = {0x628} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 64, freeze = true}}) gg.alert("开启成功") string.toMusic('开启成功') end), } swits["标题"][2][1]="功能菜单" swits["标题"][2][2]="安全功能随便开,中危高危娱乐" swits["第二页"]["第一板块"]={ changan.text(string.fromHtml("安全功能")), changan.switch( "锁120帧", function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x469600, 0x34} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value = 120, freeze = true}}) gg.toast("开启成功") string.toMusic('开启成功') end), changan.switch( "人物上色", function() local t = {"libUE4.so:bss", "Cb"}--上色 local tt = {0x456750, 0x20, 0x48, 0x3F8} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value = 4300, freeze = true}}) gg.toast("开启成功") string.toMusic('开启成功') end), changan.switch( "子弹大小", function() OP=gg.prompt({'1至50'},{[1]='10'},{[1]='number'}) if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消") else local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0xDC8,0x50,0xF78} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = OP[1]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0xDC8,0x50,0xF7C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = OP[1]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0xDC8,0x50,0xF80} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = OP[1]}}) end gg.toast("开启成功") string.toMusic('开启成功') end), changan.switch( "声音大小", function() local m = gg.prompt({'自测 自改音量'}, {'70'}, {'text'}) if m then so=gg.getRangesList('libUE4.so')[1].start py=0X397B58C setvalue(so+py,16,m[1])--声音变大 end gg.toast("开启成功") string.toMusic('开启成功') end), changan.switch( "枪械大小", function() OP=gg.prompt({'1至10'},{[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 = {0x39AA8,0x0,0xDC8,0x50,0x580} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = OP[1]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0xDC8,0x50,0x584} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = OP[1]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0xDC8,0x50,0x588} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = OP[1]}}) end gg.toast("开启成功") string.toMusic('开启成功') end), changan.switch( "人物大小", function() local r = gg.prompt({'自改人物大小[可改小可改大]'}, {'1.0'}, {'text'}) if r then local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8, 0x0, 0x458, 0x194} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = r[1]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8, 0x0, 0x458, 0x198} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = r[1]}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8, 0x0, 0x458, 0x19C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = r[1]}}) end gg.toast("开启成功") string.toMusic('开启成功') end), changan.switch( "破解xt", function() local t = {"libxontwol.so", "Cd"} local tt = {0xD3E4} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1, freeze = true}}) local t = {"libxontwol.so", "Cd"} local tt = {0xD3E8} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1, freeze = true}}) local t = {"libxontwol.so", "Cd"} local tt = {0xD438} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1, freeze = true}}) local t = {"libxontwol.so", "Cd"} local tt = {0xD420} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 5201314, freeze = true}}) gg.alert("破解xt开启成功") string.toMusic('破解xt开启成功') end), changan.switch( "破解xdz", function() local t = {"libzoel-native.so", "Cd"} local tt = {0xD400} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 6}}) local t = {"libzoel-native.so", "Cd"} local tt = {0xD404} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 6}}) local t = {"libzoel-native.so", "Cd"} local tt = {0xD408} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 6}}) gg.alert("破解xdz开启成功") string.toMusic('破解xdz开启成功') end), changan.switch( "枪械聚点", function() so=gg.getRangesList('libUE4.so')[1].start py=0x53F6AC4 setvalue(so+py,16,8.47963525e-21) gg.toast("开启成功") string.toMusic('开启成功') end), changan.switch( "环境除雾", function() so=gg.getRangesList('libUE4.so')[1].start py=0x7A11948 gg.toast("开启成功") string.toMusic('开启成功') end), changan.switch( "人物反向", function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x1B0,0x194} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value = -1, freeze = true}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x1B0,0x198} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value = -1, freeze = true}}) gg.alert("开启成功") string.toMusic('开启成功') end), changan.switch( "人物倒立", function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8, 0x0, 0x1B0, 0x19C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = -1}}) gg.alert("开启成功") string.toMusic('开启成功') end), changan.switch( "打击特效", function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x449590, 0x30, 0x488, 0x568, 0x10} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 9999}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x449590, 0x30, 0x488, 0x568, 0x50} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 9999}}) gg.alert("开启成功") string.toMusic('开启成功') end), changan.switch( "自改广角", function() local r = gg.prompt({'自改基址超广角[推荐1.7]'}, {'1.0'}, {'text'}) local so=gg.getRangesList('libUE4.so')[1].start local offset =0x32d8ce8 setvalue(so+offset, 16, r[1]) string.toMusic('开启成功') gg.alert("开启成功") end), changan.switch( "轻微防抖", function() so=gg.getRangesList('libUE4.so')[1].start--轻微防抖 py=0x88195C4 setvalue(so+py,4,505872707) so=gg.getRangesList('libUE4.so')[1].start py=0x5FA1000 setvalue(so+py,4,1409287341) gg.alert("开启成功") string.toMusic('开启成功') end), } swits["第二页"]["第二板块"]={ changan.text(string.fromHtml("中危功能")), changan.switch( "攀爬穿墙", function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x3A1D8,0x0,0x2F0,0x1E0,0x2CC} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 999999}}) draw.setColor("#00FFFF") string.toMusic("基址攀爬穿墙开启成功") end, function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8, 0x0, 0x390, 0x58, 0x2CC} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 9999}}) gg.toast("开启成功") string.toMusic('开启成功') end), changan.switch( "枪械瞬击", function() so=gg.getRangesList('libUE4.so')[1].start--瞬击 py=0x896AB84 setvalue(so+py,16,8.95671814e-21) gg.toast("开启成功") string.toMusic('开启成功') end), changan.switch( "单发改自动[特征功能]", function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0xDC8,0x50,0xEB4} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 2306}}) gg.alert("开启成功") string.toMusic('开启成功') end), changan.switch( "跳远[开/关]", function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x39488,0x0,0x460,0x208} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 99999}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x39488,0x0,0x1010} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 7}}) gg.toast("开启成功") string.toMusic('开启成功') end, function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x39488,0x0,0x460,0x208} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 8192}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x39488,0x0,0x1010} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 1}}) gg.toast("关闭成功") string.toMusic('关闭成功') end), changan.switch( "自改范围", function() OP=gg.prompt({'40~200'},{[1]='70'},{[1]='number'}) if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消") else so=gg.getRangesList('libUE4.so')[1].start--自改范围开 py=0x3209128 setvalue(so+py,16,OP[1]) gg.toast("开启成功") string.toMusic('开启成功') end end), changan.switch( "探头路飞[开/关]", function() 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) 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 ddsl = readPointer('libUE4.so', {0xC093AA8,0x0,0x48,0x8,0x17C}, 1) --定点锁链 lhsl = readPointer('libUE4.so', {0xC4A3590,0x30,0x608,0x38}, 1) --灵魂锁链 local ttsl = readPointer('libUE4.so', {0xC093AA8,0x0,0x458,0x9B0,0x490,0x560}, 1) --探头锁链 local jznbsl = readPointer('libUE4.so', {0xC49C588,0x20,0x270}, 1)--矩阵头 --矩阵南北 local jzdxsl = readPointer('libUE4.so', {0xC49C588,0x20,0x27C}, 1)--矩阵头+C --矩阵东西 local jzsxsl = readPointer('libUE4.so', {0xC49C588,0x20,0x29C}, 1)--矩阵头+2C --矩阵上下 zbxsl = readPointer('libUE4.so', {0xC093AA8,0x0,0x1B0,0x1B0}, 1) --坐标x实体 zbysl = readPointer('libUE4.so', {0xC093AA8,0x0,0x1B0,0x1B4}, 1) --坐标y实体 zbzsl = readPointer('libUE4.so', {0xC093AA8,0x0,0x1B0,0x1B8}, 1) --坐标z实体 ttlf={} ttlf[1]={} ttlf[1].address=ttsl ttlf[1].flags=16 ttlf[2]={} ttlf[2].address=jznbsl ttlf[2].flags=16 ttlf[3]={} ttlf[3].address=jzdxsl ttlf[3].flags=16 ttlf[4]={} ttlf[4].address=jzsxsl ttlf[4].flags=16 ttlf[5]={} ttlf[5].address=zbxsl ttlf[5].flags=16 ttlf[6]={} ttlf[6].address=zbysl ttlf[6].flags=16 ttlf[7]={} ttlf[7].address=zbzsl ttlf[7].flags=16 jznb=gg.getValues(ttlf)[2].value jzdx=gg.getValues(ttlf)[3].value jzsx=gg.getValues(ttlf)[4].value zbx=gg.getValues(ttlf)[5].value zby=gg.getValues(ttlf)[6].value zbz=gg.getValues(ttlf)[7].value while(true)do tt=gg.getValues(ttlf)[1].value if tt<0 then gg.edits(ddsl, {{0, 16, 0, false}}) gg.edits(lhsl, {{0, 4, 0, false}}) if jzsx>-0.8 and jzsx<0.5 then if jznb<-0.5 and jznb>-1.2 then--南 gg.edits(zbxsl, {{zbx+100, 16, 0, true}}) gg.edits(zbysl, {{zby+280, 16, 0, true}}) gg.edits(zbzsl, {{zbz, 16, 0, true}}) gg.toast("南") else if jznb>0.5 and jznb<1.2 then--北 gg.edits(zbxsl, {{zbx-100, 16, 0, true}}) gg.edits(zbysl, {{zby-280, 16, 0, true}}) gg.edits(zbzsl, {{zbz, 16, 0, true}}) gg.toast("北") else if jzdx<-0.5 and jzdx>-1.2 then--西 gg.edits(zbxsl, {{zbx-280, 16, 0, true}}) gg.edits(zbysl, {{zby+100, 16, 0, true}}) gg.edits(zbzsl, {{zbz, 16, 0, true}}) gg.toast("西") else if jzdx>0.5 and jzdx<1.2 then--东 gg.edits(zbxsl, {{zbx+280, 16, 0, true}}) gg.edits(zbysl, {{zby-100, 16, 0, true}}) gg.edits(zbzsl, {{zbz, 16, 0, true}}) gg.toast("东") end end end end end if jzsx>0.5 then--视角上 gg.edits(zbxsl, {{zbx, 16, 0, true}}) gg.edits(zbysl, {{zby, 16, 0, true}}) gg.edits(zbzsl, {{zbz+300, 16, 0, true}}) end if jzsx<-0.8 then--视角下 gg.edits(zbxsl, {{zbx, 16, 0, true}}) gg.edits(zbysl, {{zby, 16, 0, true}}) gg.edits(zbzsl, {{zbz-300, 16, 0, true}}) end end if tt>0 then--右探头 gg.edits(ddsl, {{0, 16, 0, false}}) gg.edits(lhsl, {{0, 4, 0, false}}) if jzsx>-0.8 and jzsx<0.5 then--视角中 if jznb<-0.5 and jznb>-1.2 then--南 gg.edits(zbxsl, {{zbx-100, 16, 0, true}}) gg.edits(zbysl, {{zby+280, 16, 0, true}}) gg.edits(zbzsl, {{zbz, 16, 0, true}}) else if jznb>0.5 and jznb<1.2 then--北 gg.edits(zbxsl, {{zbx+100, 16, 0, true}}) gg.edits(zbysl, {{zby-280, 16, 0, true}}) gg.edits(zbzsl, {{zbz, 16, 0, true}}) else if jzdx>-1.2 and jzdx<-0.5 then--西 gg.edits(zbxsl, {{zbx-280, 16, 0, true}}) gg.edits(zbysl, {{zby-100, 16, 0, true}}) gg.edits(zbzsl, {{zbz, 16, 0, true}}) else if jzdx>0.5 and jzdx<1.2 then--东 gg.edits(zbxsl, {{zbx+280, 16, 0, true}}) gg.edits(zbysl, {{zby+100, 16, 0, true}}) gg.edits(zbzsl, {{zbz, 16, 0, true}}) end end end end--东南西北结束 end if jzsx>0.5 then--视角上 gg.edits(zbxsl, {{zbx, 16, 0, true}}) gg.edits(zbysl, {{zby, 16, 0, true}}) gg.edits(zbzsl, {{zbz+280, 16, 0, true}}) end--视角上结束 if jzsx<-0.8 then--视角下 gg.edits(zbxsl, {{zbx, 16, 0, true}}) gg.edits(zbysl, {{zby, 16, 0, true}}) gg.edits(zbzsl, {{zbz-280, 16, 0, true}}) end end if tt == 0 then--不探头 gg.edits(lhsl, {{1000000, 4, 0, false}}) gg.edits(ddsl, {{1, 16, 0, false}}) gg.removeListItems(ttlf) jznb=gg.getValues(ttlf)[2].value jzdx=gg.getValues(ttlf)[3].value jzsx=gg.getValues(ttlf)[4].value zbx=gg.getValues(ttlf)[5].value zby=gg.getValues(ttlf)[6].value zbz=gg.getValues(ttlf)[7].value end end draw.setColor("#00FFFF") gg.toast("开启成功") string.toMusic('开启成功') end, function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x48,0x8,0x1D8} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 8192}})--惯性 local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8, 0x0, 0x1010} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 1}}) gg.toast("关闭成功") string.toMusic('关闭成功') end), } swits["第二页"]["第三板块"]={ changan.text(string.fromHtml("高危功能")), changan.switch( "跳伞落地", function() gg.toast("将于12秒后关闭") local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8, 0x0, 0x84} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 3}}) gg.sleep(12000) local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8, 0x0, 0x84} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 1}}) draw.setColor("#00FFFF") string.toMusic('跳伞加速开启成功12秒自动关闭') gg.toast("开启成功") string.toMusic('开启成功') end), changan.switch( "灵魂高跳[开/关]", function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8, 0x0, 0x48, 0x8, 0x184} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 8000}})--高挑 local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8, 0x0, 0x1010} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 50}})--跳远 local t = {"libUE4.so:bss", "Cb"} local tt = {0x449590,0x30,0x608,0x38} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 0}})--灵魂 local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8, 0x0, 0x460, 0x22C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 999999}})--蛇皮跳跃 local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x460,0x208} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 99999}})--飞速 gg.toast("开启成功") string.toMusic('开启成功') end, function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8, 0x0, 0x48, 0x8, 0x184} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 443}})--高挑 local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8, 0x0, 0x1010} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 1}})--跳远 local t = {"libUE4.so:bss", "Cb"} local tt = {0x449590,0x30,0x608,0x38} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 1}})--灵魂 local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8, 0x0, 0x460, 0x22C} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 8192}})--蛇皮跳跃 local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x460,0x208} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 9999}})--飞速 gg.toast("关闭成功") string.toMusic('关闭成功') end), changan.switch( "加速[开/关]", function() so=gg.getRangesList('libUE4.so')[1].start--开启加速 py=0x89294B4 setvalue(so+py,16,-3.4564993e10) gg.toast("开启成功") string.toMusic('开启成功') end, function() so=gg.getRangesList('libUE4.so')[1].start--关闭加速 py=0x89294B4 setvalue(so+py,16,8.50279631e-21) gg.toast("关闭成功") string.toMusic('关闭成功') end), changan.switch( "踏空跳[开/关]", function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x84} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 0.1}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x2F0,0x40,0x160,0x170,0x0} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 5}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x528} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 99999}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x2F0,0x40,0x160,0x120,0xD0} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 70}}) OP=gg.prompt({'443到4000,飞行高度'},{[1]='1000'},{[1]='number'}) if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消") else local t = {"libUE4.so:bss", "Cb"} local tt = {0x3A1D8, 0x0, 0x48, 0x8, 0x184} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = OP[1]}}) OP=gg.prompt({'9999到999999,飞行速度'},{[1]='99999'},{[1]='number'}) if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消") else local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x460,0x208} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = OP[1]}}) so=gg.getRangesList('libUE4.so')[1].start py=0x8675E3C setvalue(so+py,16,-3.4564993e10) end end draw.setColor("#00FFFF") gg.toast("踏空跳开启成功") string.toMusic("踏空跳开启成功") end, function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x84} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 1}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x2F0,0x40,0x160,0x170,0x0} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 1}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x528} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 1.40129846e-45}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x2F0,0x40,0x160,0x120,0xD0} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 70}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x460,0x1B4} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 443}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x460,0x208} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 16, value = 8192}}) so=gg.getRangesList('libUE4.so')[1].start py=0x8675E3C setvalue(so+py,16,8.50279631e-21) gg.toast("踏空跳关闭成功") string.toMusic("踏空跳关闭成功") end), changan.switch( "无敌加速", function() local t = {"libUE4.so:bss", "Cb"} local tt = {0x39488,0x0,0xEA0,0x8C8} zs=readAdd(readAdd(getAdd('libUE4.so:bss','0x39488')+0x0)+0xEA0) so=gg.getRangesList('libUE4.so')[1].start py=0x89294B4 while(true)do if gg.isVisible(true)then gg.setVisible(false) else panduan=gg.getValues({[1]={address=zs+0x8c8,flags=4}})[1].value if panduan == "1" then local ttt = S_Pointer(t, tt, true) setvalue(so+py,16,-3.4564993e10)--开启 else setvalue(so+py,16,8.50279631e-21)--关闭 end if gg.isVisible(true) then Yk = gg.alert("检测循环时打开修改器 是否退出?","关闭","继续") gg.sleep(0) if Yk~=1 and CB~=2 then gg.setVisible(false) else end end if Yk== 1 then HOME() end end end gg.toast("挥拳加速开启成功") string.toMusic('挥拳加速开启成功') end), } swits["标题"][3][1]="美化菜单" swits["标题"][3][2]="美化裸奔即可 下载资源包使用 DIY美化切换配件即可生效" swits["第三页"]["第一板块"]={ changan.text(string.fromHtml("人物美化")), changan.switch( "局内外观", function() local UE4 = gg.getRangesList("libUE4.so") if not UE4 or #UE4 == 0 then string.toMusic("不选进程开你妈") os.exit() end local base_pointer = readPointer('libUE4.so', {0xC093AA8,0x0,0x340,0x30,0x390,0x0}, 1) local pointers = { [1] = {pointer = base_pointer + 0x3C, name = "脸部"}, [2] = {pointer = base_pointer + 0x74, name = "头发"}, [3] = {pointer = base_pointer + 0x11C, name = "衣服"}, [4] = {pointer = base_pointer + 0x154, name = "裤子"}, [5] = {pointer = base_pointer + 0x18C, name = "鞋子"}, [6] = {pointer = base_pointer + 0x1C4, name = "背包"}, [7] = {pointer = base_pointer + 0x1FC, name = "头盔"} } local config_path = gg.EXT_FILES_DIR:gsub("%lua$", "") .. "/xianzhi.ini" local config_data = loadfile(config_path) local config = config_data and config_data() if not config or #config == 0 then config = {} end local values = {} local names = {} for i, p in ipairs(pointers) do table.insert(names, p.name.."代码:") table.insert(values, config[i]) end table.insert(names, "是否修改背包和头盔") table.insert(values, config[8]) local options = gg.prompt(names, values, {"number", "number", "number", "number", "number", "number", "number", "checkbox"}) if options then gg.saveVariable(options, config_path) for i, p in ipairs(pointers) do if i==6 or i==7 or options[i]==""then else gg.edits(p.pointer-4, {{options[i], 4, 0}}, p.name) end end if options[8] then if options[6]==""then else gg.edits(pointers[6].pointer-4, {{options[6], 4, 0}}, pointers[6].name) end if options[7]==""then else gg.edits(pointers[7].pointer-4, {{options[7], 4, 0}}, pointers[7].name) end end end end, function() string.toMusic("无法关闭") end ), changan.text(""), changan.text(string.fromHtml("人物美化")), changan.switch( "Enemys info", function() end, function() end), changan.text(""), changan.text(string.fromHtml("人物美化")), changan.switch( "Enemys info", function() end, function() end), } swits["第三页"]["第二板块"]={ changan.text(string.fromHtml("通用diy美化")), changan.switch( "手持武器美化【外观 播报 击中特效】", function() gg.setConfig("冻结间隔", 0) gg.setConfig("快速冻结", 1) xianzhi = gg.prompt({"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"},nil,{"number"}) if xianzhi ~= nil then local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0x430,0x78,0x15A0} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = xianzhi[1], freeze = true}}) local t = {"libUE4.so:bss", "Cb"} local tt = {0x39AA8,0x0,0xDC8,0x50,0x9C8,0x11C} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = xianzhi[1], freeze = true}}) end end), } swits["第三页"]["第三板块"]={ changan.text(string.fromHtml("经典瞄具美化")), changan.switch( "经典瞄具美化", function() if not gg.getRangesList(("libUE4.so")) or #gg.getRangesList(("libUE4.so")) == 0 then os.exit(print(("so模块不存在 libUE4.so 请检查游戏进程是否正确?"))) end local cfg_file = gg.EXT_FILES_DIR.."/"..gg.getFile():match("[^/]+$")..'(经典配件.).lua' local chunk = loadfile(cfg_file) local cfg = nil if chunk ~= nil then cfg = chunk() end if cfg == nil then cfg = {number,true} end kb = gg.prompt({ "红点", "全息", "二倍", "四倍", "八倍", },cfg,{"text","text","text","text","text","text","text"}) if kb == nil then else gg.saveVariable(kb, cfg_file) if kb[1] == true then kb1() end if kb[2] == true then kb2() end if kb[3] == true then kb3() end if kb[4] == true then kb4() end if kb[5] == true then kb5() end if kb[6] == true then kb6() end if kb[7] == true then kb7() end a=0x0 while(a <=0xAB0) do a=a+0x10 mk=gg.getRangesList('libUE4.so')[1].start add = RUI(RUI(RUI(RUI(RUI(mk + 0xC11DFE8) + 0x548) + a) + 0x30) + 0x30) adpd = RUI(RUI(RUI(RUI(RUI(RUI(mk + 0xC11DFE8) + 0x548) + a) + 0x30) + 0x3) +0x8) +0x18 if readD(adpd) == 1000 then gg.alert("历遍完成") addListltems(add,4,0,false) break add=add end end nmsl=0x5000 while(nmsl <=0x866E218) do nmsl=nmsl+0x18 addr=RUI(add+nmsl) if readD(addr+0x58) == 203001 then setvalue(addr+0x18,4,kb[1]) end if readD(addr+0x58) == 203002 then setvalue(addr+0x18,4,kb[2]) end if readD(addr+0x58) == 203003 then setvalue(addr+0x18,4,kb[3]) end if readD(addr+0x58) == 203004 then setvalue(addr+0x18,4,kb[4]) end if readD(addr+0x58) == 203005 then setvalue(addr+0x18,4,kb[5]) end if readD(addr+0x58) == 203006 then setvalue(addr+0x18,4,kb[6]) string.toMusic('开启成功') end end end string.toMusic("重复开启即可弹出") end), } swits["第三页"]["第四板块"]={ changan.text(string.fromHtml("经典枪口美化")), changan.switch( "经典枪口美化", function() if not gg.getRangesList(("libUE4.so")) or #gg.getRangesList(("libUE4.so")) == 0 then os.exit(print(("so模块不存在 libUE4.so 请检查游戏进程是否正确?"))) end local cfg_file = gg.EXT_FILES_DIR.."/"..gg.getFile():match("[^/]+$")..'(经典枪口.).lua' local chunk = loadfile(cfg_file) local cfg = nil if chunk ~= nil then cfg = chunk() end if cfg == nil then cfg = {number,true} end kb = gg.prompt({ "步枪补偿器", "步枪消焰器", "步枪消音器", },cfg,{"text","text","text"}) if kb == nil then else gg.saveVariable(kb, cfg_file) if kb[1] == true then xz() end if kb[2] == true then xz() end if kb[3] == true then xz() end a=0x0 while(a <=0xAB0) do a=a+0x10 mk=gg.getRangesList('libUE4.so')[1].start add = RUI(RUI(RUI(RUI(RUI(mk + 0xC11DFE8) + 0x548) + a) + 0x30) + 0x30) adpd = RUI(RUI(RUI(RUI(RUI(RUI(mk + 0xC11DFE8) + 0x548) + a) + 0x30) + 0x30) +0x8) +0x18 if readD(adpd) == 1000 then gg.alert("历遍完成") addListltems(add,4,0,false) break add=add end end nmsl=0x5000 while(nmsl <=0x866E218) do nmsl=nmsl+0x18 addr=RUI(add+nmsl) if readD(addr+0x58) == 201009 then setvalue(addr+0x18,4,kb[1]) end if readD(addr+0x58) == 201010 then setvalue(addr+0x18,4,kb[2]) end if readD(addr+0x58) == 201011 then setvalue(addr+0x18,4,kb[3]) string.toMusic('枪口开启成功') end end end string.toMusic("重复开启即可弹出") end), } swits["第三页"]["第五板块"]={ changan.text(string.fromHtml("经典枪托美化")), changan.switch( "经典枪托美化", function() if not gg.getRangesList(("libUE4.so")) or #gg.getRangesList(("libUE4.so")) == 0 then os.exit(print(("so模块不存在 libUE4.so 请检查游戏进程是否正确?"))) end local cfg_file = gg.EXT_FILES_DIR.."/"..gg.getFile():match("[^/]+$")..'(经典枪托.).lua' local chunk = loadfile(cfg_file) local cfg = nil if chunk ~= nil then cfg = chunk() end if cfg == nil then cfg = {number,true} end kb = gg.prompt({ "战术枪托", "uzi枪托", },cfg,{"text","text"}) if kb == nil then else gg.saveVariable(kb, cfg_file) if kb[1] == true then xz() end if kb[2] == true then xz() end a=0x0 while(a <=0xAB0) do a=a+0x10 mk=gg.getRangesList('libUE4.so')[1].start add = RUI(RUI(RUI(RUI(RUI(mk + 0xC11DFE8) + 0x548) + a) + 0x30) + 0x30) adpd = RUI(RUI(RUI(RUI(RUI(RUI(mk + 0xC11DFE8) + 0x548) + a) + 0x30) + 0x30) +0x8) +0x18 if readD(adpd) == 1000 then gg.alert("历遍完成") addListltems(add,4,0,false) break add=add end end nmsl=0x5000 while(nmsl <=0x866E218) do nmsl=nmsl+0x18 addr=RUI(add+nmsl) if readD(addr+0x58) == 205002 then setvalue(addr+0x18,4,kb[1]) end if readD(addr+0x58) == 205001 then setvalue(addr+0x18,4,kb[2]) string.toMusic('枪托开启成功') end end end string.toMusic("重复开启即可弹出") end), } swits["第三页"]["第六板块"]={ changan.text(string.fromHtml("经典弹夹美化")), changan.switch( "经典弹夹美化", function() if not gg.getRangesList(("libUE4.so")) or #gg.getRangesList(("libUE4.so")) == 0 then os.exit(print(("so模块不存在 libUE4.so 请检查游戏进程是否正确?"))) end local cfg_file = gg.EXT_FILES_DIR.."/"..gg.getFile():match("[^/]+$")..'(经典弹夹.).lua' local chunk = loadfile(cfg_file) local cfg = nil if chunk ~= nil then cfg = chunk() end if cfg == nil then cfg = {1,true} end kb = gg.prompt({ "扩容弹夹", "快速弹夹", "快速扩容弹夹", },cfg,{"text","text","text"}) if kb == nil then else gg.saveVariable(kb, cfg_file) if kb[1] == true then xz() end if kb[2] == true then xz() end if kb[3] == true then xz() end a=0x0 while(a <=0xAB0) do a=a+0x10 mk=gg.getRangesList('libUE4.so')[1].start add = RUI(RUI(RUI(RUI(RUI(mk + 0xC11DFE8) + 0x548) + a) + 0x30) + 0x30) adpd = RUI(RUI(RUI(RUI(RUI(RUI(mk + 0xC11DFE8) + 0x548) + a) + 0x30) + 0x30) +0x8) +0x18 if readD(adpd) == 1000 then gg.alert("历遍完成") addListltems(add,4,0,false) break add=add end end nmsl=0x5000 while(nmsl <=0x866E218) do nmsl=nmsl+0x18 addr=RUI(add+nmsl) if readD(addr+0x58) == 204011 then setvalue(addr+0x18,4,kb[1]) end if readD(addr+0x58) == 204012 then setvalue(addr+0x18,4,kb[2]) end if readD(addr+0x58) == 204013 then setvalue(addr+0x18,4,kb[3]) string.toMusic('弹夹开启成功') end end end string.toMusic("重复开启即可弹出") end), } swits["标题"][4][1]="开发中" swits["标题"][4][2]="介绍公告" swits["第四页"]["第一板块"]={ } swits["第四页"]["第二板块"]={ } swits["第四页"]["第三板块"]={ } changan.menu()