local function download_resource() local loadingBox = getLoadingBox("开始下载资源文件...") loadingBox["显示"]() gg.downloadFile("https://www.lequxiang.com.cn/down.php/608fa279e62f126e7af0c57823070a48.zip","/sdcard/") file.zip("/storage/emulated/0/染丰.zip", "/storage/emulated/0/染丰/")-- 修复:file.zip(压缩包路径, 解压目录, 是否有密码(true/false), 密码, 模式"unzip") loadingBox["关闭"]() end if io.open("/storage/emulated/0/染丰/悬浮窗.png") == nil then download_resource() end RootPath='/sdcard/染丰' -- ========== 核心函数定义 ========== gg.setVisible(false) local cpp = gg.getRangesList("libil2cpp.so") if not cpp or #cpp == 0 then os.exit(gg.alert("染丰提醒您:\n\n进入辅助失败,libil2cpp.so模块不存在!\n\n请先选择逃跑吧少年游戏进程!")) end libil2cpp_so = cpp[1].start string.toMusic('欢迎老板使用染丰全火逃跑辅助,本项目由花海,青稚,倾城,小挽,小泽赞明出售') 项目名字='染丰内置' 控件颜色='27272d' 翻页选中颜色=0xffEAEDF7 翻页未选中颜色=0xffffffff rs=context:getResources():getDisplayMetrics() rs=tostring(rs) rs=string.gsub(rs,',',';') rs=string.gsub(rs,'DisplayMetrics','') load('rs='..rs)() dheight=rs.height dwidth=rs.width if tonumber(dheight)==nil then dwidth=1340 dheight=2300 end if dheight>dwidth then dheight,dwidth=dwidth,dheight end if not UI宽度 then UI宽度='350dp' end if not UI高度 then UI高度='300dp' end if not 项目名字 then 项目名字='染丰内置' end import('android.content.res.ColorStateList') gg.setVisible(false) luajava.setFloatingWindowHide(true) local material3 = require 'material3' local context=material3:getContext() import 'android.graphics.Bitmap' import 'android.renderscript.Allocation' import 'android.renderscript.Element' import 'android.renderscript.RenderScript' import 'android.renderscript.ScriptIntrinsicBlur' import 'android.graphics.Canvas' import 'android.graphics.Rect' import "android.animation.ObjectAnimator" import "android.view.animation.Animation" import "android.animation.ArgbEvaluator" import "android.animation.ValueAnimator" import "android.graphics.Color" import'com.google.android.material.divider.MaterialDivider' import'com.google.android.material.progressindicator.*' import'com.google.android.material.dialog.MaterialAlertDialogBuilder' import'com.google.android.material.tabs.TabLayout' import'com.google.android.material.tabs.TabItem' import'androidx.coordinatorlayout.widget.CoordinatorLayout' import'com.google.android.material.button.MaterialButton' import'androidx.appcompat.widget.LinearLayoutCompat' import'com.google.android.material.slider.Slider' import'com.google.android.material.materialswitch.MaterialSwitch' import'com.google.android.material.card.MaterialCardView' import'androidx.transition.Transition' import'androidx.transition.Scene' import'androidx.transition.TransitionManager' import'androidx.transition.TransitionSet' import'androidx.transition.ChangeBounds' import'androidx.transition.Fade' import'androidx.constraintlayout.motion.widget.MotionLayout' import"android.view.animation.AccelerateInterpolator" import"android.view.animation.DecelerateInterpolator" import"androidx.interpolator.view.animation.FastOutLinearInInterpolator" import"androidx.interpolator.view.animation.LinearOutSlowInInterpolator" import 'android.animation.ValueAnimator$AnimatorUpdateListener' import 'android.animation.TypeEvaluator' import 'android.graphics.PorterDuff' import 'android.graphics.PorterDuffColorFilter' changan = {} local LayoutParams = luajava.bindClass('android.view.WindowManager$LayoutParams') context:setTheme(0x7f090069) function rgb_to_hex(r,g,b) r = math.min(math.max(r, 0), 255) g = math.min(math.max(g, 0), 255) b = math.min(math.max(b, 0), 255) local hex_r = string.format("%02X", r) local hex_g = string.format("%02X", g) local hex_b = string.format("%02X", b) return hex_r .. hex_g .. hex_b end function hexToRgb(hex) hex = hex:sub(-6,-1) local r = tonumber(hex:sub(1, 2), 16) local g = tonumber(hex:sub(3, 4), 16) local b = tonumber(hex:sub(5, 6), 16) return {r, g, b} end local rgbt=hexToRgb(控件颜色) switchs={} function 获取图片(txt) txt = string.url(txt,"de") if string.find(tostring(txt),"http") ~= nil then ntxt = string.sub(string.gsub(txt,"/","-"),-10,-1) if file.length("/sdcard/Xtool/图片/"..ntxt,false)<200 then file.download(txt,"/sdcard/Xtool/图片/"..ntxt) end txt = "/sdcard/Xtool/图片/"..ntxt end return luajava.getBitmapDrawable(txt) end window = context:getSystemService("window") -- 获取窗口管理器 function getLayoutParams2() local prm = luajava.new(WindowManager.LayoutParams) layoutParams1 = prm if (Build.VERSION.SDK_INT >= 26) then -- 设置悬浮窗方式 layoutParams1.type = prm.TYPE_APPLICATION_OVERLAY else layoutParams1.type = prm.TYPE_PHONE end layoutParams1.format = PixelFormat.RGBA_8888 -- 设置背景 layoutParams1.flags = prm.FLAG_NOT_FOCUSABLE -- 焦点设置Finish layoutParams1.gravity = Gravity.CENTER -- 重力设置 layoutParams1.width = prm.MATCH_PARENT -- 布局宽度 layoutParams1.height = prm.MATCH_PARENT -- 布局高度 return layoutParams1 end 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_TOUCH_MODAL -- 焦点设置Finish layoutParams.gravity = Gravity.TOP|Gravity.LEFT -- 重力设置 layoutParams.width = LayoutParams.WRAP_CONTENT -- 布局宽度 layoutParams.height = LayoutParams.WRAP_CONTENT -- 布局高度 return layoutParams end mainLayoutParams=getLayoutParams() xfcParams = getLayoutParams() local rs=RenderScript:create(app.context) local blur=ScriptIntrinsicBlur:create(rs, Element:U8_4(rs)) blur:setRadius(25) function getBlur(bit) local input=Allocation:createFromBitmap(rs,bit) blur:setInput(input) local output=Allocation:createTyped(rs, input:getType()) blur:forEach(output) output:copyTo(bit) return bit end function View2Bitmap(view,isblur) local width = view:getMeasuredWidth() local height = view:getMeasuredHeight() if width==0 then width=1 height=1 end local bitmap = Bitmap:createBitmap(width, height, Bitmap.Config.ARGB_8888); local canvas = Canvas(bitmap) canvas:translate(-view:getScrollX(), -view:getScrollY()) view:draw(canvas) if isblur then return getBlur(bitmap) else return bitmap end end CAcontrolBig = function(control,time) luajava.runUiThread(function() 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 local dpi=context:getResources():getDisplayMetrics().densityDpi function getpx(x) if type(x)=='string' then if string.find(x,'dp') then x=string.gsub(x,'dp','') x=tonumber(x) end return x*(dpi/160) else return x end end function getdp(x) if type(x)=='number' then return x/(dpi/160)..'dp' else return x end end function getdp(x) if type(x)=='number' then return x/(dpi/160)..'dp' else return x end end hanshu = function(v, event) local view if control2==nil then view=floatWindow else if control2:isAttachedToWindow() then view=control2 else view=floatWindow end end 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) if mainLayoutParams.x<=0 then mainLayoutParams.x=0 end mainLayoutParams.y = tonumber(y) + (event:getRawY() - RawY) window:updateViewLayout(view, mainLayoutParams) elseif Action == MotionEvent.ACTION_UP then mainLayoutParams.x = tonumber(x) + (event:getRawX() - RawX) if mainLayoutParams.x<=0 then mainLayoutParams.x=0 end mainLayoutParams.y = tonumber(y) + (event:getRawY() - RawY) window:updateViewLayout(view, mainLayoutParams) if math.abs(mainLayoutParams.x-x)>=10 or math.abs(mainLayoutParams.y-y)>=10 then return true else end end end local UI宽度=getpx(UI宽度) local UI高度=getpx(UI高度) function checkimg(tmp,ii) if file.length("/sdcard/Xtool/图片/"..tmp[1],false)<200 then gg.toast("正在下载资源"..ii.."/"..#ckimg.."\n请耐心等待") file.download(tmp[2],"/sdcard/Xtool/图片/"..tmp[1]) end end ckimg = { {'aohan','https://chuxinya.top/f/J8xrsK/aohan'}, {'1655939983','https://chuxinya.top/f/K8yyt4/1655939983'}, {'hei_right','https://chuxinya.top/f/LZzVuQ/hei_right'}, {'heir','https://chuxinya.top/f/MZAnCz/heir'}, {'heix','https://chuxinya.top/f/NOBrSj/heix'}, {'classes3.dex','https://chuxinya.top/f/OgDjCv/classes3.dex'}, {'CircleImageView.dex','https://chuxinya.top/f/PjEoc3/CircleImageView.dex'}, {'Lottie.dex','https://chuxinya.top/f/QkGECo/Lottie.dex'}, {'sensor.dex','https://chuxinya.top/f/RlJAh5/sensor.dex'}, {'Shimmer.dex','https://chuxinya.top/f/VvjRtg/Shimmer.dex'}, {'Shimmer2.dex','https://chuxinya.top/f/WP0GsD/Shimmer2.dex'}, } luajava.post(function() floatWindow = { MaterialCardView, layout_height='match_parent', layout_width='match_parent', useCompatPadding=false, cardElevation='5dp', cardBackgroundColor=0xffffffff, strokeColor=0x00ffffff, onClick=function() end, onTouch=hanshu, __onCreate=function(v) v:setRadius(30) local c=ColorStateList({ {android.R.attr.state_pressed}, {-android.R.attr.state_pressed} }, { 0x00ffffff, 0x00ffffff }) v:setRippleColor(c) end, -- strokeWidth='0dp', { LinearLayout, __onFinish=function(v) _ENV['beforejz']=v end, layout_height='match_parent', layout_width='match_parent', orientation='vertical', gravity='center', { LinearProgressIndicator, indicatorTrackGapSize='0dp', trackStopIndicatorSize='0dp', id = luajava.ids['下载进度条'], layout_width = 'match_parent', layout_height = 'wrap_content', min = 0, max = #ckimg, progress=0, trackColor=0xffd7d7d7, __onFinish=function(v) v:setIndicatorColor({0xff161616, 0xff672AFF, 0xff1D8FFF}) end, }, {TextView, layout_marginTop='4dp', text='首次运行,正在下载资源...', textSize='13sp', id=luajava.ids['jzzy'], textColor='#000000', }, { LinearProgressIndicator, layout_marginTop='30dp', id = luajava.ids['加载进度条'], layout_width = 'match_parent', layout_height = 'wrap_content', indeterminate = true, __onFinish=function(v) v:setIndicatorColor({'0xFFFF4F4F', '0xFFF8BD46', '0xff1D8FFF'}) v:setIndeterminateAnimationType(0) end, }, {TextView, layout_marginTop='4dp', text=项目名字..' 启动中...', textSize='13sp', textColor='#000000', } } } mainLayoutParams.x = dwidth/4-150 mainLayoutParams.y = dheight/8 mainLayoutParams.height = UI高度 mainLayoutParams.width = UI宽度 floatWindow=luajava.loadlayout(floatWindow) CAcontrolBig(floatWindow,800) window:addView(floatWindow,mainLayoutParams) end) local cpIndicator1 = luajava.getIdView('下载进度条') for i = 1,#ckimg do checkimg(ckimg[i],i) cpIndicator1:setProgress(i, true) end luajava.runUiThread(function() luajava.getIdView('jzzy'):setText('资源检查完毕') end) local UIMAXY=getpx('154dp') local UIMAXX=getpx('280dp') animY=getpx('12dp') local ui = require('ui') local ljson = require('ljson') local shuaxin huiz = function() end function panduan(rec) fille,err = io.open(rec) if fille == nil then return false else return true end end 摇一摇=true YoYoImpl = luajava.getYoYoImpl() vibra = context:getSystemService(Context.VIBRATOR_SERVICE) import'android.hardware.*'; ---@type android.hardware.SensorEventListener local sensor = luajava.createProxy('android.hardware.SensorEventListener', { onSensorChanged = functions.debounce(function() if 摇一摇==false then return 0 end if qhkai~=0 then qhkai=0 luajava.runUiThread(function() floatWindow:setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(300):playOn(floatWindow) end) huiz() else qhkai=1 luajava.newThread(function() luajava.runUiThread(function() YoYoImpl:with("FadeOut"):duration(300):playOn(floatWindow) end) gg.sleep(400) luajava.runUiThread(function() floatWindow:setVisibility(View.GONE) end) draw.remove() end):start() gg.toast("HIDE") end end,500) }) dexloader=dex.loadfile('/sdcard/Xtool/图片/classes3.dex') MySensorManager = dexloader:loadClass('yaocn.rlyun.yaoyiyao.MySensorManager') luajava.runOnUiThread(function() MySensorManager(context, sensor) end) dex.loadfile('/sdcard/Xtool/图片/Lottie.dex') import'com.airbnb.lottie.*' 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 获取图片2(txt) txt = string.url(txt,"de") ntxt = string.sub(string.gsub(txt,"/","-"),-10,-1) if string.find(tostring(txt),"http") ~= nil then if panduan("/sdcard/Xtool/图片/"..ntxt) == false then file.download(txt,"/sdcard/Xtool/图片/"..ntxt) else if file.length("/sdcard/Xtool/图片/"..ntxt) <= 1 then file.download(txt,"/sdcard/Xtool/图片/"..ntxt) end end txt = "/sdcard/Xtool/图片/"..ntxt end return luajava.getBitmapDrawable(txt) end function getRes(x) return 获取图片("/sdcard/Xtool/图片/"..x) end function getCorner(gtvb1,gtvb3,gtvb4,gtvb5,g1,g2,g3,g4) if not gtvb4 then gtvb4 = 0 gtvb5 = 0xff000000 end local jianbians = luajava.loadlayout({GradientDrawable}) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(gtvb1) jianbians:setStroke(gtvb4,gtvb5)--边框宽度和颜色 jianbians:setCornerRadii({g1,g1,g2,g2,g3,g3,g4,g4}) return jianbians end function getBG(DrawableColor,Radius,StrokeWidth,StrokeColor) if type(DrawableColor)~='table' then DrawableColor={DrawableColor,DrawableColor} end local jianbians = luajava.loadlayout({ GradientDrawable, color = 0xff000000, gradientType = GradientDrawable.LINEAR_GRADIENT, orientation = GradientDrawable.Orientation.TOP_BOTTOM , }) jianbians:setColors(DrawableColor) jianbians:setStroke(StrokeWidth or 0,StrokeColor or 0xffffffff) if type(Radius)=='table' then jianbians:setCornerRadii({Radius[1],Radius[1],Radius[2],Radius[2],Radius[3],Radius[3],Radius[4],Radius[4]}) else jianbians:setCornerRadius(Radius or 0) end return jianbians end function getVerticalBG(gtvb1,gtvb3,gtvb4,gtvb5) if not gtvb4 then gtvb4 = 0 gtvb5 = 0xff000000 end local jianbians = luajava.loadlayout({GradientDrawable}) jianbians:setCornerRadius(gtvb3) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(gtvb1) jianbians:setStroke(gtvb4,gtvb5)--边框宽度和颜色 return jianbians end function getHorizontalBG(gtvb1,gtvb3,gtvb4,gtvb5) if not gtvb4 then gtvb4 = 0 gtvb5 = 0xff000000 end local jianbians = luajava.new(GradientDrawable) jianbians:setCornerRadius(gtvb3) jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT) jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT) jianbians:setColors(gtvb1) jianbians:setStroke(gtvb4,gtvb5)--边框宽度和颜色 return jianbians end CAcontrolFlip = function(control,time) luajava.runUiThread(function() xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotationY", { 0, 360 }) xuanzhuandonghua:setRepeatCount(0) xuanzhuandonghua:setRepeatMode(Animation.REVERSE) xuanzhuandonghua:setDuration(time) xuanzhuandonghua:start() end) end CAcontrolWater = function(control,time) luajava.runUiThread(function() 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 CAcontrolSmall = function(control,time) luajava.runUiThread(function() 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 CAcontrolBig2 = function(control,time) luajava.runUiThread(function() control:setPivotX(control:getWidth()/2) control:setPivotY(0) ObjectAnimator():ofFloat(control,"scaleX", { 0, 0.4, 0.7, 1 }):setDuration(time):start() ObjectAnimator():ofFloat(control,"scaleY", { 0, 0.1, 0.4, 1 }):setDuration(time):start() end) end CAcontrolSmall2 = function(control,time) luajava.runUiThread(function() control:setPivotX(control:getWidth()/2) control:setPivotY(0) ObjectAnimator():ofFloat(control,"scaleX", { 1, 0.7, 0.4, 0 }):setDuration(time):start() ObjectAnimator():ofFloat(control,"scaleY", { 1, 0.4, 0.1, 0 }):setDuration(time):start() end) end gg.setVisible(false) 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', string.sub(sid,1,8), string.sub(sid,10,12), string.sub(sid,21,22)) 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音调的声音 --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 local screenD=false function defaultP(x) if not screenD then screenD=x return end if x==screenD then return end screenD=x if UI高度 <= UIMAXX then UI高度 = UIMAXX end mainLayoutParams.height = UI宽度 mainLayoutParams.width = UI高度 UI高度, UI宽度 = UI宽度, UI高度 window:updateViewLayout(floatWindow, mainLayoutParams) hx = mainLayoutParams.height hy = mainLayoutParams.width if IsLandStatus == 1 then return end end suofang = function(v, event) if isLocked then hanshu(v,event) return 0 end local Action = event:getAction() if Action == MotionEvent.ACTION_DOWN then print(View2Bitmap(floatWindow,true)) isMove = false RawX = event:getRawX() RawY = event:getRawY() hx = mainLayoutParams.height hy = mainLayoutParams.width if hx == 0 or hx==-2 then hx = UIMAXX hy = UIMAXY end elseif Action == MotionEvent.ACTION_MOVE then isMove = true UI高度 = tonumber(hx) + (event:getRawY() - RawY) if UI高度 > UIMAXY then mainLayoutParams.height = UI高度 else UI高度=UIMAXY end UI宽度 = tonumber(hy) + (event:getRawX() - RawX) if UI宽度 > UIMAXX then mainLayoutParams.width = UI宽度 else UI宽度=UIMAXX end --隐藏() window:updateViewLayout(floatWindow, mainLayoutParams) elseif Action == MotionEvent.ACTION_UP then end end setOnExitListener(function() luajava.post(function() window:removeView(floatWindow) if verB~=nil then window:removeView(verB) window:removeView(horiB) end end) luajava.setFloatingWindowHide(false) luajava.setFloatingWindowHide(false) gg.setVisible(true) tuichu=1 end) pic_heir=获取图片("/sdcard/Xtool/图片/heir") pic_heiright=获取图片('/sdcard/Xtool/图片/hei_right') function CAmenu(sview) Gsview=sview pic_heix=获取图片("/sdcard/Xtool/图片/heix") PageNum=#分页名字 sview=sview huiz() local mainView2 = luajava.post(function() return luajava.loadlayout({ LinearProgressIndicator, id = luajava.ids['loading'], layout_width = 'match_parent', layout_height = '10dp', indeterminate = true, __onFinish=function(v) v:hide() v:setIndicatorColor({0xff3455FF, 0xff672AFF, 0xff1D8FFF}) v:setIndeterminateAnimationType(0) end, }) end) local dp20=getpx('20dp') local dp60=getpx('dp60') local dp130=getpx('130dp') local fdp20= -dp20 menus = { LinearLayout, layout_height='match_parent', layout_width='match_parent', } for i=1,PageNum do local tmp={ LinearLayout, id=luajava.newId("layoutm"..i), orientation="vertical", layout_width="match_parent", layout_height="wrap_content", padding={'0dp','10dp','0dp','37dp'}, } table.insert(menus,{ ScrollView, __onFinish=function(v) _ENV['layout'..i]=v v:setVerticalScrollBarEnabled(false) end, padding={'90dp','0dp','10dp','0dp'}, layout_width="match_parent", layout_height="wrap_content", tmp }) end local bottombar={ LinearLayout, layout_width="wrap_content", layout_height="match_parent", layout_gravity='right', orientation='vertical', elevation='3dp', { ImageView, padding = "5dp", src = pic_heix, background=getBG(0xffffffff,90), layout_width = "20dp", layout_height = "20dp", layout_margin = "5dp", elevation='3dp', onClick = 隐藏, onTouch = hanshu, }, { LinearLayout, orientation='horizontal', gravity='left', layout_height='match_parent', layout_weight=1, layout_width='match_parent', }, { ImageView, padding = "2dp", src = getRes('1655939983'), background=getBG(0xffffffff,90), layout_width = "20dp", layout_height = "20dp", layout_margin = "5dp", colorFilter=0xff000000, onClick = function() end, onTouch = suofang, elevation='3dp', } } CAcolorf = function(control,colors,t) control:post(function() colorAnim = ObjectAnimator:ofInt(control,"colorFilter", colors) colorAnim:setDuration(t) colorAnim:setEvaluator(ArgbEvaluator()) colorAnim:setRepeatCount(ValueAnimator.INFINITE) colorAnim:setRepeatMode(ValueAnimator.REVERSE) end) end local cebian={ LinearLayout, orientation='vertical', layout_height='match_parent', layout_width='match_parent', gravity='center_horizontal', } slctb=getBG(翻页未选中颜色,15) slcta=getBG(翻页选中颜色,15) function getTimeStamp(t) local str = os.date("%H:%M:%S ",t) return str end for i = 1,#分页名字 do table.insert(cebian,{ LinearLayout, layout_height = "wrap_content", layout_width = "match_parent", layout_marginTop = "1dp", layout_marginBottom = "1dp", onClick = function() 切换(i) end, { LinearLayout, id='jmp'..i, background=slctb, gravity = "center_vertical", elevation='2dp', layout_margin='3dp', layout_height = "24dp", layout_width = "match_parent", layout_weight=1, { MaterialCardView, layout_width='18dp', layout_height='18dp', useCompatPadding=false, layout_margin='3dp', cardElevation='5dp', cardBackgroundColor=0xffffffff, strokeColor=0x00ffffff, onClick=function() end, __onCreate=function(v) v:setRadius(10) local c=ColorStateList({{android.R.attr.state_pressed},{-android.R.attr.state_pressed}}, {0x00ffffff,0x00ffffff}) v:setRippleColor(c) end, { ImageView, layout_width='match_parent', layout_height='match_parent', gravity='center', src=获取图片(左上角头像), }, }, { TextView, text = 分页名字[i], gravity = "center", elevation='2dp', textSize = "10sp", textColor = "#000000", layout_height = "match_parent", layout_width = "match_parent", layout_weight=1, } } }) end local cebian={ ScrollView, layout_width='match_parent', layout_height='match_parent', orientation='horizontal', gravity='left', cebian } local cebian={ LinearLayout, layout_width='match_parent', layout_weight=1, layout_height='match_parent', orientation='vertical', gravity='center_horizontal', cebian } local menui=luajava.loadlayout({ FrameLayout,--菜单 layout_height = "match_parent", layout_width = "match_parent", gravity = "center_horizontal", onClick = function() end, onTouch = hanshu, {LinearLayout, layout_height='match_parent', layout_width='match_parent', {FrameLayout, layout_height='match_parent', layout_width='match_parent', menus, }}, { LinearLayout, layout_width='80dp', layout_height='match_parent', orientation='vertical', gravity='center', background='#ffffff', onClick=function(v) end, onTouch=hanshu, { LinearLayout, layout_width='match_parent', layout_height='match_parent', orientation='vertical', gravity='center_horizontal', layout_margin='5dp', elevation='4dp', background=getBG(0xffffffff,20), { MaterialCardView, layout_width='50dp', layout_height='50dp', useCompatPadding=false, layout_margin='5dp', cardElevation='5dp', cardBackgroundColor=0xffffffff, strokeColor=0x00ffffff, onClick=隐藏, onTouch=hanshu, __onCreate=function(v) v:setRadius(20) local c=ColorStateList({{android.R.attr.state_pressed},{-android.R.attr.state_pressed}}, {0x00ffffff,0x00ffffff}) v:setRippleColor(c) end, { ImageView, layout_width='match_parent', layout_height='match_parent', gravity='center', background=获取图片(左上角头像), }, { TextView, layout_width='match_parent', layout_height='10dp', gravity='center', textSize='7sp', textColor='#000000', background='#ffffffff', layout_gravity='bottom', text=左上角标题, }, }, { LinearLayout, layout_width='match_parent', layout_height='wrap_content', orientation='horizontal', gravity='center_vertical', { ImageView, layout_width='12dp', layout_height='12dp', gravity='center', src=获取图片('https://chuxinya.top/f/XQlEtO/4256ec.png'), }, { TextView, layout_width='wrap_content', layout_height='wrap_content', gravity='center', textSize='8sp', textColor='#000000', text='染丰为您保驾护航宝子们稳定奔放吧', ellipsize='marquee', singleLine=true, focusable=true, scrollHorizontally=true, __onFinish=function(v) v:setSelected(true) end, }, }, cebian, { LinearLayout, layout_width='match_parent', layout_height='1dp', background='#11161616', }, { TextView, layout_width='match_parent', gravity='center', textSize='10sp', layout_marginBottom='4dp', layout_marginTop='4dp', textColor='#000000', __onFinish=function(v) timet=v luajava.startThread(function() while true do luajava.runUiThread(function() timet:setText(getTimeStamp(os.date())) end) gg.sleep(1000) end end) end, }, }, }, { LinearLayout, layout_gravity='center_horizontal|bottom', background='#dd27272A', layout_width='match_parent', --layout_height='20dp', onClick=function() end, onTouch=hanshu }, bottombar }) transManager=TransitionManager() playingjson=file.read('/sdcard/Download/Animation - 1723566050310.json') dp35=getpx('39dp') local ckou=luajava.loadlayout({ FrameLayout, id = "ckou", layout_height = "match_parent", layout_width = "match_parent", menui, }) CAloadViews(PageNum,sview) control2=luajava.loadlayout{LinearLayout, { MaterialCardView, layout_width = "40dp", layout_height = "40dp", useCompatPadding=false, cardBackgroundColor=0xffffffff, strokeColor=0x00ffffff, onClick=function() end, __onCreate=function(v) v:setRadius(25) local c=ColorStateList({{android.R.attr.state_pressed},{-android.R.attr.state_pressed}}, {0x00ffffff,0x00ffffff}) v:setRippleColor(c) end, { ImageView, background = 获取图片2(悬浮窗图标), layout_width = "40dp", layout_height = "40dp", onTouch = hanshu, onClick = 隐藏, } }, } floatmain={ FrameLayout, id='floatmain', fillViewPort=true, layout_height='match_parent', layout_width='match_parent', onClick = function() end, onTouch = hanshu, ckou, } function checkSize() end luajava.post(function() floatmain=luajava.loadlayout(floatmain) luajava.runUiThread(function() floatWindow:setPivotY(25) floatWindow:setPivotX(25) control2:setPivotY(25) control2:setPivotX(25) YoYoImpl:with("FadeIn"):duration(800):playOn(floatmain) end) local vertiParam=getLayoutParams2() vertiParam.width=0 local horiParam=getLayoutParams2() horiParam.height=0 window:addView(luajava.loadlayout({ LinearLayout, __onFinish=function(v) verB=v 切换(1) end }),vertiParam) window:addView(luajava.loadlayout({ LinearLayout, __onFinish=function(v) isVertical=true defaultP(1) horiB=v luajava.startThread(function () while true do gg.sleep(200) luajava.runUiThread(function () local Vheight=verB:getMeasuredHeight() local Vwidth=horiB:getMeasuredWidth() if Vheight>Vwidth then defaultP(1) else defaultP(0) end end) end end) end }),horiParam) floatWindow:addView(floatmain) floatWindow:removeView(beforejz) luajava.startThread(function() gg.sleep(500) luajava.runUiThread(function() floatWindow:requestFocus() mainLayoutParams.x=mainLayoutParams.x+1 window:updateViewLayout(floatWindow, mainLayoutParams) end) end) beforejz=nil end) qhkai = 0 显示 = 1 qiehuan = function() if qhkai == 0 then yinll = 0 qhkai = 1 draw.remove() gg.toast("HIDE") luajava.runUiThread(function() nowxfc2=floatWindow:isAttachedToWindow() if nowxfc2 then YoYoImpl:with("FadeOut"):duration(300):playOn(floatWindow) else YoYoImpl:with("FadeOut"):duration(300):playOn(control2) end end) gg.sleep(400) luajava.runUiThread(function() if nowxfc2 then floatWindow:setVisibility(View.GONE) else control2:setVisibility(View.GONE) end end) else qhkai = 0 yinll = 1 huiz() luajava.runUiThread(function() nowxfc2=floatWindow:isAttachedToWindow() if nowxfc2 then floatWindow:setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(300):playOn(floatWindow) else control2:setVisibility(View.VISIBLE) YoYoImpl:with("FadeIn"):duration(300):playOn(control2) end end) end end if yyfunc~=nil then yyfunc() end if ylfunc~=nil then ylfunc() end while true do if tuichu == 1 then os.exit() end if 音量键==true then jianting3(qiehuan) end gg.sleep(120) end draw.text("",0,0) gg.setVisible(false) end function 切换(x) luajava.runUiThread(function() 当前ui=x for i = 1,#分页名字 do _ENV['jmp'..i]:setBackground(slctb) _ENV['layout'..i]:setVisibility(View.GONE) end _ENV['jmp'..当前ui]:setBackground(slcta) _ENV['layout'..当前ui]:setVisibility(View.VISIBLE) end) end function 隐藏() vibra:vibrate(6) luajava.runUiThread (function () if 显示== 0 then 显示 = 1 mainLayoutParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL mainLayoutParams.height = UI高度 mainLayoutParams.width = UI宽度 if control2:isAttachedToWindow() and not floatWindow:isAttachedToWindow() then luajava.startThread(function() luajava.runUiThread(function() CAcontrolSmall(control2,600) CAcontrolBig(floatWindow,600) mainLayoutParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL mainLayoutParams.width = UI宽度 -- 布局宽度 mainLayoutParams.height = UI高度 -- 布局高度 if not floatWindow:isAttachedToWindow() then window : addView (floatWindow , mainLayoutParams) end end) gg.sleep(600) luajava.runUiThread(function() window:removeView(control2) end) zzdh=false end) end else 显示=0 zzdh=true if floatWindow:isAttachedToWindow() and not control2:isAttachedToWindow() then luajava.startThread(function() luajava.runUiThread(function() CAcontrolSmall(floatWindow,600) CAcontrolBig(control2,600) mainLayoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE mainLayoutParams.width = LayoutParams.WRAP_CONTENT -- 布局宽度 mainLayoutParams.height = LayoutParams.WRAP_CONTENT -- 布局高度 if not control2:isAttachedToWindow() then window : addView (control2 , mainLayoutParams) end end) gg.sleep(600) luajava.runUiThread(function() window:removeView(floatWindow) end) zzdh=false end) end end end) end local RadTint=ColorStateList({ {android.R.attr.state_checked}, {-android.R.attr.state_checked}, {}, }, { '0xff'..控件颜色, '0x55161616', 0xffffffff }) function CAintcheck(name,func1,func2) local nid = name..guid() local func = 开关(name,func1,func2,nid) if not name then name = "未设置" end return { LinearLayout, layout_width = 'match_parent', layout_weight=1, layout_height = "42dp", layout_marginTop = "1dp", layout_marginBottom = "1dp", padding = "1dp", { LinearLayout, padding="3dp", layout_width = 'match_parent', layout_height = "wrap_content", gravity = "center_vertical", --background=getVerticalBG({0xffFFFDF2,0xddffffff,0xffFFFDF2},15,8,0xffFFDA71), { CheckBox, id=luajava.newId(nid.."t"), layout_width = '32dp', layout_height = '32dp', padding = "0dp", __onFinish=function(v) v:setButtonTintList(RadTint) end, onClick = function() luajava.newThread(function() func() end):start() end, },{ TextView, gravity = "left", text = name, textColor=0xff000000, textSize = "14sp", layout_width = 'match_parent', layout_weight=1, onClick = function() local v=luajava.getIdView(nid..'t') if v:isChecked() then v:setChecked(false) else v:setChecked(true) end luajava.newThread(function() func() end):start() end, }, } } end CAcontrolRotation9 = function(control, time,t) luajava.runUiThread(function() xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotation", { time,t }) xuanzhuandonghua:setRepeatCount(0) xuanzhuandonghua:setRepeatMode(Animation.RESTART) xuanzhuandonghua:setDuration(400) xuanzhuandonghua:start() end) end function visi (tid) vibra:vibrate(4) if boxes[tid][5] then boxes[tid][5]=false transManager:go(boxes[tid][1],boxes[tid][4]) CAcontrolRotation9(boxes[tid][3],90,0) boxes[tid][3]:setColorFilter(0xff161616) else boxes[tid][5]=true transManager:go(boxes[tid][2],boxes[tid][4]) CAcontrolRotation9(boxes[tid][6],0,90) boxes[tid][6]:setColorFilter('0xff'..控件颜色) end end function 开关(name , func1 , func2 ) local localname=name local tname=name..guid() if func1 == nil then func1 = "" end if func2 == nil then func2 = "" end if type(func1 ) == "function" then return function() namers = _ENV [ tname ] if namers ~= "开" then _ENV [ tname ] = "开" pcall(func1 ) else _ENV [ tname ] = "关" pcall(func2 ) end end end end swfuncs,buts,sliders,boxes,textvs={},{},{},{},{} local swcDraw=ColorStateList({ {android.R.attr.state_checked}, {-android.R.attr.state_checked}, }, { '0xff'..控件颜色, 0x33d7d7d7, }) local swcThumb=ColorStateList({ {android.R.attr.state_checked}, {android.R.attr.state_pressed}, {-android.R.attr.state_pressed}, }, { 0xffffffff, '0x88'..控件颜色, 0x55161616 }) function CAgetedit (name) edit = tostring (luajava.getIdValue (_ENV [name]) : getText ()) return edit end function CAsetedit (name , txt) txt = tostring (txt) luajava.runUiThread (function () luajava.getIdValue (_ENV [name]) : setText (txt) end ) end function getButtonBG() local selector = luajava.getStateListDrawable() selector:addState({ android.R.attr.state_pressed }, getVerticalBG({0xffd7d7d7,0xffd7d7d7},20)) selector:addState({ -android.R.attr.state_pressed }, getVerticalBG({0xffffffff,0xffffffff},20)) return selector end function CAtext(text,color,size,isjz) if not color then color="#161616" end if color=='跟随主题' then color='#7F5EFF' end if isjz then jzjz='center' else jzjz='left' end return { TextView, text=text, textColor=color, textSize=size, gravity=jzjz, layout_height="wrap_content", layout_width="match_parent", autoSizeTextType="uniform", } end function CAbutton(txt,func,txtc) if not txt then txt = "未设置" end if not txtc then txtc="#000000" end if txtc=='跟随主题' then txtc='#190335' end local tid="Cbutton".. guid() return { LinearLayout, layout_width = "match_parent", gravity = "center_vertical", layout_margin = "4dp", background = getButtonBG(), elevation='2dp', padding="10dp", onClick = function(v) CAcontrolWater(v,300) luajava.newThread(func):start() end, { TextView, --id = luajava.newId(tid), textColor = txtc, text = txt, textSize = "13sp", layout_height = "wrap_content", layout_width = "match_parent", layout_weight=1, },{ImageView, src=pic_heir, layout_height="14dp", layout_width="14dp", } } end function CAswitch(name,func1,func2,miaoshu) local nid = name..guid() swfuncs[nid]= {func1,func2} if not name then name = "未设置" end local rest ={ LinearLayout, layout_width = 'match_parent', layout_height = "48dp", gravity = "center_vertical", { LinearLayout, layout_width = 'match_parent', layout_height = "40dp", layout_margin="4dp", gravity = "center_vertical", background = luajava.loadlayout { GradientDrawable , color = 0xffffffff , cornerRadius = 20}, elevation="2dp", padding = { "0dp","0dp","6dp","0dp" }, { TextView, gravity = "top", text = name, textColor = '#000000', textSize = "13sp", layout_weight = 1, layout_width = '80dp', layout_marginLeft = "10dp", layout_marginRight = "20dp", }, { TextView, gravity = "center", layout_height = "match_parent", text = miaoshu, textSize = "11sp", layout_width = "wrap_content", layout_marginLeft = "-50dp", layout_weight = 1, textColor = "#A5A5A5", }, { MaterialSwitch, id=luajava.newId(nid), __onFinish=function(v) table.insert(switchs,v) v:setTrackTintList(swcDraw) v:setThumbTintList(swcThumb) luajava.setInterface(v, 'setOnCheckedChangeListener', {onCheckedChanged=function(view,isc) if isc then local func=swfuncs[nid][1] or function() end if func~=nil then luajava.startThread(func) end else local func=swfuncs[nid][2] or function() end if func~=nil then luajava.startThread(func) end end end}) end, layout_width = 'wrap_content', layout_height = 'wrap_content', }} } return rest end function CAcheck(cklist) if #cklist==0 then return nil end local rest = { LinearLayout, layout_width = 'match_parent', layout_height = "wrap_content", gravity = "center", orientation="vertical", } for i = 1, #cklist,3 do local tempTable = {LinearLayout, layout_width = 'match_parent', layout_height = "wrap_content", gravity = "left", orientation="horizontal" } for j = 0, 2 do if cklist[i + j] ~= nil then local name = cklist[i + j][1] local func1 = cklist[i + j][2] local func2 = cklist[i + j][3] if not name then name = "未设置" end rstt = CAintcheck(name,func1,func2) table.insert(tempTable, rstt) else table.insert(tempTable, {LinearLayout, layout_width = 'match_parent', layout_weight=1,}) end end table.insert(rest, tempTable) end return rest end function CAbox(views) local tid = "box".. guid () boxes[tid]={} local firadio = { LinearLayout , layout_width = 'match_parent' , layout_height = "wrap_content" , layout_margin = "4dp" , orientation = "vertical" , background=luajava.loadlayout { GradientDrawable , color = 0xffffffff , cornerRadius = 20 }, elevation='2dp', __onFinish=function(v) boxes[tid][2]=Scene(v,boxes[tid][2]) boxes[tid][1]=Scene(v,boxes[tid][1]) boxes[tid][4]=luajava.new(TransitionSet) local bds=luajava.new(ChangeBounds) bds:setDuration(500) boxes[tid][4]:addTransition(bds) boxes[tid][4]:setDuration(500) end, } if type (views [1]) == "string" or type (views [1]) == "number" then else gg.alert ("CAbox的table内第一个元素必须是string") os.exit () end local but={ LinearLayout , layout_width = 'match_parent' , layout_height = "40dp" , gravity = "center_vertical" , layout_margin = "3dp" , background = getButtonBG(), onClick = function () visi (tid) end, { TextView , text = views [1] , textSize = "13sp" , layout_marginLeft = "15dp" , layout_width = "match_parent" , layout_weight=1, textColor = "#000000" , gravity = "left" , },{ LinearLayout , padding={"0dp","0dp","10dp","0dp"}, layout_width = "30dp" , layout_height = "30dp" , gravity = "center", { ImageView , src = pic_heiright, layout_width = "24dp" , layout_height = "24dp" , colorFilter=0xff161616 } } } boxes[tid][1]=luajava.loadlayout{ LinearLayout, layout_width='match_parent', { LinearLayout , layout_width = 'match_parent' , layout_height = "40dp" , gravity = "center_vertical" , layout_margin = "3dp" , background = getButtonBG(), onClick = function () visi (tid) end, { TextView , text = views [1] , textSize = "13sp" , layout_marginLeft = "15dp" , layout_width = "match_parent" , layout_weight=1, textColor = "#000000" , gravity = "left" , },{ LinearLayout , padding={"0dp","0dp","10dp","0dp"}, layout_width = "30dp" , layout_height = "30dp" , gravity = "center", { ImageView , src = pic_heiright, layout_width = "24dp" , layout_height = "24dp" , colorFilter=0xff161616, __onFinish=function(v) boxes[tid][3]=v end, } } } } table.insert(firadio,but) local radios = { LinearLayout, orientation = "vertical", layout_width = 'match_parent', } for i = 2 , # views do radios [# radios + 1] = views [i] end boxes[tid][2]=luajava.loadlayout{ LinearLayout, layout_width='match_parent', orientation = "vertical" , { LinearLayout , layout_width = 'match_parent' , layout_height = "40dp" , gravity = "center_vertical" , layout_margin = "3dp" , background = getButtonBG(), onClick = function () visi (tid) end, { TextView , text = views [1] , textSize = "13sp" , layout_marginLeft = "15dp" , layout_width = "match_parent" , layout_weight=1, textColor = "#000000" , gravity = "left" , },{ LinearLayout , padding={"0dp","0dp","10dp","0dp"}, layout_width = "30dp" , layout_height = "30dp" , gravity = "center", { ImageView , src = pic_heiright, layout_width = "24dp" , layout_height = "24dp" , colorFilter='0xff'..控件颜色, __onFinish=function(v) boxes[tid][6]=v end, } } }, radios } return firadio end function CAedit(name , hint) _ENV [name] = name..guid () if not hint then hint = "点击输入文字" end return { LinearLayout , layout_width = 'match_parent' , layout_height = "40dp" , layout_marginTop = "5dp" , layout_marginBottom = "5dp" , layout_marginLeft = "0dp" , layout_marginRight = "0dp" , gravity = "center_vertical" , { EditText , background = getButtonBG(), __onFinish=function(v) v:setHintTextColor(0xff545454) end, gravity = "center" , hint = hint , textColor='#000000', textSize = "13sp", layout_height = "40dp" , layout_marginBottom = "-2dp", id=luajava.newId(_ENV [name]), layout_width = 'match_parent' , } } end function CAseek(name,bian,smin,smax,nows) _ENV[bian] =nows local smin=tonumber(smin) local smax=tonumber(smax) if _ENV[bian] == nil then _ENV[bian] = 1.0 end if not name then name = "未设置" end local names = name..guid() kid=guid().."sk" return { LinearLayout, id=luajava.newId(kid), layout_width = 'match_parent', layout_hight = "match_parent", layout_marginTop = "5dp", layout_marginBottom = "5dp", gravity = "center_vertical", { TextView, padding={"5dp","10dp","0dp","10dp",}, gravity = "top", textColor='#000000', text = name, id = luajava.newId(names), layout_width = '100dp', --layout_marginLeft = "5dp", layout_marginRight = "0dp", }, { Slider, thumbHeight='23dp', trackHeight='15dp', trackStopIndicatorSize='0dp', tickVisible=false, __onFinish=function(v) table.insert(sliders,v) v:setTrackActiveTintList(ColorStateList({{},},{'0xff'..控件颜色})) v:setTrackInactiveTintList(ColorStateList({{},},{'0x55'..控件颜色})) v:setThumbTintList(ColorStateList({{},},{'0xff'..控件颜色})) luajava.setInterface(v, 'addOnChangeListener', function(SeekBar, var2, var3) _ENV[bian] = var2 end) end, layout_width = 'match_parent', id=luajava.newId(name.."seekbar"), valueFrom=smin, valueTo=smax, value=nows, stepSize=1.0, } } end function CAradio(cklist) local rest = { LinearLayout , layout_width = 'match_parent' , layout_height = "wrap_content" , gravity = "top" , orientation = "vertical" , } if type (cklist [1]) == "string" then rds=2 rest [# rest + 1] = { TextView , gravity = "left" , padding="5dp", text = cklist [1] , textSize = "13sp" , textColor = '#000000' , layout_width = 'match_parent' , layout_height = 'wrap_content' , layout_marginLeft = "10dp" , layout_marginRight = "5dp" , layout_marginTop = "0dp" , layout_marginBottom = "0dp" , } else rds=1 end local restt={ RadioGroup , layout_width = 'match_parent' , layout_height = "wrap_content" , layout_margin = "4dp" , gravity = "top" , orientation = "vertical" , elevation='2dp', background=luajava.loadlayout { GradientDrawable , color = 0xffffffff , cornerRadius = 20 }, } for i = rds , # cklist do local name = cklist [i] [1] local func = cklist [i] [2] if not name then name = "未设置" end local nid = name..guid () restt [# restt + 1] = { RadioButton , gravity = "top" , text = name , textSize="13sp", gravity='center_vertical', textColor = '#000000' , layout_width = 'match_parent' , layout_height = 'wrap_content' , layout_marginLeft = "2dp" , layout_marginRight = "2dp" , __onFinish=function(v) v:setButtonTintList(RadTint) end, onClick=function() luajava.startThread(func) end } end rest [# rest + 1] = restt return rest end function CAimage(img,height,width,pad,func) if not func then func=function() end end if not pad then pad="0dp" end if not height then height="80dp" end if not width then width="80dp" end return { LinearLayout, layout_height="wrap_content", layout_width="match_parent", gravity="center", { ImageView, layout_height=height, layout_width=width, padding=pad, src=获取图片(img), onClick=function() luajava.newThread(func):start() end, }} end function CAloadViews(PageNum) local i=1 local gsi=Gsview[i] for j=1,#gsi do if type(gsi[j])=='table' then local CreatedView CreatedView=gsi[j] local ParentV=luajava.loadlayout({LinearLayout,CreatedView}) CreatedView=ParentV:getChildAt(0) ParentV:removeView(CreatedView) local layoutm=luajava.getIdView('layoutm'..i) luajava.runUiThread(function() layoutm:addView(CreatedView) end) elseif type(gsi[j])=='userdata' then luajava.getIdView('layoutm'..i):addView(gsi[j]) end end for i=2,PageNum do local gsi=Gsview[i] luajava.startThread(function() for j=1,#gsi do if type(gsi[j])=='table' then local CreatedView CreatedView=gsi[j] local ParentV=luajava.loadlayout({LinearLayout,CreatedView}) CreatedView=ParentV:getChildAt(0) ParentV:removeView(CreatedView) local layoutm=luajava.getIdView('layoutm'..i) luajava.runUiThread(function() layoutm:addView(CreatedView) end) elseif type(gsi[j])=='userdata' then luajava.getIdView('layoutm'..i):addView(gsi[j]) end end end) end end CAcheckbox = function(views) if #views == 0 then return end -- 创建主垂直布局 local mainLayout = loadlayout({ LinearLayout, layout_width = 'fill_parent', layout_height = 'wrap_content', orientation = 'vertical' }) -- 创建横向滑动布局 local scrollView = loadlayout({ ScrollView, layout_width = 'fill_parent', layout_height = 'wrap_content', { LinearLayout, layout_width = 'fill_parent', layout_height = 'wrap_content', orientation = 'vertical', gravity = 'center', -- 居中对齐 id = 'rows_container' } }) mainLayout.addView(scrollView) -- 计算每行最多3个复选框 local buttonsPerRow = 2 local currentRow = nil local buttonsInCurrentRow = 0 for i, v in ipairs(views) do -- 每行开始时创建新的水平布局 if buttonsInCurrentRow % buttonsPerRow == 0 then currentRow = loadlayout({ LinearLayout, layout_width = "match_parent"; layout_height = 'wrap_content', orientation = 'horizontal', id = 'row_'..math.ceil(i/buttonsPerRow) }) rows_container.addView(currentRow) end local sw = loadlayout({ CheckBox; layout_width = "90dp"; -- 固定宽度 layout_height = '20dp', -- 增加高度 layout_weight = "0", buttonTintList=ColorStateList({{android.R.attr.state_checked},{-android.R.attr.state_checked}},{0xff010101,0xff010101},{0xff010101,0xff010101}), text = v[1], textSize = "12sp", -- 增加字体大小 textColor = "0xff010101", gravity = 'center_vertical', -- 文本居中 onClick = function(view) local isChecked = view.isChecked() threadStart({ run = function() if isChecked and v[2] then pcall(v[2]) -- 选中状态回调 elseif not isChecked and v[3] then pcall(v[3]) -- 取消选中状态回调 end end }) end }) local buju = loadlayout({ LinearLayout, layout_width = "wrap_content", -- 改为wrap_content layout_height = "wrap_content", layout_margin = "5dp", layout_marginLeft = "20dp", -- 所有方框都有25dp左边距 gravity = 'center', -- 内容居中 sw }) -- 添加到当前行 currentRow.addView(buju) buttonsInCurrentRow = buttonsInCurrentRow + 1 end return mainLayout end --绘制内容必须写在这里否则会消失 _ENV["ReadPointer"]=function(address) local x64 = gg.getTargetInfo().x64 local va = {[true]=32, [false]=4} local Table={{{address=address, flags=va[x64]}},{string.char(0)}} local addr = gg.getValues(Table[1]) if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF end _G[string.char(112,114,105,110,116)](Table[2][1]) addr = addr[1].value return addr end -- utf8兼容 local utf8 = utf8 or {} if not utf8.byte then function utf8.byte(str) local res = {} local i = 1 while i <= #str do local c = string.byte(str, i) local unicode if c >= 0 and c <= 127 then unicode = c; i = i + 1 elseif c >= 192 and c <= 223 then local c2 = string.byte(str, i + 1) unicode = (bit32.band(c, 31) * 64) + bit32.band(c2, 63) i = i + 2 elseif c >= 224 and c <= 239 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) unicode = (bit32.band(c, 15) * 4096) + (bit32.band(c2, 63) * 64) + bit32.band(c3, 63) i = i + 3 elseif c >= 240 and c <= 247 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) local c4 = string.byte(str, i + 3) unicode = (bit32.band(c, 7) * 262144) + (bit32.band(c2, 63) * 4096) + (bit32.band(c3, 63) * 64) + bit32.band(c4, 63) i = i + 4 else table.insert(res, nil) break end table.insert(res, unicode) end return res end end if not utf8.char then function utf8.char(...) local args = {...}; local str = "" for i, v in ipairs(args) do if v < 0 then v = v & 0xFFFFFFFF end if v <= 0x7F then str = str .. string.char(v) elseif v <= 0x7FF then str = str .. string.char(0xC0 | (v >> 6), 0x80 | (v & 0x3F)) elseif v <= 0xFFFF then str = str .. string.char(0xE0 | (v >> 12), 0x80 | ((v >> 6) & 0x3F), 0x80 | (v & 0x3F)) else str = str .. string.char(0xF0 | (v >> 18), 0x80 | ((v >> 12) & 0x3F), 0x80 | ((v >> 6) & 0x3F), 0x80 | (v & 0x3F)) end end return str end end if not utf8.len then function utf8.len(str) local len = 0 for _ in string.gmatch(str, "[%z\1-\127\194-\244][\128-\191]*") do len = len + 1 end return len end end -- S_Pointer标准指针函数 function S_Pointer(a,b,c) local r=gg.getRangesList(a[1]) local d=gg.getTargetInfo().x64 local e={[true]=32,[false]=4} local f=r[a[2]or 1].start+b[1] for i=2,#b do f=gg.getValues({{address=f,flags=e[d]}})[1].value if not d then f=f&0xFFFFFFFF end f=f+b[i] end return c and f or gg.getValues({{address=f,flags=e[d]}})[1].value end -- BaseAddress系列 function BaseAddressY(address, value) so = gg.getRangesList('libil2cpp.so')[3].start gg.setValues({{address = so + address, flags = 4, value = value}}) end function BaseAddressD(address, value) so = gg.getRangesList('libil2cpp.so')[3].start gg.setValues({ {address = so + address, flags = 4, value = value}, {address = so + address + 0x4, flags = 4, value = -698416192} }) end function BaseAddressF(address, value) so = gg.getRangesList('libil2cpp.so')[3].start gg.setValues({{address = so + address, flags = 16, value = value}}) end function BaseAddressYYY(address, value) so = gg.getRangesList('libil2cpp.so')[1].start gg.setValues({{address = so + address, flags = 4, value = value}}) end function BaseAddressXZ(address, value) so = gg.getRangesList('libil2cpp.so')[3].start gg.setValues({ {address = so + address, flags = 4, value = value}, {address = so + address + 0x4, flags = 4, value = -1459329030} }) end function BaseAddressXZN(address, value) so = gg.getRangesList('libil2cpp.so')[3].start gg.setValues({ {address = so + address, flags = 4, value = value}, {address = so + address + 0x4, flags = 4, value = -1459520515} }) end function gg.edits(addr, Table, name) if not addr then gg.toast('修改失败') return end 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 table.insert(Table1[2], value) else table.insert(Table1[1], value) end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) end -- fastsearch function fastsearch(search, write, name) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast((name or "").."修改失败") return false end local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast((name or "").."共修改"..(#tb[1]+#tb[2]).."条") else gg.toast((name or "").."修改失败") end end -- xqmnb 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) gg.toast(Search[2].name..'开启成功,共修改'..sum..'条') gg.clearResults() end -- getcpp function getcpp() local cdx, xax for k, v in ipairs(gg.getRangesList("libil2cpp.so")) do local cd = gg.getValues({{address = gg.getValues({{address = v.start, flags = 32}})[1].value, flags = 4}})[1].value if cd ~= "1179403647" and v.state == "Cd" then cdx = k end local xa = gg.getValues({{address = v.start, flags = 4}})[1].value if xa == "1179403647" and v.state == "Xa" then xax = k end end return {cd = cdx, xa = xax} end -- inject local inject = {} inject.shellcode = function(addr, code) local results = {} for i = 1, #code, 2 do table.insert(results, {address = addr + (i + 1) / 2 - 1, flags = 4, value = string.sub(code, i, i + 1) .. "h"}) end gg.setValues(results) return addr end -- 刷物相关 function Plana(prehubname, zuobx, zuoby, zuobz) qy = gg.getRangesList('libil2cpp.so')[2].start qy2 = gg.getRangesList('libil2cpp.so')[5].start libunity_base = gg.getRangesList('libunity.so')[5].start local qy3 = libunity_base + 0x4D510--分配内存页 local inject = {} inject.shellcode = function(addr, code) local results = {} for i = 1, #code, 2 do table.insert(results, {address = addr + (i + 1) / 2 - 1, flags = gg.TYPE_BYTE, value = string.sub(code, i, i + 1) .. "h"}) end gg.setValues(results) return addr -- 修正:原 return saddr 为未定义变量 end local function jz(type) local jt = gg.getRangesList(type[1])[type[3]].start local address = jt local add if type[4] == true then add = gg.addListItems else add = function() end end for k, v in pairs(type[2]) do if k == #type[2] then address = address + v add({{address = address, flags = gg.TYPE_QWORD, name = "第\b" .. k .. "\b层"}}) else address = gg.getValues({{address = address + v, flags = gg.TYPE_QWORD}})[1].value -- 修正:原 getvalue 拼写错误 end end return address end function zz(type) local address = type[1] for k, v in pairs(type[2]) do if k == #type[2] then address = address + v else address = gg.getValues({{address = address + v, flags = gg.TYPE_QWORD}})[1].value end end return address end -- 为可能缺失的 utf8 库提供兼容实现 local utf8 = utf8 or {} if not utf8.byte then function utf8.byte(str) local res = {} local i = 1 while i <= #str do local c = string.byte(str, i) local unicode if c >= 0 and c <= 127 then unicode = c i = i + 1 elseif c >= 192 and c <= 223 then local c2 = string.byte(str, i + 1) if not c2 then table.insert(res, nil); break end unicode = (bit32.band(c, 31) * 64) + bit32.band(c2, 63) i = i + 2 elseif c >= 224 and c <= 239 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) if not c2 or not c3 then table.insert(res, nil); break end unicode = (bit32.band(c, 15) * 4096) + (bit32.band(c2, 63) * 64) + bit32.band(c3, 63) i = i + 3 elseif c >= 240 and c <= 247 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) local c4 = string.byte(str, i + 3) if not c2 or not c3 or not c4 then table.insert(res, nil); break end unicode = (bit32.band(c, 7) * 262144) + (bit32.band(c2, 63) * 4096) + (bit32.band(c3, 63) * 64) + bit32.band(c4, 63) i = i + 4 else table.insert(res, nil) break end table.insert(res, unicode) end return res end end if not utf8.char then function utf8.char(...) local args = {...} local str = "" for i, v in ipairs(args) do if v < 0 then v = v & 0xFFFFFFFF end if v < 0 or v > 0x10FFFF then error("无效的Unicode码点") end if v <= 0x7F then str = str .. string.char(v) elseif v <= 0x7FF then str = str .. string.char(0xC0 | (v >> 6), 0x80 | (v & 0x3F)) elseif v <= 0xFFFF then str = str .. string.char(0xE0 | (v >> 12), 0x80 | ((v >> 6) & 0x3F), 0x80 | (v & 0x3F)) else str = str .. string.char(0xF0 | (v >> 18), 0x80 | ((v >> 12) & 0x3F), 0x80 | ((v >> 6) & 0x3F), 0x80 | (v & 0x3F)) end end return str end end if not utf8.len then function utf8.len(str) local len = 0 for _ in string.gmatch(str, "[%z\1-\127\194-\244][\128-\191]*") do len = len + 1 end return len end end local function cstr(x, address) -- 修正:原局部变量声明语法错误,已拆分 local str, addr, set addr = { {value = 0, address = 12, flags = 4}, {value = utf8.len(x), address = 0x10, flags = 4} } set = {} local bytes = utf8.byte(x) for k, v in ipairs(bytes) do addr[#addr + 1] = {address = 0x14 + (k - 1) * 2, value = v, flags = 2} end for k, v in ipairs(addr) do set[k] = {address = v.address + address, flags = v.flags, value = v.value} end gg.setValues(set) return address end local stringclass = gg.getValues({{address = qy + 0xAECF798, flags = 32}})[1].value inject.shellcode(qy + 0xA540CC4, "FF0302D1FD7B03A90002001C0102001C0202001CE303271EE403271EE503271EE603271EE1031FAAC0000058F9F78C961F2003D5FD7B43A9FF030291C0035FD6") gg.setValues({ {address = qy3, flags = 32, value = stringclass}, {address = qy + 0xA540CC4 + 0x40, flags = 32, value = qy3}, {address = qy + 0xA540CC4 + 0x48, flags = 16, value = zuobx}, {address = qy + 0xA540CC4 + 0x4C, flags = 16, value = zuoby}, {address = qy + 0xA540CC4 + 0x40, flags = 32, value = qy3}, -- 重复设置保留原样 {address = qy + 0xA540CC4 + 0x50, flags = 16, value = zuobz} }) cstr(prehubname, qy3) inject.shellcode(qy + 0x48886e4, "78E17215") gg.sleep(500) inject.shellcode(qy + 0x48886e4, "E80F1BFC") inject.shellcode(qy + 0xA540CC4, "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") end -- 改物函数 function spring(thx, thy)--1,025D;-1D;1,025D;0D;120D;1,026D;-1D;1,026D;0D;120D;1,027D;-1D;1,027D;0D return function() local k = {"libil2cpp.so", "Cd"} local kk = {0x270DD8, 0xB8, 0x780, 0x28, 0x18, thx + thy} local kkk = S_Pointer(k, kk, true) local LH = gg.getValues({{address = kkk, flags = 32}})[1].value local b = {"libil2cpp.so", "Cd"} local bb = {0x270DD8, 0xB8, 0x750, 0x28, 0x18, 0x288} local bbb = S_Pointer(b, bb, true) gg.setValues({{address = bbb, flags = 32, value = LH}}) end end function spring2(thx, thy) return function() local k = {"libil2cpp.so", "Cd"} local kk = {0x270DD8, 0xB8, 0x750, 0x28, 0x18, thx + thy} local kkk = S_Pointer(k, kk, true) local LH = gg.getValues({{address = kkk, flags = 32}})[1].value local b = {"libil2cpp.so", "Cd"} local bb = {0x270DD8, 0xB8, 0x750, 0x28, 0x18, 0x138} local bbb = S_Pointer(b, bb, true) gg.setValues({{address = bbb, flags = 32, value = LH}}) end end function spring3(thx, thy) return function() local k = {"libil2cpp.so", "Cd"} local kk = {0x270DD8, 0xB8, 0x750, 0x28, 0x18, thx} local kkk = S_Pointer(k, kk, true) local LH = gg.getValues({{address = kkk + thy, flags = 32}})[1].value local b = {"libil2cpp.so", "Cd"} local bb = {0x270DD8, 0xB8, 0x750, 0x28, 0x18, 0x288} local bbb = S_Pointer(b, bb, true) gg.setValues({{address = bbb, flags = 32, value = LH}}) end end function spring4(thx, thy) return function() local k = {"libil2cpp.so", "Cd"} local kk = {0x270DD8, 0xB8, 0x750, 0x28, 0x18, thx} local kkk = S_Pointer(k, kk, true) local LH = gg.getValues({{address = kkk + thy, flags = 32}})[1].value local b = {"libil2cpp.so", "Cd"} local bb = {0x270DD8, 0xB8, 0x750, 0x28, 0x18, 0x138} local bbb = S_Pointer(b, bb, true) gg.setValues({{address = bbb, flags = 32, value = LH}}) end end function 疾跑(thx)--120D;200D;-1D;200D;0D;120D;201D;-1D;201D;0D;120D;230D;-1D;230D;0D;120D;300D;-1D;300D;0D return function() local k = {"libil2cpp.so", "Cd"} local kk = {0x270DD8, 0xB8, 0x160, 0x28, 0x18, 0x810 + 0x1c8 + thx} local kkk = S_Pointer(k, kk, true) local LH = gg.getValues({{address = kkk, flags = 32}})[1].value local b = {"libil2cpp.so", "Cd"} local bb = {0x270DD8, 0xB8, 0x160, 0x28, 0x18, 0x810+0x1C8} local bbb = S_Pointer(b, bb, true) gg.setValues({{address = bbb, flags = 32, value = LH}}) end end --[[ function touwu(x) local inject = {} inject.shellcode = function(addr,code) local results = {} for i=1,#code,2 do table.insert(results,{address = addr + (i + 1) / 2 - 1,flags = gg.TYPE_BYTE,value = string.sub(code,i,i + 1).."h"}) end gg.setValues(results) return saddr end local ranges = gg.getRangesList('libil2cpp.so') if not ranges or #ranges == 0 then print('未找到 libmok2.so') return end local rw_base = nil local rp_list = {} for _, range in ipairs(ranges) do local addr = range.start local val = gg.getValues({{address = addr, flags = 4}}) local value = val and val[1] and val[1].value if value == 76 then rw_base = range.start elseif value == 1179403647 then table.insert(rp_list, {base = range.start}) end end if not rw_base then print('未找到 rw-p 段(值 76)') return end if #rp_list == 0 then print('未找到任何 r--p 段(值 1179403647)') return end local mok1, mok2 local unknown = {} for _, rp in ipairs(rp_list) do local distance = rw_base - rp.base if distance < 0 then distance = -distance end if distance == 0x3B0A000 then mok2 = rp.base elseif distance == 0x163DE9000 then mok1 = rp.base else table.insert(unknown, rp.base) end end if not mok1 and #unknown == 1 then mok1 = unknown[1] end function xz666(address, value) local xznb = mok2 gg.setValues({{address = xznb + address, flags = 4, value = value}}) end if not mok1 or not mok2 then print('未能同时识别出模块1和模块2,请重启游戏') if mok1 then print('模块1基址: 0x' .. string.format('%X', mok1)) else print('模块1未找到') end if mok2 then print('模块2基址: 0x' .. string.format('%X', mok2)) else print('模块2未找到') end return end a = gg.getValues({{address = mok2+0xA7F1000 + 0x274C08, flags = gg.TYPE_QWORD}})[1].value b = gg.getValues({{address = a + 0xB8, flags = gg.TYPE_QWORD}})[1].value c = gg.getValues({{address = b + 0x48, flags = gg.TYPE_QWORD}})[1].value d = gg.getValues({{address = c + 0x10, flags = gg.TYPE_QWORD}})[1].value e = gg.getValues({{address = d + 0x28, flags = gg.TYPE_QWORD}})[1].value f = gg.getValues({{address = e + 0x40, flags = gg.TYPE_QWORD}})[1].value actorid = gg.getValues({{address = f + 0x98, flags = 4}})[1].value inject.shellcode(mok2+0xA10198C,"FF0302D1FD7B02A940010058210080D22201005883010058A4010058250080D2ED090497FD7B42A9FF030291C0035FD6") gg.setValues({{address = mok2+0xA1019A0+0x30, flags = 4, value = x}}) gg.setValues({{address = mok2+0xA10198C+0x30, flags = 4, value = actorid}}) inject.shellcode(mok2+0x9CF1498,"3D411014") for fromactorid = 10001040, 10001090 do for caowei = 1, 4 do gg.setValues({{address = mok2+0xA10198C+0x34, flags = 4, value = fromactorid}}) gg.setValues({{address = mok2+0xA1019A4+0x34, flags = 4, value = caowei}}) end end inject.shellcode(mok2+0x9CF1498,"FE0F1EF8") inject.shellcode(mok2+0xA10198C,"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") end ]] -- 坐标传送 function teleport(x, y) local t = {"libil2cpp.so", "Cd"} local addr1 = S_Pointer(t, {0x274C08,0xB8, 0x48, 0x30, 0x60, 0x10, 0x60, 0xA0}, true) local addr2 = S_Pointer(t, {0x274C08,0xB8, 0x48, 0x30, 0x60, 0x10, 0x60, 0xA8}, true) gg.setValues({{address = addr1, flags = 16, value = x}, {address = addr2, flags = 16, value = y}}) end -- 段位美化 function meihua(z, b)--120D;120D;1D;0D;1D;0D;-1,849,117,088D;120D;-1,844,050,048D;120D;0D;16D;26D;0D;-383,173,504D;121D;900,001D;910,001D local t = {"libil2cpp.so", "Cd"} local addr1 = S_Pointer(t, {0x274C50, 0xB8, 0x0, 0x130, 0x28}, true) local addr2 = S_Pointer(t, {0x274C50, 0xB8, 0x0, 0x130, 0x30}, true) gg.setValues({{address = addr1, flags = 4, value = z}, {address = addr2, flags = 4, value = b}}) end function yinbi(z) local t = {"libil2cpp.so", "Cd"} local addr1 = S_Pointer(t, {0x274C50,0xB8,0x0,0x80}, true) gg.setValues({{address = addr1, flags = 4, value = z}}) end function dianquan(z) local t = {"libil2cpp.so", "Cd"} local addr1 = S_Pointer(t, {0x274C50,0xB8,0x0,0xD8}, true) gg.setValues({{address = addr1, flags = 4, value = z}}) end function zuanshi(z) local t = {"libil2cpp.so", "Cd"} local addr1 = S_Pointer(t, {0x274C50,0xB8,0x0,0xD4}, true) gg.setValues({{address = addr1, flags = 4, value = z}}) end -- 控制台功能 -- 凭空刷武/变身/刷变身道具 function createWeaponCheckbox(weaponId, weaponName) return {weaponName, function() local inject = {} inject.shellcode = function(addr, code) local results = {} for i = 1, #code, 2 do table.insert(results, {address = addr + (i + 1) / 2 - 1, flags = 4, value = string.sub(code, i, i + 1) .. "h"}) end gg.setValues(results) return addr end qy = gg.getRangesList('libil2cpp.so')[2].start BaseAddressRF(0xA540CC4, -1442839565) BaseAddressRF(0xA540CC8, 1476395105) BaseAddressRF(0xA540CCC, -1759124228)--0x6eba0bc BaseAddressRF(0xA540CD0, "F17D2517r") BaseAddressRF(0xA540CD4, weaponId) BaseAddressRF(0x6ea0474 + 0x1C, 349864461) gg.sleep(100) BaseAddressRF(0x6ea0474 + 0x1C, -1442839565) inject.shellcode(qy+0xA540CC4, "000000000000000000000000000000000000000000000000") end} end function createCharacterSkinFuncCheckbox(skinValue, skinValueName) return {skinValueName, function() local inject = {} inject.shellcode = function(addr, code) local results = {} for i = 1, #code, 2 do table.insert(results, {address = addr + (i + 1) / 2 - 1, flags = 4, value = string.sub(code, i, i + 1) .. "h"}) end gg.setValues(results) return addr end qy = gg.getRangesList('libil2cpp.so')[2].start BaseAddressRF(0xA540CC4, -1442839565) BaseAddressRF(0xA540CC8, 1476395137) BaseAddressRF(0xA540CCC, 1476395139) BaseAddressRF(0xA540Cd0, "EF222797r")--0x6f0988c BaseAddressRF(0xA540Cd4, "50202717r") BaseAddressRF(0xA540Cd8, skinValue) BaseAddressRF(0xA540Cdc, 5002) BaseAddressRF(0x6f08df8 + 0x18, "ADDFD814r") gg.sleep(500) BaseAddressRF(0x6f08df8 + 0x18, -1442839565) inject.shellcode(qy+0x10400, "000000000000000000000000000000000000000000000000") end} end function BSYCheckbox(biansheng, BSYName) return {BSYName, function() local inject = {} inject.shellcode = function(addr, code) local results = {} for i = 1, #code, 2 do table.insert(results, {address = addr + (i + 1) / 2 - 1, flags = 4, value = string.sub(code, i, i + 1) .. "h"}) end gg.setValues(results) return addr end qy = gg.getRangesList('libil2cpp.so')[2].start BaseAddressRF(0xA540CC4,'-1442839565') BaseAddressRF(0xA540CC8,'1476395105') BaseAddressRF(0xA540CCC,'C44CF696r')--0x62d3fdc BaseAddressRF(0xA540Cd0,'C81BF616r') BaseAddressRF(0xA540Cd4,biansheng) BaseAddressRF(0x62c7bd4+0x18,'36E40915r') gg.sleep(500) BaseAddressRF(0x62c7bd4+0x18,'-1442839565') inject.shellcode(qy+0xA10198C, "000000000000000000000000000000000000000000000000") end} end function gaiditu(value) local inject = {} inject.shellcode = function(addr, code) local results = {} for i = 1, #code, 2 do local offset = (i - 1) // 2 table.insert(results, { address = addr + offset, flags = 1, value = string.sub(code, i, i + 1) .. "h" }) end gg.setValues(results) return addr end local t = {"libil2cpp.so", "Cd"}; local tt = {0x274C08,0xB8,0x48,0x530}; local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=16,value=math.random(2000,9000)},{address=ttt-0x8,flags=4,value=math.random(20,30)},{address=ttt+0x14,flags=4,value=math.random(20,30)}}) local libms = gg.getRangesList('libil2cpp.so')[2].start inject.shellcode(libms + 0xA540CC4, value) inject.shellcode(libms + 0xA540CC8, "8000001C608A01BD707200B9B7350017804FC347") inject.shellcode(libms + 0x48ad93c, "000180D2C0035FD6") -- 继续玩小偷计数 inject.shellcode(libms + 0x48adf5c, "000180D2C0035FD6") -- 获取幸存小偷数量 inject.shellcode(libms + 0x48ae1c8, "000180D2C0035FD6") -- 获取逃亡小偷计数 inject.shellcode(libms + 0x654d7e8+0xbc4, "46CAFF14") -- 0x622d1ec+0xbc 0x654d7e8+0xbc4 BaseAddressRF(0x7049794, "2B040014r")--0x704a840 gg.sleep(100) BaseAddressRF(0x7049794, "EA0F1CFCr") gg.toast("开启成功") end function shuaqian(value) local inject = {} inject.shellcode = function(addr, code) local results = {} for i = 1, #code, 2 do table.insert(results, {address = addr + (i + 1) / 2 - 1, flags = 4, value = string.sub(code, i, i + 1) .. "h"}) end gg.setValues(results) return addr end so=gg.getRangesList('libil2cpp.so')[2].start BaseAddressRF(0xA540CC4,'-1442839565') BaseAddressRF(0xA540CC8,value) BaseAddressRF(0xA540CCC,'-1440807966') BaseAddressRF(0xA540Cd0,'-1440807965') BaseAddressRF(0xA540Cd4,'-1440807964') BaseAddressRF(0xA540Cd8,'-1440807962') BaseAddressRF(0xA540Cdc,'-1440807961') BaseAddressRF(0xA540Ce0,'A053F696r') --0x62d5b60 BaseAddressRF(0xA540Ce4,'C31BF616r') BaseAddressRF(0x62c7bd4+0x18,'36E40915r') gg.sleep(500) BaseAddressRF(0x62c7bd4+0x18,'-1442839565') inject.shellcode(so + 0xA540CC4, "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") gg.toast("开启成功") end -- 展示实力 function showMsg(msg) local inject={} inject.shellcode= function (addr, code) local results={} for i=1, #code, 2 do table.insert(results, {address=addr+(i+1)/2-1, flags=gg.TYPE_BYTE, value=string.sub(code, i, i+1).."h"}) end gg.setValues(results) return saddr end function utf8.byte(str) local res={} local i=1 while i<=#str do local c=string.byte(str, i) local unicode if c>=0 and c<=127 then unicode=c i=i+1 elseif c>=192 and c<=223 then local c2=string.byte(str, i+1) unicode=(bit32.band(c, 31)*64)+bit32.band(c2, 63) i=i+2 elseif c>=224 and c<=239 then local c2=string.byte(str, i+1) local c3=string.byte(str, i+2) unicode=(bit32.band(c, 15)*4096)+(bit32.band(c2, 63)*64)+bit32.band(c3, 63) i=i+3 elseif c>=240 and c<=247 then local c2=string.byte(str, i+1) local c3=string.byte(str, i+2) local c4=string.byte(str, i+3) unicode=(bit32.band(c, 7)*262144)+(bit32.band(c2, 63)*4096)+(bit32.band(c3, 63)*64)+bit32.band(c4, 63) i=i+4 else table.insert(res, nil ) break end table.insert(res, unicode) end return res end function utf8_char_from_value(value) if type(value)=="table" then local utf8_chars={} for i, value in ipairs(value) do if value<0 then value=value&0xFFFFFFFF end if value<0 or value>0x10FFFF then error("无效的Unicode码点") end end end return utf8.char(table.unpack(value)) end function cstr(x, address) local str, addr, set addr={{value=0, address=12, flags=4}, {value=utf8.len(x), address=0x10, flags=4}} set={} for k, v in ipairs(utf8.byte(x)) do addr[#addr+1]={address=0x14+(k-1)*2, value=v, flags=2} end for k, v in ipairs(addr) do set[k]={address=v.address+address, flags=v.flags, value=v.value} end gg.setValues(set) return address end qy=gg.getRangesList('libil2cpp.so')[2].start qy2=gg.getRangesList('libil2cpp.so')[5].start libunity_base = gg.getRangesList('libunity.so')[5].start local qy3 = libunity_base + 0x4D510--分配内存页 qy4=gg.getValues({{address=qy+0xAECF798, flags=32}})[1].value inject.shellcode(qy+0xA540CC4, "FF0302D1FD7B02A9C00000588DB33E97E0031FAAFD7B42A9FF030291C0035FD6")--0x74edb04 gg.setValues({{address=qy3, flags=32, value=qy4}, {address=qy+0xA540CC4+0x20, flags=32, value=qy3}}) cstr(msg,qy3) inject.shellcode(qy+0xa1307a8,"47411014") gg.sleep(100) inject.shellcode(qy+0xa1307a8,"FE0F1EF8") end function shitikm() qy=gg.getRangesList('libil2cpp.so')[2].start qy2=gg.getRangesList('libil2cpp.so')[5].start libunity_base = gg.getRangesList('libunity.so')[5].start local inject = {} inject.shellcode = function(addr,code) local results = {} for i=1,#code,2 do table.insert(results,{address = addr + (i + 1) / 2 - 1,flags = gg.TYPE_BYTE,value = string.sub(code,i,i + 1).."h"}) end gg.setValues(results) return saddr end --maybe just need relaxing OpenDoor=gg.getValues({{address = qy2+0x25CDD0, flags = 32}})[1].value inject.shellcode(qy+0xA101A8C,"FF0302D1FD7B03A9E0031FAA810080D202010058E3031FAAE4031FAA873E4597E0031FAAFD7B43A9FF030291C0035FD6")--0x72514c4 local MSG = libunity_base + 0x4D510 gg.setValues({{address = MSG, flags = 32, value = OpenDoor},{address = MSG+0x14, flags = 4, value = 1},{address = MSG+0x28, flags = 4, value = 1},{address = MSG+0x2B, flags = 1, value = "FFh"},{address = MSG+0x38, flags = 32, value = 1},{address = qy+0xA101A8C+0x30, flags = 32, value = MSG}}) inject.shellcode(qy+0x9cf1498,"7D411014") gg.sleep(200) inject.shellcode(qy+0x9cf1498,"FE0F1EF8") inject.shellcode(qy+0xA101A8C,"0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") end function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x167ba0fe) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end --- 2. 定义子弹追踪/寄生队友 local targetNames = {'关闭','一号','二号','三号','四号','五号','六号','七号','八号','九号','十号','十一号','十二号','十三号','十四号','十五号','十六号','十七号','十八号','十九号','二十号'} -- 2.1. 子弹追踪 function createTrackingFunc(targetOffset) return function() while true do local a = {"libil2cpp.so", "Cd"} local aa = {0x274C08,0x40,0x40,0xB8,0x38,0x10, targetOffset, 0x30,0x7c} local aaa = S_Pointer(a, aa, true) local zbx=gg.getValues({{address=aaa,flags =16}})[1].value local b = {"libil2cpp.so", "Cd"} local bb = {0x274C08,0x40,0x40,0xB8,0x38,0x10, targetOffset, 0x30,0x84} local bbb = S_Pointer(b, bb, true) local zby=gg.getValues({{address=bbb,flags =16}})[1].value local x = {"libil2cpp.so", "Cd"} local xx = {0x274C08,0xB8,0x48,0xc0,0xf8,0x6c} local xxx = S_Pointer(x, xx, true) gg.addListItems({{address=xxx, flags = 16, value = zbx, freeze = true}}) local y = {"libil2cpp.so", "Cd"} local yy = {0x274C08,0xB8,0x48,0xc0,0xf8,0x74} local yyy = S_Pointer(y, yy, true) gg.addListItems({{address=yyy, flags = 16, value = zby, freeze = true}}) if gg.isVisible(true) then break end end end end -- 2.2. 寄生队友 function createParasiteFunc(targetOffset) return function() while true do local a = {"libil2cpp.so", "Cd"} local aa = {0x274C08,0x40,0x40,0xB8,0x38,0x10, targetOffset, 0x30,0x7c} local aaa = S_Pointer(a, aa, true) local zbx=gg.getValues({{address=aaa,flags =16}})[1].value local b = {"libil2cpp.so", "Cd"} local bb = {0x274C08,0x40,0x40,0xB8,0x38,0x10, targetOffset, 0x30,0x84} local bbb = S_Pointer(b, bb, true) local zby=gg.getValues({{address=bbb,flags =16}})[1].value local x = {"libil2cpp.so", "Cd"} local xx = {0x274C08,0xB8,0x48,0x30,0x60,0x10,0x60,0xA0} local xxx = S_Pointer(x, xx, true) gg.addListItems({{address=xxx, flags = 16, value = zbx, freeze = true}}) local y = {"libil2cpp.so", "Cd"} local yy = {0x274C08,0xB8,0x48,0x30,0x60,0x10,0x60,0xA8} local yyy = S_Pointer(y, yy, true) gg.addListItems({{address=yyy, flags = 16, value = zby, freeze = true}}) if gg.isVisible(true) then break end end end end 左上角标题='染丰内置' 左上角头像='/storage/emulated/0/染丰/设置.jpg' 悬浮窗图标='/storage/emulated/0/染丰/设置.jpg' 分页名字={ "主页", "基址", "内存", "控制台", "刷物", "设置", } CAmenu( { {--1 luajava.loadlayout({ LinearLayout, layout_width="wrap_content", layout_height= "125dp", layout_width = "225dp", background="https://chuxinya.top/f/463lSl/background.jpg", }), CAtext('━ 染丰 ━', 0xFF4A90E2, 16), CAswitch('选择进程', function() gg.setProcessX() end), CAswitch('获取配置', function() function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _t = ti_bit and 32 or 4 local _S = nil 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 local t = {} t[#t + 1] = {address = _S.start + Offset[1], 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] = {address = S[_].value + Offset[i], 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 BaseAddressY(address, value) so = gg.getRangesList('libil2cpp.so')[3].start gg.setValues({{address = so + address, flags = 4, value = value}}) end function BaseAddressRF(address, value) so = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({{address = so + address, flags = 4, value = value}}) end function BaseAddressRFD(address, value) so = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({{address = so + address, flags = 16, value = value}}) end function BaseAddressD(address, value) so = gg.getRangesList('libil2cpp.so')[3].start gg.setValues({{address = so + address, flags = 4, value = value}, {address = so + address + 0x4, flags = 4, value = -698416192}}) end function BaseAddressF(address, value) so = gg.getRangesList('libil2cpp.so')[3].start gg.setValues({{address = so + address, flags = 16, value = value}}) end function BaseAddressYYY(address, value) so = gg.getRangesList('libil2cpp.so')[1].start gg.setValues({{address = so + address, flags = 4, value = value}}) end function BaseAddressYYYH(address, value) so = gg.getRangesList('libil2cpp.so')[3].start gg.setValues({{address = so + address, flags = 4, value = value}}) end function BaseAddressXZ(address, value) so = gg.getRangesList('libil2cpp.so')[3].start gg.setValues({{address = so + address, flags = 4, value = value}, {address = so + address + 0x4, flags = 4, value = -1459329030}}) end function BaseAddressXZN(address, value) so = gg.getRangesList('libil2cpp.so')[3].start gg.setValues({{address = so + address, flags = 4, value = value}, {address = so + address + 0x4, flags = 4, value = -1459520515}}) end function BaseAddressYD(address, value) so = gg.getRangesList('libil2cpp.so')[3].start gg.setValues({{address = so + address, flags = 4, value = value}}) end function BaseAddressDL(address, value) so = gg.getRangesList('libil2cpp.so')[3].start gg.setValues({{address = so + address, flags = 4, value = value}, {address = so + address + 0x4, flags = 4, value = -698416192}}) end function fastsearch(search, write, name) gg.setVisible(false) gg.clearResults() gg.setRanges(search[1][3]) gg.searchNumber(search[1][1], search[1][2]) if gg.getResultsCount() == 0 then gg.toast((name or "").."修改失败") return false end local result = gg.getResults(gg.getResultsCount()) gg.clearResults() for i = 2, #search do local mtp = {} for w, r in ipairs(result) do mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] } end mtp = gg.getValues(mtp) local hook = {} for w, r in ipairs(mtp) do if r.value == search[i][1] then hook[#hook + 1] = result[w] end end result = hook end if #result > 0 then local tb = {{}, {}} for i, v in ipairs(result) do for _, vv in ipairs(write) do local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]} if vv[4] then table.insert(tb[2], p) else table.insert(tb[1], p) end end end gg.addListItems(tb[2]) gg.setValues(tb[1]) gg.toast("共修改"..(#tb[1]+#tb[2]).."条结果") else gg.toast("修改失败") end end 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()) for index = 4, #Search do 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 end end end local Data, Freeze = {}, {} 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 else Data[#Data+1]=Value end end end end gg.setValues(Data) gg.addListItems(Freeze) gg.clearResults() end function XGBase(Address, AFV) local xp = gg.getRangesList('libil2cpp.so')[3].start 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 local cache = {} local function getMemoryRanges(moduleName, state, index) local cacheKey = string.format("%s_%s_%d", moduleName, state, index) if cache[cacheKey] then return cache[cacheKey] end local ranges = gg.getRangesList(moduleName .. '*$') local filteredRanges = {} for _, range in ipairs(ranges) do if string.find(state, range.state) then table.insert(filteredRanges, range) end end cache[cacheKey] = filteredRanges return filteredRanges end local function stateToPerm(state) local stateMap = { Cd = "rw-p", Cdro = "r--p", Cdx = "rwxp", Xa = "r-xp" } return stateMap[state] end local function processPointerChain(range, pointerList) local addr = (range.start + pointerList[1]) & 0xFFFFFFFFFF for i = 2, #pointerList do local values = gg.getValues({ { address = addr, flags = 32 } }) addr = (values[1].value + pointerList[i]) & 0xFFFFFFFFFF end return addr end local function QZKJ(moduleName, state, index, pointerList, value, valueType, freeze) local ranges = getMemoryRanges(moduleName, state, index) local filteredRanges = {} if state == "Cb" then filteredRanges = ranges else local perm = stateToPerm(state) for _, range in ipairs(ranges) do if range.type == perm then table.insert(filteredRanges, range) end end end if not filteredRanges[index] then local error = string.format("error:module %s[%s][%d] is not found", moduleName, state, index) print(error) return end local range = filteredRanges[index] local addr = processPointerChain(range, pointerList) local valueTable = { { address = addr, flags = valueType, freeze = freeze } } if value then valueTable[1].value = value gg.setValues(valueTable) end if freeze then gg.addListItems(valueTable) end end local function getPointerAddress(moduleName, state, index, pointerList) local ranges = getMemoryRanges(moduleName, state, index) local filteredRanges = {} if state == "Cb" then filteredRanges = ranges else local perm = stateToPerm(state) for _, range in ipairs(ranges) do if range.type == perm then table.insert(filteredRanges, range) end end end if not filteredRanges[index] then local error = string.format("error:module %s[%s][%d] is not found", moduleName, state, index) print(error) return end local range = filteredRanges[index] return processPointerChain(range, pointerList) end gg.alert("👌") end), CAtext('━ 防封区 ━', 0xFF4A90E2, 14), CAswitch('登录防[登录/大厅]', function() local t = {"libil2cpp.so", "Cd"} local tt = {0x34} local ttt = S_Pointer(t, tt, true) gg.setValues({{address = ttt, flags = 4, value = 0}}) gg.setValues({{address = ttt+0x4, flags = 4, value = 2048}}) gg.setValues({{address = ttt+0x8, flags = 4, value = 1}}) gg.alert("👌") end), CAswitch('清理列表', function() gg.clearList() gg.clearResults() local pkgs = { "com.bairimeng.dmmdzz.m7723.bazhang", "com.bairimeng.dmmdzz.qihoo", "com.bairimeng.dmmdzz.uc", "com.bairimeng.dmmdzz.vivo", "com.bairimeng.dmmdzz.m4399", "com.bairimeng.dmmdzz.meta", "com.bairimeng.dmmdzz.nearme.gamecenter", "com.bairimeng.dmmdzz.mi", "com.bairimeng.dmmdzz.huawei", "com.tencent.tmgp.bairimeng.dmmdzz", "com.bairimeng.dmmdzz.7723.cc", "com.bairimeng.dmmdzz", "com.bairimeng.dmmdzz.m7723.cc" } for _, p in ipairs(pkgs) do os.execute("su -c rm -rf /storage/emulated/0/Android/data/" .. p .. "/files/{game_log.txt,tombstone_00,tombstone_01,tombstone_02}") end gg.toast('日志清除√') gg.toast('日志清除√') end), }, {--2 CAswitch('明亮透视', function() local t = {"libil2cpp.so", "Cd"}; local tt = {0x27F578,0x238,0x8,0x1D0}; local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 16777216, freeze = true}}) end, function() gg.clearList() end), CAswitch('渲染透视', function() local t = {"libil2cpp.so", "Cd"}; local tt = {0x27F578,0x238,0x8,0x1D0}; local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 65536, freeze = true}}) end, function() gg.clearList() end), CAswitch('传送无冷', function() local t = {"libil2cpp.so", "Cd"} local tt = {0x274C08, 0xB8, 0x48, 0x298, 0x80} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = -1, freeze = true}}) end, function() gg.clearList() end), CAswitch('上帝视角', function() local t = {"libil2cpp.so", "Cd"} local tt = {0x27BA88,0xB8,0x0,0xE0} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value = 20, freeze = true}}) end, function() gg.clearList() end), CAswitch('帧率720', function() local t = {"libunity.so", "Cd"} local tt = {0x35A4} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value = 720, freeze = true}}) end, function() gg.clearList() end), CAbutton("清理列表", function() gg.clearList() gg.clearResults() local pkgs = { "com.bairimeng.dmmdzz.m7723.bazhang", "com.bairimeng.dmmdzz.qihoo", "com.bairimeng.dmmdzz.uc", "com.bairimeng.dmmdzz.vivo", "com.bairimeng.dmmdzz.m4399", "com.bairimeng.dmmdzz.meta", "com.bairimeng.dmmdzz.nearme.gamecenter", "com.bairimeng.dmmdzz.mi", "com.bairimeng.dmmdzz.huawei", "com.tencent.tmgp.bairimeng.dmmdzz", "com.bairimeng.dmmdzz.7723.cc", "com.bairimeng.dmmdzz", "com.bairimeng.dmmdzz.m7723.cc" } for _, p in ipairs(pkgs) do os.execute("su -c rm -rf /storage/emulated/0/Android/data/" .. p .. "/files/{game_log.txt,tombstone_00,tombstone_01,tombstone_02}") end gg.toast('日志清除√') gg.toast('日志清除√') end), CAtext('━ 稳定娱乐区 ━', 0xFF4A90E2, 14), CAswitch('摸金秒撤离[大厅]', function() local lib = gg.getRangesList('libil2cpp.so')[2].start local items = { {address = lib + 0x9687a28, flags = gg.TYPE_DWORD, value = -763363296, freeze = true}, {address = lib + 0x9687a28+4, flags = gg.TYPE_DWORD, value = -698416192, freeze = true}, {address = lib + 0x9687b90, flags = gg.TYPE_DWORD, value = -763363296, freeze = true}, {address = lib + 0x9687b90+4, flags = gg.TYPE_DWORD, value = -698416192, freeze = true}, {address = lib + 0x704950c, flags = gg.TYPE_DWORD, value = -763363296, freeze = true}, {address = lib + 0x704950c+4, flags = gg.TYPE_DWORD, value = -698416192, freeze = true}, } gg.addListItems(items) BaseAddressRF(0x6e67e4c,"469762112") BaseAddressRF(0x6e67e50,"-698416192") BaseAddressRF(0x6e67e54,"1128464384") BaseAddressRF(0x6e67f28,"469762112") BaseAddressRF(0x6e67f2c,"-698416192") BaseAddressRF(0x6e67f30,"1128464384") BaseAddressRF(0x6f3f094,"469762112") BaseAddressRF(0x6f3f098,"-698416192") BaseAddressRF(0x6f3f09C,"1128464384") end, function() BaseAddressY(0x3202E4C,"-1447143426") BaseAddressY(0x3202E50,"-1459531788") BaseAddressY(0x3202E54,"-268294156") BaseAddressY(0x3202F28,"-1447143426") BaseAddressY(0x3202F2C,"-1459531788") BaseAddressY(0x3202F30,"-268294156") BaseAddressY(0x32DA094,"-132247554") BaseAddressY(0x32DA098,"-1459531788") BaseAddressY(0x32DA09C,"-1878908589") BaseAddressY(0x33E450C,"-788380673") BaseAddressY(0x33E4510,"1828989931") BaseAddressY(0x5A22A28,"-788413441") BaseAddressY(0x5A22A2C,"-50328594") BaseAddressY(0x5A22B90,"-132378626") BaseAddressY(0x5A22B94,"-1459527688") end), CAswitch('激活狗洞', function() QZKJ("libil2cpp.so", "Cd", 1, { 0x432770,0x4F0,0x628,0x128 }, 999, 4, true) end, function() gg.clearList() end), CAswitch('控制分数', function() local t = {"libil2cpp.so", "Cd"}; local tt = {0x274C08,0xB8,0x48,0x530}; local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=16,value=math.random(2000,9000)},{address=ttt-0x8,flags=4,value=math.random(20,30)},{address=ttt+0x14,flags=4,value=math.random(20,30)}}) end, function() end), CAswitch('移动开物', function() local t = {"libil2cpp.so", "Cd"}--移动开物 local tt = {0x268610,0xB8,0x0,0x98,0x38} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}}) end, function() local t = {"libil2cpp.so", "Cd"}--移动开物 local tt = {0x268610,0xB8,0x0,0x98,0x38} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1, freeze = true}}) end), CAswitch("不死捐钱",function() local t = {"libil2cpp.so", "Cd",1} local tt = {0x268610, 0xB8, 0x0, 0x1A8, 0x18, 0x30} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1, freeze = true}}) local t = {"libil2cpp.so", "Cd",1} local tt = {0x268610, 0xB8, 0x0, 0x1B0, 0x18, 0x30} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1, freeze = true}}) end), CAswitch('高跳加速', function() local t = {"libil2cpp.so", "Cd"} local tt = {0x274C08,0xB8, 0x48, 0x30, 0x60, 0x10, 0x60, 0xF8} local jgtsl9 = S_Pointer(t, tt, true) gg.addListItems({{address = jgtsl9, flags = 16, value = -60, freeze = true}}) end, function() local t = {"libil2cpp.so", "Cd"} local tt = {0x274C08,0xB8, 0x48, 0x30, 0x60, 0x10, 0x60, 0xF8} local jgtsl9 = S_Pointer(t, tt, true) gg.addListItems({{address = jgtsl9, flags = 16, value = 0, freeze = true}}) end), CAswitch('丝滑穿墙', function() local t = {"libil2cpp.so", "Cd"} local tt = {0x274C08, 0xB8, 0x48, 0x30, 0x60, 0x10, 0x60,0xDC} local jgtsl9 = S_Pointer(t, tt, true) gg.addListItems({{address = jgtsl9, flags = 16, value = 999, freeze = true}}) end, function() local t = {"libil2cpp.so", "Cd"} local tt = {0x274C08, 0xB8, 0x48, 0x30, 0x60, 0x10, 0x60,0xDC} local jgtsl9 = S_Pointer(t, tt, true) gg.addListItems({{address = jgtsl9, flags = 16, value = 0, freeze = true}}) end), CAswitch('瞬移大法', function() local t = {"libil2cpp.so", "Cd"} local tt = {0x274C08,0xB8, 0x48, 0x30, 0x60, 0x10, 0x60, 0xC8}--0x34 local jgtsl9 = S_Pointer(t, tt, true) gg.addListItems({{address = jgtsl9, flags = 16, value = -60, freeze = true}}) end, function() local t = {"libil2cpp.so", "Cd"} local tt = {0x274C08,0xB8, 0x48, 0x30, 0x60, 0x10, 0x60, 0xC8} local jgtsl9 = S_Pointer(t, tt, true) gg.addListItems({{address = jgtsl9, flags = 16, value = 0, freeze = true}}) end), CAswitch('道具无冷', function() local t = {"libil2cpp.so", "Cd"} local tt = {0x274C08, 0xB8, 0x48, 0x140, 0x40} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value = 0, freeze = true}}) end, function() gg.clearList() end), CAswitch('范围开物', function() local t = {"libil2cpp.so", "Cd"} local tt = {0x274C08,0xB8,0x48,0x4A0}--4a0范围开物 local jgtsl9 = S_Pointer(t, tt, true) gg.addListItems({{address = jgtsl9, flags = 16, value = 999, freeze = true}}) end), CAswitch('猎杀队友', function() local t = {"libil2cpp.so", "Cd"} local tt = {0x274C08, 0xB8, 0x48, 0x470} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 3, freeze = true}}) end,function() local t = {"libil2cpp.so", "Cd"} local tt = {0x274C08, 0xB8, 0x48, 0x470} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 2, freeze = true}}) end), CAswitch('开物加速', function() local t = {"libil2cpp.so", "Cd"}--拆夹子加速 local tt = {0x274C08, 0xB8, 0x48, 0x148, 0x18} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value = 1, freeze = true}}) local t = {"libil2cpp.so", "Cd"}--开箱子加速 local tt = {0x274C08, 0xB8, 0x48, 0x148, 0x30} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value = 1, freeze = true}}) end,function() end), CAswitch("开物加速[快]",function() local lib = gg.getRangesList('libil2cpp.so')[2].start inject.shellcode(lib+ 0x59DA6A0,"02302F1EA22200BD")--02102C1EA22200BD end,function() local lib = gg.getRangesList('libil2cpp.so')[2].start inject.shellcode(lib+ 0x59DA6A0,"E0031FAABF2200B9") end), CAswitch("开物加速[慢]",function() local lib = gg.getRangesList('libil2cpp.so')[2].start inject.shellcode(lib+ 0x59DA6A0,"0290281EA22200BD") end,function() local lib = gg.getRangesList('libil2cpp.so')[2].start inject.shellcode(lib+ 0x59DA6A0,"E0031FAABF2200B9") end), CAswitch('无视负重', function() local lib = gg.getRangesList('libil2cpp.so')[2].start values = {{address = lib + 0x75baa40, flags = 4, value =-1006501888}} hookCode(values) local lib = gg.getRangesList('libil2cpp.so')[2].start values = {{address = lib + 0x75baa40+0x4, flags = 4, value =-698416192}} hookCode(values) end,function() local lib = gg.getRangesList('libil2cpp.so')[2].start values = {{address = lib + 0x75baa40, flags = 4, value =-788446209}} hookCode(values) local lib = gg.getRangesList('libil2cpp.so')[2].start values = {{address = lib + 0x75baa40+0x4, flags = 4, value =-50326552}} hookCode(values) end), -- 子弹追踪拉条 CAseek('子弹追踪', 'TargetIndex', 0, 20, 0), -- 子弹追踪按钮 CAbutton("执行子弹追踪", function() if TargetIndex == 0 then local i = 0 while i < 3 do local x = {"libil2cpp.so", "Cd"} local xx = {0x274C08,0xB8,0x48,0xc0,0xf8,0x6c} local xxx = S_Pointer(x, xx, true) gg.addListItems({{address=xxx, flags=16, value=zbx, freeze=false}}) local y = {"libil2cpp.so", "Cd"} local yy = {0x274C08,0xB8,0x48,0xc0,0xf8,0x74} local yyy = S_Pointer(y, yy, true) gg.addListItems({{address=yyy, flags=16, value=zby, freeze=false}}) gg.sleep(100) i = i + 1 end else local offset = 32 + (TargetIndex - 1) * 8 createTrackingFunc(offset)() end end), -- 寄生目标拉条 CAseek('寄生目标', 'ParasiteIndex', 0, 20, 0), -- 寄生目标按钮 CAbutton("执行寄生目标", function() if ParasiteIndex == 0 then local i = 0 while i < 3 do local x = {"libil2cpp.so", "Cd"} local xx = {0x274C08,0xB8,0x48,0x30,0x60,0x10,0x60,0xA0} local xxx = S_Pointer(x, xx, true) gg.addListItems({{address=xxx, flags=16, value=zbx, freeze=false}}) local y = {"libil2cpp.so", "Cd"} local yy = {0x274C08,0xB8,0x48,0x30,0x60,0x10,0x60,0xA8} local yyy = S_Pointer(y, yy, true) gg.addListItems({{address=yyy, flags=16, value=zby, freeze=false}}) gg.sleep(100) i = i + 1 end else local offset = 32 + (ParasiteIndex - 1) * 8 createParasiteFunc(offset)() end end), -- 停止追踪/寄生按钮 CAbutton("停止追踪/寄生", function() local i = 0 while i < 3 do local x = {"libil2cpp.so", "Cd"} local xx = {0x274C08,0xB8,0x48,0xc0,0xf8,0x6c} local xxx = S_Pointer(x, xx, true) gg.addListItems({{address=xxx, flags=16, value=zbx, freeze=false}}) local y = {"libil2cpp.so", "Cd"} local yy = {0x274C08,0xB8,0x48,0xc0,0xf8,0x74} local yyy = S_Pointer(y, yy, true) gg.addListItems({{address=yyy, flags=16, value=zby, freeze=false}}) local x2 = {"libil2cpp.so", "Cd"} local xx2 = {0x274C08,0xB8,0x48,0x30,0x60,0x10,0x60,0xA0} local xxx2 = S_Pointer(x2, xx2, true) gg.addListItems({{address=xxx2, flags=16, value=zbx, freeze=false}}) local y2 = {"libil2cpp.so", "Cd"} local yy2 = {0x274C08,0xB8,0x48,0x30,0x60,0x10,0x60,0xA8} local yyy2 = S_Pointer(y2, yy2, true) gg.addListItems({{address=yyy2, flags=16, value=zby, freeze=false}}) gg.sleep(100) i = i + 1 end end), CAtext('━ 弹簧改物 ━', 0xFF4A90E2, 14), CAcheck({ {"霸王龙进化", function() fastsearch({{3,16,32},{3,-20,16},{3,-8,16}},{{0,-20,16},{15,-8,16}},"") end}, {"恐龙", spring(0x138, 0x828)}, {"滑翔翼", spring(0x138, 0x750)}, {"齐天大圣", spring(0x138, 0xd08)}, {"二郎神", spring(0x138, 0xd38)}, {"嫦娥", spring(0x138, 0xd68)}, {"大便超人", spring(0x138, 0xfd8)}, {"全国可飞大炮", spring(0x138, 0xb40)}, {"指哪打哪大炮", spring(0x138, 0xb58)}, {"魔猿机甲", spring(0x138, 0xb70)}, {"飞天猪猪", spring(0x138, 0xac8)}, {"改铁拳虎", spring(0x138, 0x978)}, {"改火焰鹤", spring(0x138, 0x990)}, {"改冰封鹿", spring(0x138, 0x9a8)}, {"改神木猿", spring(0x138, 0x9c0)}, {"改石甲熊", spring(0x138, 0xbd8)}, {"改月球车", spring(0x138, 0xb88)}, {"改不知名小兵拿驽", spring(0x138, 0x1080)}, {"改不知名小兵拿矛", spring(0x138, 0x1060)}, {"飞盘", spring3(0x1188, 0x1068)}, {"摸金boos", spring3(0x1236, 0x1060)}, {"全图炮", spring3(0xc90, 0x1068)}, {"飞猪", spring3(0xC00, 0x1068)}, {"机甲螃蟹", spring3(0xbe8, 0x1068)}, {"无人机", spring3(0xbd0, 0x1068)}, {"第一人称大炮", spring3(0xbb8, 0x1068)}, {"鲨鱼", spring3(0xb70, 0x1068)}, }), CAtext('━ 皮卡改物 ━', 0xFF4A90E2, 14), CAcheck({ {"霸王龙进化", function() fastsearch({{3,16,32},{3,-20,16},{3,-8,16}},{{0,-20,16},{15,-8,16}},"") end}, {"恐龙", spring2(0x138, 0x828)}, {"滑翔翼", spring2(0x138, 0x750)}, {"齐天大圣", spring2(0x138, 0xd08)}, {"二郎神", spring2(0x138, 0xd38)}, {"嫦娥", spring2(0x138, 0xd68)}, {"大便超人", spring2(0x138, 0xfd8)}, {"全国可飞大炮", spring2(0x138, 0xb40)}, {"指哪打哪大炮", spring2(0x138, 0xb58)}, {"魔猿机甲", spring2(0x138, 0xb70)}, {"飞天猪猪", spring2(0x138, 0xac8)}, {"改铁拳虎", spring2(0x138, 0x978)}, {"改火焰鹤", spring2(0x138, 0x990)}, {"改冰封鹿", spring2(0x138, 0x9a8)}, {"改神木猿", spring2(0x138, 0x9c0)}, {"改石甲熊", spring2(0x138, 0xbd8)}, {"改月球车", spring2(0x138, 0xb88)}, {"改不知名小兵拿驽", spring2(0x138, 0x1080)}, {"改不知名小兵拿矛", spring2(0x138, 0x1060)}, {"飞盘", spring4(0x1188, 0x1068)}, {"摸金boos", spring4(0x1236, 0x1060)}, {"全图炮", spring4(0xc90, 0x1068)}, {"飞猪", spring4(0xC00, 0x1068)}, {"机甲螃蟹", spring4(0xbe8, 0x1068)}, {"无人机", spring4(0xbd0, 0x1068)}, {"第一人称大炮", spring4(0xbb8, 0x1068)}, {"鲨鱼", spring4(0xb70, 0x1068)}, }), CAtext('━ 疾跑改物 ━', 0xFF4A90E2, 14), CAcheck({ {"烟花", function() local k = {"libil2cpp.so", "Cd"}; local kk = {0x270DD8, 0xB8, 0x160, 0x28, 0x18, 0x810+0xD20+0x18+0x1c8}; local kkk = S_Pointer(k, kk, true) local LH = gg.getValues({{address=kkk,flags=32}})[1].value local b = {"libil2cpp.so", "Cd"}; local bb = {0x270DD8, 0xB8, 0x160, 0x28, 0x18, 0x810+0x1c8}; local bbb = S_Pointer(b, bb, true) gg.setValues({{address = bbb, flags = 32, value = LH}}) end}, {"无影掌", 疾跑(0xAC8+0x18+0x48+0x18)}, {"泡泡", 疾跑(0x978+0x18+0x48+0x18)}, {"泡泡2", 疾跑(0x900+0x18+0x48+0x18)}, {"弹跳板", 疾跑(0x8E8+0x18+0x48+0x18)}, {"空气掌", 疾跑(0x8D0+0x18+0x48+0x18)}, {"隐身", 疾跑(0x888+0x18+0x48+0x18)}, {"钢齿虎", 疾跑(0xC00+0x18+0x48+0x18)}, {"火焰鸟", 疾跑(0xC18+0x18+0x48+0x18)}, {"冰封鹿", 疾跑(0xC30+0x18+0x48+0x18)}, {"神木猿", 疾跑(0xC48+0x18+0x48+0x18)}, {"石甲熊", 疾跑(0xC60+0x18+0x48+0x18)}, {"小鲨鱼", 疾跑(0xC90+0x18+0x48+0x18)}, {"牢大坠机", 疾跑(0xCF0+0x18+0x48+0x18)}, {"摸金boos", 疾跑(0xD68+0x18+0x48+0x18)}, {"音乐", 疾跑(0xDB0+0x18+0x48+0x18)}, {"黄金甲", 疾跑(0xED0+0x48)}, {"阻挡箱", 疾跑(0xEE8+0x18+0x48+0x18)}, {"吸引球", 疾跑(0x798+0x18+0x48+0x18)}, {"毒药", 疾跑(0x198+0x18+0x48+0x18)}, {"变大特效", 疾跑(0x360+0x18+0x48+0x18)}, {"车轮滚滚", 疾跑(0x348+0x18+0x48+0x18)}, {"时光机", 疾跑(0x288-0x18)}, {"小飞机", 疾跑(0x270+0x18+0x48+0x18)}, {"追捕夹子", 疾跑(0xA80+0x18+0x48+0x18)}, {"动感超人", 疾跑(0xBD0+0x18+0x48+0x18)}, {"仙女下凡", 疾跑(0x5D0+0x18+0x48+0x18)}, {"医疗术", 疾跑(0x5E8+0x18+0x48+0x18)}, {"传送门", 疾跑(0x168+0x18+0x48+0x18)}, {"噗噗蛋", 疾跑(0x108+0x18+0x48+0x18)}, {"手雷", 疾跑(0x78+0x18+0x48+0x18)}, {"医疗包", 疾跑(0x90+0x18+0x48+0x18)}, {"巡逻犬", 疾跑(0xD8+0x18+0x48+0x18)}, {"震荡波", 疾跑(0x258+0x18+0x48+0x18)}, {"磁吸宝", 疾跑(0x408+0x18+0x48+0x18)}, {"侦查眼", 疾跑(0x48+0x18+0x48+0x18)}, {"加速圈", 疾跑(0x150+0x18+0x48+0x18)}, {"引力场", 疾跑(0x1E0+0x18+0x48+0x18)}, {"蹦蹦床", 疾跑(0x210+0x18+0x48+0x18)}, {"自行车", 疾跑(0x3F0+0x48)}, {"肾上腺素", 疾跑(0xF0+0x18+0x48+0x18)}, {"炸弹机", 疾跑(0xCF0+0x18+0x48+0x18)}, {"金币机", 疾跑(0x450+0x18+0x48+0x18)}, {"绵羊飞跃", 疾跑(0x390+0x18+0x48+0x18)}, {"巡航导弹", 疾跑(0x228+0x18+0x48+0x18)}, {"金钟罩", 疾跑(0xED0+0x48+0x18)}, {"飞爪", 疾跑(0x138+0x18+0x48+0x18)}, {"酒桶", 疾跑(0x120+0x18+0x48+0x18)}, {"锤子", 疾跑(0x3C0+0x18+0x48+0x18)}, {"鲨鱼", 疾跑(0xC78+0x18+0x48+0x18)}, {"飞鱼", 疾跑(0xC90+0x18+0x48+0x18)}, {"任意网", 疾跑(0x3F0-0x18-0x48)}, {"未知技能", 疾跑(0xDB0+0x18+0x48+0x18)}, {"摸金小兵", 疾跑(0xD50+0x18+0x48+0x18)}, {"摸金小怪", 疾跑(0xD80+0x18+0x48+0x18)}, }), CAtext('━ 基址传送 ━', 0xFF4A90E2, 14), CAcheck({ {"左上", function() teleport(24, 29) end}, {"左下", function() teleport(25, 2) end}, {"右上", function() teleport(62, 26) end}, {"右下", function() teleport(55, 5) end}, {"上门", function() teleport(75, 19) end}, {"下门", function() teleport(75, 11) end}, }), CAcheck({ {"左上¹", function() teleport(10, 30) end}, {"左上²", function() teleport(25, 35) end}, {"中上³", function() teleport(40, 30) end}, {"右上⁴", function() teleport(55.5, 35.5) end}, {"左中⁵", function() teleport(25, 20) end}, {"右中⁶", function() teleport(58, 16) end}, }), CAcheck({ {"左下⁷", function() teleport(33.5, 5) end}, {"中下⁸", function() teleport(50, 2.5) end}, {"右下⁹", function() teleport(70, 5) end}, {"右下¹⁰", function() teleport(85, 10) end}, {"禁闭¹", function() teleport(45, 20) end}, {"禁闭²", function() teleport(69, 28) end}, }), CAcheck({ {"上门", function() teleport(66, 33) end}, {"中门", function() teleport(72, 23) end}, {"下门", function() teleport(80, 18) end}, }), CAcheck({ {"摸金左下角撤离", function() teleport(6, 7) end}, {"摸金右下角撤离", function() teleport(227, 8) end}, }), CAtext('━ 基址美化 ━', 0xFF4A90E2, 14), CAswitch('失忆美化', function() local t = {"libil2cpp.so", "Cd"}; local tt = {0x270DD8, 0xB8, 0x40, 0x28, 0x18, 0x0}; local ttt = S_Pointer(t, tt, true) local s = gg.getValues({{address=ttt+0x1638,flags=4},{address=ttt+0x1DD0,flags=4},{address=ttt+0x1de8,flags=4},{address=ttt+0x1E00,flags=4},{address=ttt+0x1E18,flags=4}}) gg.setValues({{address=ttt+0xE58,flags=4,value=s[1].value},{address=ttt+0xE70,flags=4,value=s[2].value},{address=ttt+0xE88,flags=4,value=s[3].value},{address=ttt+0xEA0,flags=4,value=s[4].value},{address=ttt+0xEB8,flags=4,value=s[5].value}}) end, function() end), CAswitch('失忆赛罗', function() local t = {"libil2cpp.so", "Cd"}; local tt = {0x270DD8, 0xB8, 0x40, 0x28, 0x18, 0x0}; local ttt = S_Pointer(t, tt, true) local x1=gg.getValues({{address=ttt+0x1BD8,flags=4}})[1].value; local x2=gg.getValues({{address=ttt+0x1BF0,flags=4}})[1].value; local x3=gg.getValues({{address=ttt+0x1C08,flags=4}})[1].value; local x4=gg.getValues({{address=ttt+0x1C20,flags=4}})[1].value; local x5=gg.getValues({{address=ttt+0x1C38,flags=4}})[1].value gg.setValues({{address=ttt+0xe58,flags=4,value=x1},{address=ttt+0xe70,flags=4,value=x2},{address=ttt+0xe88,flags=4,value=x3},{address=ttt+0xea0,flags=4,value=x4},{address=ttt+0xeb8,flags=4,value=x5}}) end, function() end), CAswitch('雇佣美化', function() local t = {"libil2cpp.so", "Cd"}; local tt = {0x270DD8, 0xB8, 0x40, 0x28, 0x18, 0x0}; local ttt = S_Pointer(t, tt, true) local s = gg.getValues({{address=ttt+0x9f0,flags=4},{address=ttt+0xa08,flags=4},{address=ttt+0xa20,flags=4},{address=ttt+0xa38,flags=4},{address=ttt+0xa50,flags=4}}) gg.setValues({{address=ttt+0x30,flags=4,value=s[1].value},{address=ttt+0x48,flags=4,value=s[2].value},{address=ttt+0x60,flags=4,value=s[3].value},{address=ttt+0x78,flags=4,value=s[4].value},{address=ttt+0x90,flags=4,value=s[5].value}}) end, function() end), CAswitch('道具美化', function() local allSkin={ {'疾跑',500001,602396}, {'皮卡',500002,603351}, {'侦查眼',500003,603441}, {'手榴弹',500004,602601}, {'医疗箱',500005,602156}, {'生命护盾',500007,603221}, {'阻挡箱',500008,601001}, {'巡逻犬',500200,603056}, {'肾上腺素',500300,600181}, {'酒桶',500400,600371}, {'飞爪',500500,600276}, {'传送门',500600,601996}, {'自走球',500700,603476}, {'毒液',500800,603491}, {'滑板',500900,603446}, {'魔法墙',501000,600706}, {'引力场',501100,601901}, {'治疗球',501200,603421}, {'充气垫',501300,602576}, {'战术捣弹',501400,602671}, {'追踪雷',501500,603336}, {'震荡波',501600,603436}, {'小灰机',501700,603481}, {'时光机',501800,603286}, {'弹簧板',501900,603101}, {'弹簧拳套',502000,603296}, {'吼吼号',502100,601836}, {'噗噗蛋',502200,602081}, {'互拉圈',502300,603461}, {'车轮滚滚',502400,603466}, {'磁吸小宝',503200,603381}, {'火箭筒',500010,600816}, {'迫击炮',500020,600641}, {'冲锋枪',500030,603196}, {'能量剑',500040,602516}, {'蹦蹦枪',500050,603356}, {'能量腕炮',500060,601686}, {'霰弹枪',500070,602381}, {'唤风标',500080,602861}, {'霸天斧',500090,603386}, {'聚合弓',500100,603326}, {'裂地锤',510010,603411}, {'喷火枪',510020,603546} } --主调用 你要的标准格式 local t = {"libil2cpp.so", "Cd"} local tt = {0x274C08,0xB8,0x48,0xD8,0x20} local ttt = S_Pointer(t,tt,true) --读取六个道具卡位 local readArr={ {address=ttt+0,flags=4}, {address=ttt+4,flags=4}, {address=ttt+8,flags=4}, {address=ttt+12,flags=4}, {address=ttt+16,flags=4}, {address=ttt+20,flags=4} } local getVal=gg.getValues(readArr) --遍历替换皮肤ID for _,v in ipairs(getVal)do for _,sk in ipairs(allSkin)do if v.value==sk[2]then v.value=sk[3] end end end --写入生效 gg.setValues(getVal) gg.toast("道具卡美化全部开启成功") end, function() end), CAswitch('动作美化', function() local allSkin = { {'默认动作', {968511, 980040, 961721, 961361, 960251, 961351, 960691, 961381}}, {'星耀动作', {961731, 961711, 961721, 961361, 961191, 961351}}, {'枪神一套', {968511, 960921, 961971, 961041, 960311, 961881, 961381, 960691}}, {'激光一套', {962841, 962891, 962911, 962941, 962961, 963001, 963801, 963851}}, {'激光二套', {962831, 962851, 962881, 962901, 962931, 962951, 963791, 963841}} } -- 构建选项文本 local options = {} for i, v in ipairs(allSkin) do table.insert(options, i .. ". " .. v[1]) end local optionStr = table.concat(options, "\n") -- 显示选择弹窗 local selected = gg.alert("请选择动作美化方案:\n\n" .. optionStr, "取消", "确定", nil) if selected == 2 then -- 点击确定 -- 这里需要用户输入数字选择,改用输入框 local choice = gg.prompt({"请输入方案编号 (1-" .. #allSkin .. ")"}, {""}, {"number"}) if choice == nil then gg.toast("已取消") return end local num = tonumber(choice[1]) if num == nil or num < 1 or num > #allSkin then gg.toast("输入无效,请输入1-" .. #allSkin) return end local skinData = allSkin[num] local value = skinData[2] -- 主调用 local t = {"libil2cpp.so", "Cd"} local tt = {0x271320, 0xB8, 0x0, 0x70, 0x60, 0x20} local addr = S_Pointer(t, tt, true) if not addr then gg.toast("获取地址失败") return end -- 构建写入数据 local values = {} for i, v in ipairs(value) do table.insert(values, {address = addr + (i - 1) * 4, flags = 4, value = v, freeze = true}) end gg.addListItems(values) gg.toast("已应用: " .. skinData[1]) else gg.toast("已取消选择") end end, function() end), CAtext('━ 段位货币美化 ━', 0xFF4A90E2, 14), CAcheck({ {"青铜", function() meihua(1,1) end}, {"白银", function() meihua(10,10) end}, {"黄金", function() meihua(21,21) end}, {"钻石", function() meihua(51,51) end}, {"超凡", function() meihua(81,81) end}, {"王者", function() meihua(111,111) end}, {"王者不知道多少星", function() meihua(9999999,9999999) end}, }), CAcheck({ {"银币", function() yinbi(2147000000) end}, {"点券", function() dianquan(2147000000) end}, {"钻石", function() zuanshi(2147000000) end}, }), CAtext('━ 失忆者改角色 ━', 0xFF4A90E2, 14), CAswitch('失忆艾可', function() local t = {"libil2cpp.so", "Cd"}; local tt = {0x270DD8,0xB8,0x38,0x28,0x18,0x48+0x90}; local ttt = S_Pointer(t, tt, true) local s = gg.getValues({{address=ttt,flags=4}})[1].value local t2 = {"libil2cpp.so", "Cd"}; local tt2 = {0x270DD8,0xB8,0x38,0x28,0x18,0x48}; local ttt2 = S_Pointer(t2, tt2, true) gg.setValues({{address=ttt2,flags=4,value=s}}) end, function() end), CAswitch('失忆夜翔', function() local t = {"libil2cpp.so", "Cd"}; local tt = {0x270DD8,0xB8,0x38,0x28,0x18,0x48+0x1E0}; local ttt = S_Pointer(t, tt, true) local s = gg.getValues({{address=ttt,flags=4}})[1].value local t2 = {"libil2cpp.so", "Cd"}; local tt2 = {0x270DD8,0xB8,0x38,0x28,0x18,0x48}; local ttt2 = S_Pointer(t2, tt2, true) gg.setValues({{address=ttt2,flags=4,value=s}}) end, function() end), CAswitch('失忆魔术师', function() local t = {"libil2cpp.so", "Cd"}; local tt = {0x270DD8,0xB8,0x38,0x28,0x18,0x48+0x60}; local ttt = S_Pointer(t, tt, true) local s = gg.getValues({{address=ttt,flags=4}})[1].value local t2 = {"libil2cpp.so", "Cd"}; local tt2 = {0x270DD8,0xB8,0x38,0x28,0x18,0x48}; local ttt2 = S_Pointer(t2, tt2, true) gg.setValues({{address=ttt2,flags=4,value=s}}) end, function() end), CAtext('━ 基础基址火力 ━', 0xFF4A90E2, 14), CAbutton('子弹数量', function() local t = {"libil2cpp.so", "Cd"} local tt = {0x274C08, 0xB8, 0x48, 0xC0, 0xCC} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 328630, freeze = true}}) end), CAbutton('间隔', function() local t = {"libil2cpp.so", "Cd"} local tt = {0x274C08, 0xB8, 0x48, 0xC0, 0x9C} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}}) end), CAbutton('锁子弹', function() local t = {"libil2cpp.so", "Cd"} local tt = {0x274C08, 0xB8, 0x48, 0xC0, 0xc4} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}}) local t = {"libil2cpp.so", "Cd"} local tt = {0x274C08, 0xB8, 0x48, 0xC0, 0xC8} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}}) end), CAbutton('午后', function() local t = {"libil2cpp.so", "Cd"} local tt = {0x274C08, 0xB8, 0x48, 0xC0, 0x98} local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}}) end), CAbutton('开火加速', function() local t = {"libil2cpp.so", "Cd"}; local tt = {0x274C08, 0xB8, 0x48, 0xC0, 0x94}; local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value = -5, freeze = true}}) end), CAswitch("武器伤害", function() wa=gg.alert("武器伤害","69","72","99") if wa==1 then local t = {"libil2cpp.so", "Cd"} local tt = {0x270DD8,0xB8,0x158,0x28,0x18,0x630,0x50} local ttt = S_Pointer(t, tt, true) local WQ=gg.getValues({{address=ttt,flags =4}})[1].value local a = {"libil2cpp.so", "Cd"} local aa = {0x274C08, 0xB8, 0x48, 0xC0, 0xE0,0x50} local aaa = S_Pointer(a, aa, true) gg.setValues({{address = aaa, flags = 4, value = WQ}}) end if wa==2 then local t = {"libil2cpp.so", "Cd"} local tt = {0x270DD8,0xB8,0x158,0x28,0x18,0xE40,0x50} local ttt = S_Pointer(t, tt, true) local WQ=gg.getValues({{address=ttt,flags =4}})[1].value local a = {"libil2cpp.so", "Cd"} local aa = {0x274C08, 0xB8, 0x48, 0xC0, 0xE0,0x50} local aaa = S_Pointer(a, aa, true) gg.setValues({{address = aaa, flags = 4, value = WQ}}) end if wa==3 then local t = {"libil2cpp.so", "Cd"} local tt = {0x270DD8,0xB8,0x158,0x28,0x18,0x810,0x50} local ttt = S_Pointer(t, tt, true) local WQ=gg.getValues({{address=ttt,flags =4}})[1].value local a = {"libil2cpp.so", "Cd"} local aa = {0x274C08, 0xB8, 0x48, 0xC0, 0xE0,0x50} local aaa = S_Pointer(a, aa, true) gg.setValues({{address = aaa, flags = 4, value = WQ}}) end end), CAbutton('武器一连发', function() local t = {"libil2cpp.so", "Cd"}; local tt = {0x270DD8,0xB8,0x158,0x28,0x18,0x120,0x50}; local ttt = S_Pointer(t, tt, true) local WQ=gg.getValues({{address=ttt,flags=4}})[1].value local a = {"libil2cpp.so", "Cd"}; local aa = {0x274C08, 0xB8, 0x48, 0xC0, 0xe0,0x50}; local aaa = S_Pointer(a, aa, true) gg.setValues({{address = aaa, flags = 4, value = WQ}}) end), CAbutton('武器三连发', function() local t = {"libil2cpp.so", "Cd"}; local tt = {0x270DD8,0xB8,0x158,0x28,0x18,0x7C8,0x50}; local ttt = S_Pointer(t, tt, true) local WQ=gg.getValues({{address=ttt,flags=4}})[1].value local a = {"libil2cpp.so", "Cd"}; local aa = {0x274C08, 0xB8, 0x48, 0xC0, 0xe0,0x50}; local aaa = S_Pointer(a, aa, true) gg.setValues({{address = aaa, flags = 4, value = WQ}}) end), CAbutton('武器进化', function() local t = {"libil2cpp.so", "Cd"}; local tt = {0x270DD8,0xB8,0x158,0x28,0x18,0x330,0x50}; local ttt = S_Pointer(t, tt, true) local WQ=gg.getValues({{address=ttt,flags=4}})[1].value local a = {"libil2cpp.so", "Cd"}; local aa = {0x274C08, 0xB8, 0x48, 0xC0, 0xe0,0x50}; local aaa = S_Pointer(a, aa, true) gg.setValues({{address = aaa, flags = 4, value = WQ}}) end), CAbutton('火箭筒改迫击炮', function() local t = {"libil2cpp.so", "Cd"}; local tt = {0x270DD8,0xB8,0x68,0x28,0x18,0x198}; local ttt = S_Pointer(t, tt, true) x1=gg.getValues({{address=ttt,flags=32}}) local d = {"libil2cpp.so", "Cd"}; local dd = {0x274C08, 0xB8, 0x48, 0xC0, 0x220}; local ddd = S_Pointer(d, dd, true) gg.edits(ddd, {{x1[1].value, 32, 0, false}}) local t2 = {"libil2cpp.so", "Cd"}; local tt2 = {0x270DD8,0xB8,0x158,0x28,0x18,0xC0}; local ttt2 = S_Pointer(t2, tt2, true) x1=gg.getValues({{address=ttt2,flags=32}}) local d2 = {"libil2cpp.so", "Cd"}; local dd2 = {0x274C08, 0xB8, 0x48, 0xC0, 0xe0}; local ddd2 = S_Pointer(d2, dd2, true) gg.edits(ddd2, {{x1[1].value, 32, 0, false}}) end), CAbutton('刷新武器', function() local t = {"libil2cpp.so", "Cd"}; local tt = {0x274C08, 0xB8, 0x48, 0xC0, 0xDC}; local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 4, value = 1, freeze = true}}) gg.sleep(200) gg.addListItems({{address = ttt, flags = 4, value = 1, freeze = false}}) end), CAswitch('斧子平扫', function() local a = {"libil2cpp.so", "Cd"}; local aa = {0x274C08, 0xB8, 0x48, 0xC0, 0x24C}; local aaa = S_Pointer(a, aa, true) gg.addListItems({{address = aaa, flags = 4, value = 1, freeze = true}}) end, function() local a = {"libil2cpp.so", "Cd"}; local aa = {0x274C08, 0xB8, 0x48, 0xC0, 0x24C}; local aaa = S_Pointer(a, aa, true) if aaa and aaa ~= 0 then gg.addListItems({{address = aaa, flags = 4}}) end end), CAswitch('迫碗射程', function() local a = {"libil2cpp.so", "Cd"}; local aa = {0x274C08, 0xB8, 0x48, 0xC0, 0xf0,0x48}; local aaa = S_Pointer(a, aa, true) gg.setValues({{address=aaa, flags = 16, value = 12}}) end, function() local a = {"libil2cpp.so", "Cd"}; local aa = {0x274C08, 0xB8, 0x48, 0xC0, 0xf0,0x48}; local aaa = S_Pointer(a, aa, true) gg.setValues({{address=aaa, flags = 16, value = 6}}) end), CAtext('━ 自定义型火力 ━', 0xFF4A90E2, 14), CAswitch('攻速微减', function() local SQ=gg.prompt({'数值调试请勿低于0.35!'},{[1]="0.36"},{'number'}) if SQ then local t = {"libil2cpp.so", "Cd"}; local tt = {0x274C08, 0xB8, 0x48, 0xC0, 0xa4}; local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value = SQ[1], freeze = true}}) end end, function() end), CAswitch('换弹速度', function() local SQ=gg.prompt({'自定义换弹速度,数值调试建议0.2前后!'},{[1]="0.2"},{'number'}) if SQ then local t = {"libil2cpp.so", "Cd"}; local tt = {0x274C08, 0xB8, 0x48, 0xC0, 0xa0}; local ttt = S_Pointer(t, tt, true) gg.addListItems({{address = ttt, flags = 16, value = SQ[1], freeze = true}}) end end, function() end), --[[ CAseek('开火加速', 'SY', 1, 20, 1, function(enabled, value) local t = {"libil2cpp.so", "Cd"}; local tt = {0x274C08, 0xB8, 0x48, 0xC0, 0x94}; local ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then if enabled then gg.setValues({{address = ttt, flags = 16, value = -value, freeze = true}}) else gg.addListItems({{address = ttt, flags = 4}}) end end end), CAseek('迫碗射程', 'SY', 6, 100, 6, function(enabled, value) local t = {"libil2cpp.so", "Cd"}; local tt = {0x274C08, 0xB8, 0x48, 0xC0, 0xf0,0x48}; local ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then if enabled then gg.setValues({{address = ttt, flags = 16, value = value}}) else gg.addListItems({{address = ttt, flags = 4}}) end end end), CAseek('子弹高度', 'SY', 1, 30, 1, function(enabled, value) local t = {"libil2cpp.so", "Cd"}; local tt = {0x274C08, 0xB8, 0x48, 0xC0, 0xf0,0x70}; local ttt = S_Pointer(t, tt, true) if ttt and ttt ~= 0 then if enabled then gg.setValues({{address = ttt, flags = 16, value = value, freeze = true}}) else gg.addListItems({{address = ttt, flags = 4}}) end end end), ]] }, {--3 CAtext('━ 内存火力[修] ━', 0xFF4A90E2, 14), -- CAswitch('[全员]自动开火', function() BaseAddressY(0x32ED878,335547934) end, function() BaseAddressY(0x32ED878,-1447145484) end), CAcheck({ createWeaponCheckbox(112, "迫击炮"), createWeaponCheckbox(90400, "魔猿机甲爪"), createWeaponCheckbox(230, "裂地锤"), createWeaponCheckbox(50016, "魔龙回旋镖"), createWeaponCheckbox(50015, "棒棒糖"), createWeaponCheckbox(50018, "扬眉吐气豚"), createWeaponCheckbox(50024, "追踪炮"), createWeaponCheckbox(90401, "月球车武器"), createWeaponCheckbox(140, "能量剑"), createWeaponCheckbox(50012, "忍气吞声豚"), createWeaponCheckbox(50008, "毁灭手炮"), createWeaponCheckbox(9008003, "冰封鹿炮"), createWeaponCheckbox(9015002, "杨戬武器"), createWeaponCheckbox(9015003, "玉兔武器"), createWeaponCheckbox(9008004, "神木猿镖"), createWeaponCheckbox(9008001, "铁拳虎爪"), createWeaponCheckbox(9008005, "石甲熊锺"), createWeaponCheckbox(9080002, "火焰鹤扇"), createWeaponCheckbox(0, "缴械"), createWeaponCheckbox(240, "喷火器"), createWeaponCheckbox(9009001, "任意网"), createWeaponCheckbox(90400, "魔猿机甲爪"), createWeaponCheckbox(230, "裂地锤"), createWeaponCheckbox(50016, "魔龙回旋镖"), createWeaponCheckbox(50015, "棒棒糖"), createWeaponCheckbox(50018, "扬眉吐气豚"), createWeaponCheckbox(50024, "追踪炮"), createWeaponCheckbox(90401, "月球车武器"), createWeaponCheckbox(140, "能量剑"), createWeaponCheckbox(50012, "忍气吞声豚"), createWeaponCheckbox(50008, "毁灭手炮"), createWeaponCheckbox(9008003, "冰封鹿炮"), createWeaponCheckbox(9015002, "杨戬武器"), createWeaponCheckbox(9015003, "玉兔武器"), createWeaponCheckbox(9008004, "神木猿镖"), createWeaponCheckbox(9008001, "铁拳虎爪"), createWeaponCheckbox(9008005, "石甲熊锺"), createWeaponCheckbox(9080002, "火焰鹤扇"), }), CAtext('━ 凭空变身 ━', 0xFF4A90E2, 14), CAcheck({ createCharacterSkinFuncCheckbox(100001, "飞猪"), createCharacterSkinFuncCheckbox(50005, "鱼"), createCharacterSkinFuncCheckbox(10061, "圆柱"), createCharacterSkinFuncCheckbox(10062, "dmm不知名箱子"), createCharacterSkinFuncCheckbox(1035, "消失术"), createCharacterSkinFuncCheckbox(1038, "移速飞天"), createCharacterSkinFuncCheckbox(9010001, "举手+buff1"), createCharacterSkinFuncCheckbox(9010002, "举手+buff2"), createCharacterSkinFuncCheckbox(9010004, "魔鬼鱼"), createCharacterSkinFuncCheckbox(9010005, "鲨鱼"), createCharacterSkinFuncCheckbox(9010006, "螃蟹1"), createCharacterSkinFuncCheckbox(9011005, "螃蟹2"), createCharacterSkinFuncCheckbox(9011006, "机器蜘蛛"), createCharacterSkinFuncCheckbox(1100002, "大炮"), createCharacterSkinFuncCheckbox(100004, "大炮第二种"), createCharacterSkinFuncCheckbox(200011, "大便超人"), createCharacterSkinFuncCheckbox(3030, "木椅pro"), createCharacterSkinFuncCheckbox(3039, "小炉子"), createCharacterSkinFuncCheckbox(3040, "鼓1"), createCharacterSkinFuncCheckbox(3045, "鼓2"), createCharacterSkinFuncCheckbox(1023, "点"), createCharacterSkinFuncCheckbox(2010, "手拿球"), createCharacterSkinFuncCheckbox(2011, "打篮球"), createCharacterSkinFuncCheckbox(2012, "踢足球"), createCharacterSkinFuncCheckbox(1034, "消失一段时间"), createCharacterSkinFuncCheckbox(1035, "隐身"), createCharacterSkinFuncCheckbox(1036, "隐形飞行"), createCharacterSkinFuncCheckbox(1038, "自由飞翔"), createCharacterSkinFuncCheckbox(1027, "击飞"), createCharacterSkinFuncCheckbox(100011, "月球车"), createCharacterSkinFuncCheckbox(100012, "龟孙"), createCharacterSkinFuncCheckbox(100014, "机甲"), createCharacterSkinFuncCheckbox(100006, "超远发射炮"), createCharacterSkinFuncCheckbox(100007, "利达礼炮"), createCharacterSkinFuncCheckbox(3009, "超大排球"), createCharacterSkinFuncCheckbox(100002, "炮台"), createCharacterSkinFuncCheckbox(100010, "轩辕机甲"), createCharacterSkinFuncCheckbox(70014, "霸王龙"), createCharacterSkinFuncCheckbox(70013, "迅猛龙"), createCharacterSkinFuncCheckbox(50001, "迪迦"), createCharacterSkinFuncCheckbox(50002, "赛罗"), createCharacterSkinFuncCheckbox(50003, "泽塔"), }), CAtext('━ 刷变身道具 ━', 0xFF4A90E2, 14), CAswitch("初始配置[大厅]", function() local lib = gg.getRangesList('libil2cpp.so')[2].start local items = { {address = lib + 0x62d4700, flags = gg.TYPE_DWORD, value = -763363296, freeze = true}, {address = lib + 0x62d4700+4, flags = gg.TYPE_DWORD, value = -698416192, freeze = true}, } gg.addListItems(items) end, function() local lib = gg.getRangesList('libil2cpp.so')[2].start local items = { {address = lib + 0x62d4700, flags = gg.TYPE_DWORD, value = -132313090, freeze = true}, {address = lib + 0x62d4700+4, flags = gg.TYPE_DWORD, value = -1459529738, freeze = true}, } gg.addListItems(items) end), CAcheck({ BSYCheckbox(9010009, "信号枪"), BSYCheckbox(9018001, "黄金甲"), BSYCheckbox(9018002, "金钟罩"), BSYCheckbox(9016001, "阻挡箱"), BSYCheckbox(9016004, "磁吸宝"), BSYCheckbox(9016005, "宝宝蛋"), BSYCheckbox(200005, "火力全开"), BSYCheckbox(9017001, "摸金士兵1"), BSYCheckbox(9017002, "摸金士兵2"), BSYCheckbox(9017003, "摸金BOOS"), BSYCheckbox(9017004, "摸金小怪1"), BSYCheckbox(9017005, "摸金小怪2"), BSYCheckbox(100001, "飞猪"), BSYCheckbox(100002, "大炮"), BSYCheckbox(100003, "大炮2"), BSYCheckbox(100004, "大炮3"), BSYCheckbox(100005, "大炮4"), BSYCheckbox(100006, "大炮5"), BSYCheckbox(1021, "任意网"), BSYCheckbox(500, "护盾"), }), CAtext('━ 常用功能 ━', 0xFF4A90E2, 14), CAcheck({ --{"秒开锁门", function() BaseAddressY(0x305772C,402651542) gg.sleep(20) BaseAddressY(0x305772C,-1447145484) end}, {"追捕破盾[修]", function() BaseAddressRF(0x6b1b198,1384120352) BaseAddressRF(0x6b1b19C,-698416192) end, function() BaseAddressRF(0x6b1b198,-788429825) BaseAddressRF(0x6b1b19c,-117437447) end}, -- {"无视所有buff", function() BaseAddressRF(0x47B46E8,1384120352) BaseAddressRF(0x47B46EC,-698416192) end, function() BaseAddressRF(0x47B46E8,-788429825) BaseAddressRF(0x47B46EC,1829055467) end}, {"无视指针", function() BaseAddressRF(0x682b30c,'-698416192') end, function() BaseAddressRF(0x682b30c,'-65269784') end}, {"无视夹子[修]", function() BaseAddressRF(0x6f892d8,'-698416192') end, function() BaseAddressRF(0x6f892d8,'-788347905') end}, -- {"10倍移速", function() BaseAddressD(0x2762A04,'469762112') BaseAddressF(0x2762A0C,'10') end, function() BaseAddressRF(0x2762A04,'-65204248') BaseAddressRF(0x2762A08,'-117438475') BaseAddressRF(0x2762A0C,'-1459531788') end}, {"子弹伤害", function() BaseAddressRF(0x52207d8,469762112) BaseAddressRF(0x52207dc,-698416192) BaseAddressRF(0x52207e0,1205840128) end, function() BaseAddressRF(0x52207d8,-65204248) BaseAddressRF(0x52207dc,-117438475) BaseAddressRF(0x52207e0,-1459531788) end}, {"观战开门", function() local lib = gg.getRangesList('libil2cpp.so')[2].start inject.shellcode(lib+ 0x48ad93c,"000080520000A072C0035FD6") end, function() end}, -- {"金币翻倍", function() BaseAddressRF(0x33A74A8,'469762112') BaseAddressRF(0x33A74AC,'-698416192') BaseAddressF(0x33A74B0,'5201314') end, function() BaseAddressRF(0x33A74A8,'-65204248') BaseAddressRF(0x33A74AC,'-117438475') BaseAddressF(0x33A74B0,'-2.87131023e-14') end}, {"实体开门[修]", function() BaseAddressRF(0x6bced14,-698416192) BaseAddressRF(0x48ad93c,-763363296) BaseAddressRF(0x48ad940,-698416192) BaseAddressRF(0x4878a18,-763363296) BaseAddressRF(0x4878a1c,-698416192) BaseAddressRF(0x487d5e0,-763363296) BaseAddressRF(0x487d5e4,-698416192) end}, {"导弹超进化", function() BaseAddressRF(0x519E4DC,"335,544,321") BaseAddressRF(0x6E36670,"402,652,997") end, function() BaseAddressRF(0x519E4DC,"906,493,248") BaseAddressRF(0x6E36670,"1,841,046,505") end}, }), CAcheck({ {"解锁模式", function() BaseAddressRF(0x48b0970,'1384120352') BaseAddressRF(0x48b0974,'-698416192') end, function() end}, {"倒地购物", function() BaseAddressRF(0x6bbafd4,'-698416192') gg.toast("开启") end, function() BaseAddressRF(0x6bbafd4,'-1447143426') gg.toast("关闭") end}, {"移动开物", function() BaseAddressRF(0x59d98f4,'-698416192') BaseAddressRF(0x59d98f8,'-698416192') gg.toast("开启") end, function() BaseAddressRF(0x59d98f4,'-1447208970') BaseAddressRF(0x59d98f8,'-1447208970') gg.toast("关闭") end}, --[[ {"开物加速", function() -- BaseAddressRF(0x5808F60,'02102C1Er') --BaseAddressRF(0x5808F64,'A22200BDr') BaseAddressRF(0x5808F34,'08102C1Er') gg.toast("开启") end, function() BaseAddressRF(0x5808F34,'A82240BDr') gg.toast("关闭") -- BaseAddressRF(0x5808F60,'E0031FAAr') -- BaseAddressRF(0x5808F64,'BF2200B9r') 0x29FEB28开335,556,332 关-65,335,320 end},]]{"返回大厅", function() BaseAddressRF(0x6ba5260,'7E010014r') --0x6ba5858 gg.sleep(500) BaseAddressRF(0x6ba5260,'E923BC6Dr') end, function() end},{"刷变身道具", function() BaseAddressRF(0x48886e4,'D12B0014r') --0x4893628 gg.sleep(500) BaseAddressRF(0x48886e4,'E80F1BFCr') end, function() end}, }), CAtext('━ 刷钱功能[修] ━', 0xFF4A90E2, 14), CAcheck({ {"偶像刷钱", function() shuaqian('-763358527') end}, {"训练场工具刷钱[秒踢]", function() shuaqian('-763360895') end}, {"凭空刷钱", function() shuaqian('-763359647') end}, {"保险箱刷钱", function() shuaqian('-763362815') end}, {"超级补给箱刷钱", function() shuaqian('-763361631') end}, {"空投补给箱刷钱", function() shuaqian('-763359743') end}, }), CAtext('━ 快速上分区 ━', 0xFF4A90E2, 14), CAcheck({ {"控时间", function() BaseAddressRF(0x6f3f094,"469762112") BaseAddressRF(0x6f3f098,"-698416192") BaseAddressRF(0x6f3f09C,"1128464384") end, function() BaseAddressRF(0x6f3f094,"-132,247,554") BaseAddressRF(0x6f3f098,"-1,459,531,788") BaseAddressRF(0x6f3f09C,"-805,169,037") end}, {"逃生结算(1:30秒后)", function() local t = {"libil2cpp.so", "Cd"}; local tt = {0x274C08,0xB8,0x48,0x530}; local ttt = S_Pointer(t, tt, true) gg.setValues({{address=ttt,flags=16,value=math.random(2000,9000)},{address=ttt-0x8,flags=4,value=math.random(20,30)},{address=ttt+0x14,flags=4,value=math.random(20,30)}}) BaseAddressRF(0x7049794, "2B040014r")--0x704a840 gg.sleep(100) BaseAddressRF(0x7049794, "EA0F1CFCr") end}, --[[ {"追捕秒结算[大厅]", function() BaseAddressY(0x28651C0,"469762112") BaseAddressY(0x28651C4,"-698416192") BaseAddressY(0x28651C8,"1128464384") BaseAddressD(0x33A3B04,'-763363072') BaseAddressD(0x3925358,'1384120352') end, function() BaseAddressY(0x28651C0,"-1447145484") BaseAddressY(0x28651C4,"-1459520515") BaseAddressY(0x28651C8,"-1862253571") BaseAddressXZN(0x33A3B04,'-1447145484') BaseAddressXZ(0x3925358,'-788380673') end}, {"逃生秒结算[大厅]", function() BaseAddressY(0x263C000,'-1442839565') BaseAddressY(0x263C004,'1384128513') BaseAddressY(0x263C008,'-1,190,837,247') BaseAddressY(0x263C00C,'1384120385') BaseAddressY(0x263C010,'-1,190,844,415') BaseAddressY(0x263C014,'402653281') BaseAddressY(0x263C018,'-1,190,842,367') BaseAddressY(0x263C01C,'402,576,377') BaseAddressY(0x263C020,'1138753536') BaseAddressRF(0x60FAFFC,'335,621,121') BaseAddressRF(0x46f3134,'-1440807968') BaseAddressRF(0x46f3138,'-698416192') BaseAddressRF(0x46f6b10,'-763363072') BaseAddressRF(0x46f6b14,'-698416192') end, function() BaseAddressRF(0x6bb6994,"-1447145484") BaseAddressRF(0x6bb6998,"-1459520515") BaseAddressRF(0x6bb699C,"-1862253571") BaseAddressRF(0x60FAFFC,'-1442839565') BaseAddressY(0x263C000,'1,384,120,360') BaseAddressY(0x263C004,'957,811,336') BaseAddressY(0x263C008,'-113,245,535') BaseAddressY(0x263C00C,'960,580,648') BaseAddressY(0x263C010,'925,368,488') BaseAddressY(0x263C014,'-1,455,337,484') BaseAddressY(0x263C018,'1,384,120,544') BaseAddressY(0x263C01C,'-1,463,658,498') BaseAddressY(0x263C020,'-698,416,192') BaseAddressRF(0x46f3134,'-132247565') BaseAddressRF(0x46f3138,'-1459520515') BaseAddressRF(0x46f6b10,'-788429825') BaseAddressRF(0x46f6b14,'-117435401') end}, ]] }), CAtext('━ 改图区(30-40秒结算) ━', 0xFF4A90E2, 14), CAcheck({ {"改评分sss", function() local inject = {} inject.shellcode = function(addr, code) local results = {} for i = 1, #code, 2 do local offset = (i - 1) // 2 table.insert(results, { address = addr + offset, flags = 1, value = string.sub(code, i, i + 1) .. "h" }) end gg.setValues(results) return addr end local libms = gg.getRangesList('libil2cpp.so')[2].start inject.shellcode(libms + 0xA540CC4+0x14, "804FC347") end}, {"改评分s", function() local inject = {} inject.shellcode = function(addr, code) local results = {} for i = 1, #code, 2 do local offset = (i - 1) // 2 table.insert(results, { address = addr + offset, flags = 1, value = string.sub(code, i, i + 1) .. "h" }) end gg.setValues(results) return addr end local libms = gg.getRangesList('libil2cpp.so')[2].start inject.shellcode(libms + 0xA540CC4+0x14, "00007A44") end}, }), CAcheck({ {"改丛林8V2", function() gaiditu("300180D2") end},{"改海滩8V2", function() gaiditu("900180D2") end},{"改追风杯82", function() gaiditu("700380D2") end},{"改水乐园82", function() gaiditu("500080D2") end},{"改常规8V2", function() gaiditu("300080D2") end},{"改上榜8V2", function() gaiditu("900080D2") end},{"改荣耀热斗", function() gaiditu("D00280D2") end},{"改追风杯训练赛", function() gaiditu("900380D2") end},{"恢复", function() local inject = {} inject.shellcode = function(addr, code) local results = {} for i = 1, #code, 2 do local offset = (i - 1) // 2 table.insert(results, { address = addr + offset, flags = 1, value = string.sub(code, i, i + 1) .. "h" }) end gg.setValues(results) return addr end local libms = gg.getRangesList('libil2cpp.so')[2].start inject.shellcode(libms + 0x654d7e8+0xbc, "007045F9") gg.sleep(100) inject.shellcode(libms + 0xA540CC4, "000000000000000000000000000000000000000000000000") end}, }), CAtext('━ 崩服区 ━', 0xFF4A90E2, 14), CAcheck({ {"陨石崩服", function() math.randomseed(os.time()) Plana("ingSceneEvent_Rock_Taikong", 12, 0.5, math.random(1,10)) gg.sleep(3000) BaseAddressRF(0x6847e64,'7E010014r') --0x684845c gg.sleep(500) BaseAddressRF(0x6847e64,'E923BC6Dr') end},{"4v1地图崩服", function() math.randomseed(os.time()) Plana("ingLevelPartyGame_041_Scene", 3.0, 0.5, math.random(1,10)) gg.sleep(3000) BaseAddressRF(0x6847e64,'7E010014r') --0x684845c gg.sleep(500) BaseAddressRF(0x6847e64,'E923BC6Dr') end}, {"8v2地图崩服", function() math.randomseed(os.time()) Plana("ing_RescueMode_Level8v2_art", 3.0, 0.5, math.random(1,10)) gg.sleep(3000) BaseAddressRF(0x6847e64,'7E010014r') --0x684845c gg.sleep(500) BaseAddressRF(0x6847e64,'E923BC6Dr') end},{"猪猪地图蹦服", function() math.randomseed(os.time()) Plana("ingLevelMatching_Scene", 3.2, 0.5, math.random(1,10)) gg.sleep(3000) BaseAddressRF(0x6847e64,'7E010014r') --0x684845c gg.sleep(500) BaseAddressRF(0x6847e64,'E923BC6Dr') end}, {"大乱斗地图崩服", function() math.randomseed(os.time()) Plana("ingLevelBattleRoyale_Scene", 3.1, 0.5, math.random(1,10)) gg.sleep(3000) BaseAddressRF(0x6847e64,'7E010014r') --0x684845c gg.sleep(500) BaseAddressRF(0x6847e64,'E923BC6Dr') end}, {"水上乐园崩服", function() math.randomseed(os.time()) Plana("ingLevelAmusementPark_Scene", 2.9, 0.5, math.random(1,10)) gg.sleep(3000) BaseAddressRF(0x6847e64,'7E010014r') --0x684845c gg.sleep(500) BaseAddressRF(0x6847e64,'E923BC6Dr') end}, }), CAtext('━ 角色功能 ━', 0xFF4A90E2, 14), CAswitch('魔术师技能刷箱', function() fastsearch({{-1901369601,4,32},{4,-4,4},{1349936936,4,4}},{{3,-4,4,false},{2128185445,0,4,false},{31665,4,4,false}}) end, function() end), CAswitch('魔术师魔偶进化', function() fastsearch({{55.0,16,32},{65.0,4,16},{75.0,8,16},{100.0,12,16}},{{999,0,16,false},{999,4,16,false},{999,8,16,false},{999,12,16,false}}) end, function() end), CAswitch('梦魇进化', function() fastsearch({{3420798102435528704.0,16,32},{2.1019476964872256E-43,4,16}},{{0,-40,16},{0,-36,16},{0,124,16}},'') end, function() end), CAswitch('艾可进化', function() fastsearch({{406,4,32},{0.05999999865889549,-144,16}},{{3,-336,4,true},{-1.0,-44,16},{-1.0,-36,16},{1.0,36,16,true}},'艾可进化') end, function() end), CAswitch('狐狸进化[加血]', function() fastsearch({{-934560717,4,32},{1581114487,4,4},{1.5,108,16}},{{-1.0,92,16,false},{0,100,16,false},{-9999,356,16,false}},"") end, function() end), CAswitch('狐狸进化[扣血]', function() fastsearch({{-934560717,4,32},{1581114487,4,4},{1.5,108,16}},{{0,-44,4},{0,-40,4},{1145,356,16}},"") end, function() end), CAswitch('圣女进化', function() fastsearch({{-934560717,4,32},{1581114487,4,4},{1,128,4}},{{-1,40,16},{-99,48,16},{-1.0,56,16},{1,128,4,true}},"") end, function() end), CAswitch('技能无冷', function() fastsearch({{-934560717,4,32},{1581114487,4,4}},{{0,-44,4},{0,-40,4}},"") end, function() end), CAswitch('奥博进化', function() fastsearch({{-934560717,4,32},{1581114487,4,4},{1098907648,376,4},{1115684864,384,4}},{{-1.0,212,16,false},{9,196,16,false}},"") end, function() end), CAswitch('狐狸刷钱[局内]', function() fastsearch({{-934560717,4,32,"狐狸刷钱"},{1581114487,4,4},{1.5,64,16}},{{0,-52,4,true},{0,-48,4,true},{114514,32,4,true}}) end, function() end), CAswitch('圣女进化[局内]', function() fastsearch({{-934560717,4,32},{1581114487,4,4},{1,120,4}},{{-1.0,60,16},{0,68,16},{1,120,4,true},{-1.0,76,16}},"") end, function() end), CAswitch('艾可全屏', function() BaseAddressRF(0x6cb4698,'1384120352') BaseAddressRF(0x6cb469C,'-698416192') end, function() end), CAswitch('奥博全屏秒杀[局内]', function() local qmnb={{['memory']=32},{['name']='奥博全屏秒杀'},{['value']=1581114487,['type']=4},{['lv']=-934560717,['offset']=-4,['type']=4}} local qmxg={{['value']=9999,['offset']=228,['type']=16},{['value']=99999,['offset']=256,['type']=16,['freeze']=true}} xqmnb(qmnb,qmxg) end, function() end), CAtext('━ 道具功能 ━', 0xFF4A90E2, 14), CAcheck({ {"飞机进化", function() fastsearch({{60,4,32},{1077936128,0x4,4},{2,0xC,4},{1072902963,0x10,4}},{{0.0,0x4,16,false},{0.0,0x14,16,false},{0.0,0x0,4,false},{1000000000,0x8,4,true},{2000.0,0x18,16,false}},"") end}, {"酒桶速度", function() xqmnb({{["memory"]=32},{["name"]=""},{["value"]=4619567317775286272,["type"]=32},{["lv"]=2.4375,["offset"]=4,["type"]=16}},{{["value"]=2.71875,["offset"]=4,["type"]=16}}) end}, {"导弹进化", function() local lib = gg.getRangesList('libil2cpp.so')[2].start --inject.shellcode(lib+ 0x535A944,"01000014") inject.shellcode(lib+ 0x7195764,"45FFFF17")--0x6e36670 end,function() local lib = gg.getRangesList('libil2cpp.so')[2].start --inject.shellcode(lib+ 0x535A944,"40FD0736") inject.shellcode(lib+ 0x7195764,"E923BC6D") end}, {"任意网进化", function() fastsearch({{1.2,64,32},{1072902963,4,4}},{{99999,0,64,false}},'任意网吸人') --fastsearch({{858993459,4,32},{1072902963,4,4},{2.0,220,16}},{{10,220,16,false}},"扔人高度") --fastsearch({{858993459,4,32},{1072902963,4,4},{2.0625,76,16}},{{6,76,16,false}},"扔人范围") end}, {"修改道具[修]", function() rt=gg.alert("修改道具","开","关") if rt==1 then local Fr = gg.prompt({'输入道具代码\n100疾跑 101皮卡 102侦查眼 103手榴弹 104医疗包 105跳高 106护盾 107阻挡箱 108雷达 109狗 110针 111酒桶 112飞爪 113传送门 114自走球 115毒液 116滑板 117魔法墙 118引力场 119治疗球 120气垫 121导弹 122追踪雷 123震荡波 124小飞机 125时光机 126跳跳杆 127拳套 128吼吼号 129噗噗蛋 130呼啦圈 131车轮滚滚 132放大镜 133缩小隧道 134任意网 135飘飘翼 136动能锤 137喷蛇小罐'}, {''}, {'number'}) if Fr then BaseAddressRF(0x717ef2c,'~A8 MOV X0, #'..Fr[1]) BaseAddressRF(0x717ef2c+0x4,'-698416192') end else BaseAddressRF(0x717ef2c,'-132313099') BaseAddressRF(0x717ef2c+0x4,'-1459531788') end end}, }), },{ CAswitch('免主机开三/二门', function() shitikm() end), --[[ CAswitch('摸金偷背包', function() touwu(1) end), CAswitch('摸金偷钥匙链', function() touwu(3) end), CAswitch('摸金偷保险箱', function() touwu(2) end), CAswitch('一键扫荡', function() touwu(1) gg.sleep(500) touwu(2) gg.sleep(500) touwu(3) end), CAswitch('循环扫荡5次', function() for i = 1, 5 do touwu(1) gg.sleep(500) touwu(2) gg.sleep(500) touwu(3) end end), ]] CAswitch('主机摸金清图', function() --jichu("71544397r")--7619d6c local inject = {} inject.shellcode = function(addr,code) local results = {} for i=1,#code,2 do table.insert(results,{address = addr + (i + 1) / 2 - 1,flags = gg.TYPE_BYTE,value = string.sub(code,i,i + 1).."h"}) end gg.setValues(results) return saddr end -- 把以上代码复制到你脚本最前面即可 local function utf8_char_from_value(value) if type(value) == "table" then utf8_chars = {} for i, value in ipairs(value) do if value < 0 then utf8_chars[i] = value & 0xFFFF else utf8_chars[i] = value end end end return utf8.char(table.unpack(utf8_chars)) end local function getName(addr,shi) local data,data1={},{} for i=1,shi do data[1+#data]={address=addr+2+i*2,flags=2} end for k , v in pairs(gg.getValues(data)) do data[k]=v.value end return utf8_char_from_value(data) end local getname=function(x) local data,get={},{} for k,v in ipairs(gg.getValues(x)) do get[k]={address=v.value+0x10,flags=4} end for k,v in ipairs(gg.getValues(get)) do data[k]=getName(v.address,v.value) end return data end function getcpp() local cdx,xax for k,v in ipairs (gg.getRangesList("libil2cpp.so"))do local cd=gg.getValues({{address=gg.getValues({{address=v.start,flags=32}})[1].value,flags=4}})[1].value if cd~="1179403647" and v.state=="Cd" then cdx=k end local xa=gg.getValues({{address=v.start,flags=4}})[1].value if xa=="1179403647" and v.state=="Xa" then xax=k end end return {cd=cdx,xa=xax} end function utf8.byte(str) local res = {} local i = 1 -- 这是UTF-8到Unicode码点的转换 while i <= #str do local c = string.byte(str, i) local unicode if c >= 0 and c <= 127 then unicode = c i = i + 1 elseif c >= 192 and c <= 223 then local c2 = string.byte(str, i + 1) unicode = (bit32.band(c, 31) * 64) + bit32.band(c2, 63) i = i + 2 elseif c >= 224 and c <= 239 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) unicode = (bit32.band(c, 15) * 4096) + (bit32.band(c2, 63) * 64) + bit32.band(c3, 63) i = i + 3 elseif c >= 240 and c <= 247 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) local c4 = string.byte(str, i + 3) unicode = (bit32.band(c, 7) * 262144) + (bit32.band(c2, 63) * 4096) + (bit32.band(c3, 63) * 64) + bit32.band(c4, 63) i = i + 4 else -- 错误情况可以返回nil 或自定义错误码 table.insert(res, nil) break end -- 在BMP的范围内,UTF-16码点与Unicode码点相同。 table.insert(res, unicode) end return res end cpp=getcpp() cppcd=cpp.cd cppxa=cpp.xa qy=gg.getRangesList('libil2cpp.so')[2].start so=gg.getRangesList('libil2cpp.so')[2].start print(cppcd) _ENV["getvalue"]=gg.getValues 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 else -- addr[1].value = addr[1].value & 0xFFFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end function gg.edits(addr, Table, name) if not addr then gg.toast('修改失败, 可能是模块不存在') return end local Table1 = { {}, {} } for k, v in ipairs(Table) do local value = { address = addr + v[3], value = v[1], flags = v[2], freeze = v[4] } if v[4] then Table1[2][#Table1[2] + 1] = value else Table1[1][#Table1[1] + 1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) --gg.toast((name or "") .. "开启成功, 共修改" .. #Table .. "个值") end -------------------动态------------------ local function jz(type) local jt= gg.getRangesList(type[1])[type[3]].start address=jt if type[4]==true then add=gg.addListItems else add=function() end end for k,v in pairs(type[2]) do if k==#type[2] then address=address+v add({{address=address,flags=gg.TYPE_QWORD,name="第\b"..k.."\b层"}}) else address=getvalue({{address=address+v,flags=gg.TYPE_QWORD}})[1].value end end return address end function zz(type) address=type[1] for k,v in pairs(type[2]) do if k==#type[2] then address=address+v else address=getvalue({{address=address+v,flags=gg.TYPE_QWORD}})[1].value end end return address end local PlayerController,pv={},{} local function loads(address) local load,value={} value=gg.getValues({{address=address+8,flags=4}})[1].value local address=gg.getValues({{address=address,flags=32}})[1].value for i=0,value-1 do load[#load+1]={address=address+0x20+i*8,flags=32} end return gg.getValues(load) end local b,name=gg.getValues(loads(readPointer("libil2cpp.so", {0x274C08, 0xB8, 0x38, 0x10}, cppcd))),{} for k,v in ipairs(b)do name[k]={address=v.value+0xF0,flags=32} pv[k]={address=v.value+0x40,flags=32} end name=gg.getValues(name) pv=gg.getValues(pv) b=(gg.getValues(b)) --print(b) for k,v in ipairs(getname(name)) do PlayerController[k]={name=v,address=pv[k].value} end address=readPointer("libil2cpp.so", {0x274C08, 0xB8, 0x48}, cppcd) local choice={} for k,v in ipairs(PlayerController) do choice[k]=v.name end function hp(x) local so = gg.getRangesList('libil2cpp.so')[2].start local so1 = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({{address = so + 0xA544B9C, flags = 4, value = -788478977}}) gg.setValues({{address = so + 0xA544B9C+0x4, flags = 4, value = -1459454979}}) gg.setValues({{address = so + 0xA544B9C+0x8, flags = 4, value = -763363296}}) gg.setValues({{address = so + 0xA544B9C+0xc, flags = 4, value = "71544397r"}})--0x76162c4 gg.setValues({{address = so + 0xA544B9C+0x10, flags = 4, value = -1442839583}}) gg.setValues({{address = so + 0xA544B9C+0x14, flags = 4, value = -1440807966}}) gg.setValues({{address = so + 0xA544B9C+0x18, flags = 4, value = 1476395200}}) gg.setValues({{address = so + 0xA544B9C+0x1c, flags = 4, value ="C5768C96r"}})--0x46ab3a4 gg.setValues({{address = so + 0xA544B9C+0x20, flags = 4, value = -1440807968}}) gg.setValues({{address = so + 0xA544B9C+0x24, flags = 4, value = -1455260675}}) gg.setValues({{address = so + 0xA544B9C+0x28, flags = 4, value = -1862220801}}) gg.setValues({{address = so + 0xA544B9C+0x2c, flags = 4, value = -698416192}}) gg.setValues({{address = so + 0xA544B9C+0x30, flags = 32, value = x}}) gg.setValues({{address = so1 + 0x42a5e20, flags = 4, value = "5F7B8A15r"}}) gg.sleep(500) gg.setValues({{address = so1 + 0x42a5e20, flags = 4, value = "FE0F1FF8r"}}) inject.shellcode(qy + 0xA544B9C, "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") end A=gg.multiChoice(choice) if A then for k,v in pairs(A) do hp(PlayerController[k].address) end end end), CAswitch('指定祭天', function() --jichu("C7454397r") local inject = {} inject.shellcode = function(addr,code) local results = {} for i=1,#code,2 do table.insert(results,{address = addr + (i + 1) / 2 - 1,flags = gg.TYPE_BYTE,value = string.sub(code,i,i + 1).."h"}) end gg.setValues(results) return saddr end -- 把以上代码复制到你脚本最前面即可 local function utf8_char_from_value(value) if type(value) == "table" then utf8_chars = {} for i, value in ipairs(value) do if value < 0 then utf8_chars[i] = value & 0xFFFF else utf8_chars[i] = value end end end return utf8.char(table.unpack(utf8_chars)) end local function getName(addr,shi) local data,data1={},{} for i=1,shi do data[1+#data]={address=addr+2+i*2,flags=2} end for k , v in pairs(gg.getValues(data)) do data[k]=v.value end return utf8_char_from_value(data) end local getname=function(x) local data,get={},{} for k,v in ipairs(gg.getValues(x)) do get[k]={address=v.value+0x10,flags=4} end for k,v in ipairs(gg.getValues(get)) do data[k]=getName(v.address,v.value) end return data end function getcpp() local cdx,xax for k,v in ipairs (gg.getRangesList("libil2cpp.so"))do local cd=gg.getValues({{address=gg.getValues({{address=v.start,flags=32}})[1].value,flags=4}})[1].value if cd~="1179403647" and v.state=="Cd" then cdx=k end local xa=gg.getValues({{address=v.start,flags=4}})[1].value if xa=="1179403647" and v.state=="Xa" then xax=k end end return {cd=cdx,xa=xax} end function utf8.byte(str) local res = {} local i = 1 -- 这是UTF-8到Unicode码点的转换 while i <= #str do local c = string.byte(str, i) local unicode if c >= 0 and c <= 127 then unicode = c i = i + 1 elseif c >= 192 and c <= 223 then local c2 = string.byte(str, i + 1) unicode = (bit32.band(c, 31) * 64) + bit32.band(c2, 63) i = i + 2 elseif c >= 224 and c <= 239 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) unicode = (bit32.band(c, 15) * 4096) + (bit32.band(c2, 63) * 64) + bit32.band(c3, 63) i = i + 3 elseif c >= 240 and c <= 247 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) local c4 = string.byte(str, i + 3) unicode = (bit32.band(c, 7) * 262144) + (bit32.band(c2, 63) * 4096) + (bit32.band(c3, 63) * 64) + bit32.band(c4, 63) i = i + 4 else -- 错误情况可以返回nil 或自定义错误码 table.insert(res, nil) break end -- 在BMP的范围内,UTF-16码点与Unicode码点相同。 table.insert(res, unicode) end return res end cpp=getcpp() cppcd=cpp.cd cppxa=cpp.xa qy=gg.getRangesList('libil2cpp.so')[2].start so=gg.getRangesList('libil2cpp.so')[2].start print(cppcd) _ENV["getvalue"]=gg.getValues 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 else -- addr[1].value = addr[1].value & 0xFFFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end function gg.edits(addr, Table, name) if not addr then gg.toast('修改失败, 可能是模块不存在') return end local Table1 = { {}, {} } for k, v in ipairs(Table) do local value = { address = addr + v[3], value = v[1], flags = v[2], freeze = v[4] } if v[4] then Table1[2][#Table1[2] + 1] = value else Table1[1][#Table1[1] + 1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) --gg.toast((name or "") .. "开启成功, 共修改" .. #Table .. "个值") end -------------------动态------------------ local function jz(type) local jt= gg.getRangesList(type[1])[type[3]].start address=jt if type[4]==true then add=gg.addListItems else add=function() end end for k,v in pairs(type[2]) do if k==#type[2] then address=address+v add({{address=address,flags=gg.TYPE_QWORD,name="第\b"..k.."\b层"}}) else address=getvalue({{address=address+v,flags=gg.TYPE_QWORD}})[1].value end end return address end function zz(type) address=type[1] for k,v in pairs(type[2]) do if k==#type[2] then address=address+v else address=getvalue({{address=address+v,flags=gg.TYPE_QWORD}})[1].value end end return address end local PlayerController,pv={},{} local function loads(address) local load,value={} value=gg.getValues({{address=address+8,flags=4}})[1].value local address=gg.getValues({{address=address,flags=32}})[1].value for i=0,value-1 do load[#load+1]={address=address+0x20+i*8,flags=32} end return gg.getValues(load) end local b,name=gg.getValues(loads(readPointer("libil2cpp.so", {0x274C08, 0xB8, 0x38, 0x10}, cppcd))),{} for k,v in ipairs(b)do name[k]={address=v.value+0xF0,flags=32} pv[k]={address=v.value+0x40,flags=32} end name=gg.getValues(name) pv=gg.getValues(pv) b=(gg.getValues(b)) --print(b) for k,v in ipairs(getname(name)) do PlayerController[k]={name=v,address=pv[k].value} end address=readPointer("libil2cpp.so", {0x274C08, 0xB8, 0x48}, cppcd) local choice={} for k,v in ipairs(PlayerController) do choice[k]=v.name end function hp(x) local so = gg.getRangesList('libil2cpp.so')[2].start local so1 = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({{address = so + 0xA544B9C, flags = 4, value = -788478977}}) gg.setValues({{address = so + 0xA544B9C+0x4, flags = 4, value = -1459454979}}) gg.setValues({{address = so + 0xA544B9C+0x8, flags = 4, value = -763363296}}) gg.setValues({{address = so + 0xA544B9C+0xc, flags = 4, value = "C7454397r"}})--0x76162c4 gg.setValues({{address = so + 0xA544B9C+0x10, flags = 4, value = -1442839583}}) gg.setValues({{address = so + 0xA544B9C+0x14, flags = 4, value = -1440807966}}) gg.setValues({{address = so + 0xA544B9C+0x18, flags = 4, value = 1476395200}}) gg.setValues({{address = so + 0xA544B9C+0x1c, flags = 4, value ="C5768C96r"}})--0x46ab3a4 gg.setValues({{address = so + 0xA544B9C+0x20, flags = 4, value = -1440807968}}) gg.setValues({{address = so + 0xA544B9C+0x24, flags = 4, value = -1455260675}}) gg.setValues({{address = so + 0xA544B9C+0x28, flags = 4, value = -1862220801}}) gg.setValues({{address = so + 0xA544B9C+0x2c, flags = 4, value = -698416192}}) gg.setValues({{address = so + 0xA544B9C+0x30, flags = 32, value = x}}) gg.setValues({{address = so1 + 0x42a5e20, flags = 4, value = "5F7B8A15r"}}) gg.sleep(500) gg.setValues({{address = so1 + 0x42a5e20, flags = 4, value = "FE0F1FF8r"}}) inject.shellcode(qy + 0xA544B9C, "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") end A=gg.multiChoice(choice) if A then for k,v in pairs(A) do hp(PlayerController[k].address) end end end), --CAswitch('指定动作', 动作()), CAswitch('指定救赎', function() --shuaqian1("A9534397r")--7619a4c local inject = {} inject.shellcode = function(addr,code) local results = {} for i=1,#code,2 do table.insert(results,{address = addr + (i + 1) / 2 - 1,flags = gg.TYPE_BYTE,value = string.sub(code,i,i + 1).."h"}) end gg.setValues(results) return saddr end -- 把以上代码复制到你脚本最前面即可 local function utf8_char_from_value(value) if type(value) == "table" then utf8_chars = {} for i, value in ipairs(value) do if value < 0 then utf8_chars[i] = value & 0xFFFF else utf8_chars[i] = value end end end return utf8.char(table.unpack(utf8_chars)) end local function getName(addr,shi) local data,data1={},{} for i=1,shi do data[1+#data]={address=addr+2+i*2,flags=2} end for k , v in pairs(gg.getValues(data)) do data[k]=v.value end return utf8_char_from_value(data) end local getname=function(x) local data,get={},{} for k,v in ipairs(gg.getValues(x)) do get[k]={address=v.value+0x10,flags=4} end for k,v in ipairs(gg.getValues(get)) do data[k]=getName(v.address,v.value) end return data end function getcpp() local cdx,xax for k,v in ipairs (gg.getRangesList("libil2cpp.so"))do local cd=gg.getValues({{address=gg.getValues({{address=v.start,flags=32}})[1].value,flags=4}})[1].value if cd~="1179403647" and v.state=="Cd" then cdx=k end local xa=gg.getValues({{address=v.start,flags=4}})[1].value if xa=="1179403647" and v.state=="Xa" then xax=k end end return {cd=cdx,xa=xax} end function utf8.byte(str) local res = {} local i = 1 -- 这是UTF-8到Unicode码点的转换 while i <= #str do local c = string.byte(str, i) local unicode if c >= 0 and c <= 127 then unicode = c i = i + 1 elseif c >= 192 and c <= 223 then local c2 = string.byte(str, i + 1) unicode = (bit32.band(c, 31) * 64) + bit32.band(c2, 63) i = i + 2 elseif c >= 224 and c <= 239 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) unicode = (bit32.band(c, 15) * 4096) + (bit32.band(c2, 63) * 64) + bit32.band(c3, 63) i = i + 3 elseif c >= 240 and c <= 247 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) local c4 = string.byte(str, i + 3) unicode = (bit32.band(c, 7) * 262144) + (bit32.band(c2, 63) * 4096) + (bit32.band(c3, 63) * 64) + bit32.band(c4, 63) i = i + 4 else -- 错误情况可以返回nil 或自定义错误码 table.insert(res, nil) break end -- 在BMP的范围内,UTF-16码点与Unicode码点相同。 table.insert(res, unicode) end return res end cpp=getcpp() cppcd=cpp.cd cppxa=cpp.xa qy=gg.getRangesList('libil2cpp.so')[2].start so=gg.getRangesList('libil2cpp.so')[2].start print(cppcd) _ENV["getvalue"]=gg.getValues 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 else -- addr[1].value = addr[1].value & 0xFFFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end function gg.edits(addr, Table, name) if not addr then gg.toast('修改失败, 可能是模块不存在') return end local Table1 = { {}, {} } for k, v in ipairs(Table) do local value = { address = addr + v[3], value = v[1], flags = v[2], freeze = v[4] } if v[4] then Table1[2][#Table1[2] + 1] = value else Table1[1][#Table1[1] + 1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) --gg.toast((name or "") .. "开启成功, 共修改" .. #Table .. "个值") end -------------------动态------------------ local function jz(type) local jt= gg.getRangesList(type[1])[type[3]].start address=jt if type[4]==true then add=gg.addListItems else add=function() end end for k,v in pairs(type[2]) do if k==#type[2] then address=address+v add({{address=address,flags=gg.TYPE_QWORD,name="第\b"..k.."\b层"}}) else address=getvalue({{address=address+v,flags=gg.TYPE_QWORD}})[1].value end end return address end function zz(type) address=type[1] for k,v in pairs(type[2]) do if k==#type[2] then address=address+v else address=getvalue({{address=address+v,flags=gg.TYPE_QWORD}})[1].value end end return address end local PlayerController,pv={},{} local function loads(address) local load,value={} value=gg.getValues({{address=address+8,flags=4}})[1].value local address=gg.getValues({{address=address,flags=32}})[1].value for i=0,value-1 do load[#load+1]={address=address+0x20+i*8,flags=32} end return gg.getValues(load) end local b,name=gg.getValues(loads(readPointer("libil2cpp.so", {0x274C08, 0xB8, 0x38, 0x10}, cppcd))),{} for k,v in ipairs(b)do name[k]={address=v.value+0xF0,flags=32} pv[k]={address=v.value+0x40,flags=32} end name=gg.getValues(name) pv=gg.getValues(pv) b=(gg.getValues(b)) --print(b) for k,v in ipairs(getname(name)) do PlayerController[k]={name=v,address=pv[k].value} end address=readPointer("libil2cpp.so", {0x274C08, 0xB8, 0x48}, cppcd) local choice={} for k,v in ipairs(PlayerController) do choice[k]=v.name end function hp(x) local libil2cpp_base = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address = libil2cpp_base + 0xA544B9C + 0x0, flags = 4, value = -788478977}, {address = libil2cpp_base + 0xA544B9C + 0x4, flags = 4, value = -1459454979}, {address = libil2cpp_base + 0xA544B9C + 0x8, flags = 4, value = -763363264}, {address = libil2cpp_base + 0xA544B9C + 0xc, flags = 4, value = "A9534397r"}, {address = libil2cpp_base + 0xA544B9C + 0x10, flags = 4, value = -1442839583}, {address = libil2cpp_base + 0xA544B9C + 0x14, flags = 4, value = -1440807966}, {address = libil2cpp_base + 0xA544B9C + 0x18, flags = 4, value = 1476395200}, {address = libil2cpp_base + 0xA544B9C + 0x1c, flags = 4, value = "C5768C96r"}, {address = libil2cpp_base + 0xA544B9C + 0x20, flags = 4, value = -1440807968}, {address = libil2cpp_base + 0xA544B9C + 0x24, flags = 4, value = -1455260675}, {address = libil2cpp_base + 0xA544B9C + 0x28, flags = 4, value = -1862220801}, {address = libil2cpp_base + 0xA544B9C + 0x2c, flags = 4, value = -698416192}, {address = libil2cpp_base + 0xA544B9C + 0x30, flags = 32, value = x}, {address = libil2cpp_base + 0x42a5e20, flags = 4, value = "5F7B8A15r"}, }) gg.sleep(500) gg.setValues({{address = libil2cpp_base + 0x42a5e20, flags = 4, value = "FE0F1FF8r"}}) inject.shellcode(qy + 0xA544B9C, "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") end A=gg.multiChoice(choice) if A then for k,v in pairs(A) do hp(PlayerController[k].address) end end end), CAswitch('烟花祭天', function() --jichu("71544397r")--7619d6c local inject = {} inject.shellcode = function(addr,code) local results = {} for i=1,#code,2 do table.insert(results,{address = addr + (i + 1) / 2 - 1,flags = gg.TYPE_BYTE,value = string.sub(code,i,i + 1).."h"}) end gg.setValues(results) return saddr end -- 把以上代码复制到你脚本最前面即可 local function utf8_char_from_value(value) if type(value) == "table" then utf8_chars = {} for i, value in ipairs(value) do if value < 0 then utf8_chars[i] = value & 0xFFFF else utf8_chars[i] = value end end end return utf8.char(table.unpack(utf8_chars)) end local function getName(addr,shi) local data,data1={},{} for i=1,shi do data[1+#data]={address=addr+2+i*2,flags=2} end for k , v in pairs(gg.getValues(data)) do data[k]=v.value end return utf8_char_from_value(data) end local getname=function(x) local data,get={},{} for k,v in ipairs(gg.getValues(x)) do get[k]={address=v.value+0x10,flags=4} end for k,v in ipairs(gg.getValues(get)) do data[k]=getName(v.address,v.value) end return data end function getcpp() local cdx,xax for k,v in ipairs (gg.getRangesList("libil2cpp.so"))do local cd=gg.getValues({{address=gg.getValues({{address=v.start,flags=32}})[1].value,flags=4}})[1].value if cd~="1179403647" and v.state=="Cd" then cdx=k end local xa=gg.getValues({{address=v.start,flags=4}})[1].value if xa=="1179403647" and v.state=="Xa" then xax=k end end return {cd=cdx,xa=xax} end function utf8.byte(str) local res = {} local i = 1 -- 这是UTF-8到Unicode码点的转换 while i <= #str do local c = string.byte(str, i) local unicode if c >= 0 and c <= 127 then unicode = c i = i + 1 elseif c >= 192 and c <= 223 then local c2 = string.byte(str, i + 1) unicode = (bit32.band(c, 31) * 64) + bit32.band(c2, 63) i = i + 2 elseif c >= 224 and c <= 239 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) unicode = (bit32.band(c, 15) * 4096) + (bit32.band(c2, 63) * 64) + bit32.band(c3, 63) i = i + 3 elseif c >= 240 and c <= 247 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) local c4 = string.byte(str, i + 3) unicode = (bit32.band(c, 7) * 262144) + (bit32.band(c2, 63) * 4096) + (bit32.band(c3, 63) * 64) + bit32.band(c4, 63) i = i + 4 else -- 错误情况可以返回nil 或自定义错误码 table.insert(res, nil) break end -- 在BMP的范围内,UTF-16码点与Unicode码点相同。 table.insert(res, unicode) end return res end cpp=getcpp() cppcd=cpp.cd cppxa=cpp.xa qy=gg.getRangesList('libil2cpp.so')[2].start so=gg.getRangesList('libil2cpp.so')[2].start print(cppcd) _ENV["getvalue"]=gg.getValues 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 else -- addr[1].value = addr[1].value & 0xFFFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end function gg.edits(addr, Table, name) if not addr then gg.toast('修改失败, 可能是模块不存在') return end local Table1 = { {}, {} } for k, v in ipairs(Table) do local value = { address = addr + v[3], value = v[1], flags = v[2], freeze = v[4] } if v[4] then Table1[2][#Table1[2] + 1] = value else Table1[1][#Table1[1] + 1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) --gg.toast((name or "") .. "开启成功, 共修改" .. #Table .. "个值") end -------------------动态------------------ local function jz(type) local jt= gg.getRangesList(type[1])[type[3]].start address=jt if type[4]==true then add=gg.addListItems else add=function() end end for k,v in pairs(type[2]) do if k==#type[2] then address=address+v add({{address=address,flags=gg.TYPE_QWORD,name="第\b"..k.."\b层"}}) else address=getvalue({{address=address+v,flags=gg.TYPE_QWORD}})[1].value end end return address end function zz(type) address=type[1] for k,v in pairs(type[2]) do if k==#type[2] then address=address+v else address=getvalue({{address=address+v,flags=gg.TYPE_QWORD}})[1].value end end return address end local PlayerController,pv={},{} local function loads(address) local load,value={} value=gg.getValues({{address=address+8,flags=4}})[1].value local address=gg.getValues({{address=address,flags=32}})[1].value for i=0,value-1 do load[#load+1]={address=address+0x20+i*8,flags=32} end return gg.getValues(load) end local b,name=gg.getValues(loads(readPointer("libil2cpp.so", {0x274C08, 0xB8, 0x38, 0x10}, cppcd))),{} for k,v in ipairs(b)do name[k]={address=v.value+0xF0,flags=32} pv[k]={address=v.value+0x40,flags=32} end name=gg.getValues(name) pv=gg.getValues(pv) b=(gg.getValues(b)) --print(b) for k,v in ipairs(getname(name)) do PlayerController[k]={name=v,address=pv[k].value} end address=readPointer("libil2cpp.so", {0x274C08, 0xB8, 0x48}, cppcd) local choice={} for k,v in ipairs(PlayerController) do choice[k]=v.name end function hp(x) local so = gg.getRangesList('libil2cpp.so')[2].start local so1 = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({{address = so + 0xA544B9C, flags = 4, value = -788478977}}) gg.setValues({{address = so + 0xA544B9C+0x4, flags = 4, value = -1459454979}}) gg.setValues({{address = so + 0xA544B9C+0x8, flags = 4, value = -763363296}}) gg.setValues({{address = so + 0xA544B9C+0xc, flags = 4, value = "71544397r"}})--0x76162c4 gg.setValues({{address = so + 0xA544B9C+0x10, flags = 4, value = -1442839583}}) gg.setValues({{address = so + 0xA544B9C+0x14, flags = 4, value = -1440807966}}) gg.setValues({{address = so + 0xA544B9C+0x18, flags = 4, value = 1476395200}}) gg.setValues({{address = so + 0xA544B9C+0x1c, flags = 4, value ="C5768C96r"}})--0x46ab3a4 gg.setValues({{address = so + 0xA544B9C+0x20, flags = 4, value = -1440807968}}) gg.setValues({{address = so + 0xA544B9C+0x24, flags = 4, value = -1455260675}}) gg.setValues({{address = so + 0xA544B9C+0x28, flags = 4, value = -1862220801}}) gg.setValues({{address = so + 0xA544B9C+0x2c, flags = 4, value = -698416192}}) gg.setValues({{address = so + 0xA544B9C+0x30, flags = 32, value = x}}) gg.setValues({{address = so1 + 0x42a5e20, flags = 4, value = "5F7B8A15r"}}) gg.sleep(500) gg.setValues({{address = so1 + 0x42a5e20, flags = 4, value = "FE0F1FF8r"}}) inject.shellcode(qy + 0xA544B9C, "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") end A=gg.multiChoice(choice) if A then for k,v in pairs(A) do hp(PlayerController[k].address) end end end), CAswitch('雷达扫描', function() --jichu("0E494397r")--7616fe0 local inject = {} inject.shellcode = function(addr,code) local results = {} for i=1,#code,2 do table.insert(results,{address = addr + (i + 1) / 2 - 1,flags = gg.TYPE_BYTE,value = string.sub(code,i,i + 1).."h"}) end gg.setValues(results) return saddr end -- 把以上代码复制到你脚本最前面即可 local function utf8_char_from_value(value) if type(value) == "table" then utf8_chars = {} for i, value in ipairs(value) do if value < 0 then utf8_chars[i] = value & 0xFFFF else utf8_chars[i] = value end end end return utf8.char(table.unpack(utf8_chars)) end local function getName(addr,shi) local data,data1={},{} for i=1,shi do data[1+#data]={address=addr+2+i*2,flags=2} end for k , v in pairs(gg.getValues(data)) do data[k]=v.value end return utf8_char_from_value(data) end local getname=function(x) local data,get={},{} for k,v in ipairs(gg.getValues(x)) do get[k]={address=v.value+0x10,flags=4} end for k,v in ipairs(gg.getValues(get)) do data[k]=getName(v.address,v.value) end return data end function getcpp() local cdx,xax for k,v in ipairs (gg.getRangesList("libil2cpp.so"))do local cd=gg.getValues({{address=gg.getValues({{address=v.start,flags=32}})[1].value,flags=4}})[1].value if cd~="1179403647" and v.state=="Cd" then cdx=k end local xa=gg.getValues({{address=v.start,flags=4}})[1].value if xa=="1179403647" and v.state=="Xa" then xax=k end end return {cd=cdx,xa=xax} end function utf8.byte(str) local res = {} local i = 1 -- 这是UTF-8到Unicode码点的转换 while i <= #str do local c = string.byte(str, i) local unicode if c >= 0 and c <= 127 then unicode = c i = i + 1 elseif c >= 192 and c <= 223 then local c2 = string.byte(str, i + 1) unicode = (bit32.band(c, 31) * 64) + bit32.band(c2, 63) i = i + 2 elseif c >= 224 and c <= 239 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) unicode = (bit32.band(c, 15) * 4096) + (bit32.band(c2, 63) * 64) + bit32.band(c3, 63) i = i + 3 elseif c >= 240 and c <= 247 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) local c4 = string.byte(str, i + 3) unicode = (bit32.band(c, 7) * 262144) + (bit32.band(c2, 63) * 4096) + (bit32.band(c3, 63) * 64) + bit32.band(c4, 63) i = i + 4 else -- 错误情况可以返回nil 或自定义错误码 table.insert(res, nil) break end -- 在BMP的范围内,UTF-16码点与Unicode码点相同。 table.insert(res, unicode) end return res end cpp=getcpp() cppcd=cpp.cd cppxa=cpp.xa qy=gg.getRangesList('libil2cpp.so')[2].start so=gg.getRangesList('libil2cpp.so')[2].start print(cppcd) _ENV["getvalue"]=gg.getValues 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 else -- addr[1].value = addr[1].value & 0xFFFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end function gg.edits(addr, Table, name) if not addr then gg.toast('修改失败, 可能是模块不存在') return end local Table1 = { {}, {} } for k, v in ipairs(Table) do local value = { address = addr + v[3], value = v[1], flags = v[2], freeze = v[4] } if v[4] then Table1[2][#Table1[2] + 1] = value else Table1[1][#Table1[1] + 1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) --gg.toast((name or "") .. "开启成功, 共修改" .. #Table .. "个值") end -------------------动态------------------ local function jz(type) local jt= gg.getRangesList(type[1])[type[3]].start address=jt if type[4]==true then add=gg.addListItems else add=function() end end for k,v in pairs(type[2]) do if k==#type[2] then address=address+v add({{address=address,flags=gg.TYPE_QWORD,name="第\b"..k.."\b层"}}) else address=getvalue({{address=address+v,flags=gg.TYPE_QWORD}})[1].value end end return address end function zz(type) address=type[1] for k,v in pairs(type[2]) do if k==#type[2] then address=address+v else address=getvalue({{address=address+v,flags=gg.TYPE_QWORD}})[1].value end end return address end local PlayerController,pv={},{} local function loads(address) local load,value={} value=gg.getValues({{address=address+8,flags=4}})[1].value local address=gg.getValues({{address=address,flags=32}})[1].value for i=0,value-1 do load[#load+1]={address=address+0x20+i*8,flags=32} end return gg.getValues(load) end local b,name=gg.getValues(loads(readPointer("libil2cpp.so", {0x274C08, 0xB8, 0x38, 0x10}, cppcd))),{} for k,v in ipairs(b)do name[k]={address=v.value+0xF0,flags=32} pv[k]={address=v.value+0x40,flags=32} end name=gg.getValues(name) pv=gg.getValues(pv) b=(gg.getValues(b)) --print(b) for k,v in ipairs(getname(name)) do PlayerController[k]={name=v,address=pv[k].value} end address=readPointer("libil2cpp.so", {0x274C08, 0xB8, 0x48}, cppcd) local choice={} for k,v in ipairs(PlayerController) do choice[k]=v.name end function hp(x) local so = gg.getRangesList('libil2cpp.so')[2].start local so1 = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({{address = so + 0xA544B9C, flags = 4, value = -788478977}}) gg.setValues({{address = so + 0xA544B9C+0x4, flags = 4, value = -1459454979}}) gg.setValues({{address = so + 0xA544B9C+0x8, flags = 4, value = -763363296}}) gg.setValues({{address = so + 0xA544B9C+0xc, flags = 4, value = "0E494397r"}})--0x76162c4 gg.setValues({{address = so + 0xA544B9C+0x10, flags = 4, value = -1442839583}}) gg.setValues({{address = so + 0xA544B9C+0x14, flags = 4, value = -1440807966}}) gg.setValues({{address = so + 0xA544B9C+0x18, flags = 4, value = 1476395200}}) gg.setValues({{address = so + 0xA544B9C+0x1c, flags = 4, value ="C5768C96r"}})--0x46ab3a4 gg.setValues({{address = so + 0xA544B9C+0x20, flags = 4, value = -1440807968}}) gg.setValues({{address = so + 0xA544B9C+0x24, flags = 4, value = -1455260675}}) gg.setValues({{address = so + 0xA544B9C+0x28, flags = 4, value = -1862220801}}) gg.setValues({{address = so + 0xA544B9C+0x2c, flags = 4, value = -698416192}}) gg.setValues({{address = so + 0xA544B9C+0x30, flags = 32, value = x}}) gg.setValues({{address = so1 + 0x42a5e20, flags = 4, value = "5F7B8A15r"}}) gg.sleep(500) gg.setValues({{address = so1 + 0x42a5e20, flags = 4, value = "FE0F1FF8r"}}) inject.shellcode(qy + 0xA544B9C, "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") end A=gg.multiChoice(choice) if A then for k,v in pairs(A) do hp(PlayerController[k].address) end end end), --CAswitch('指定倒地', 倒地()), CAswitch('移速飞天', function() --shengji("F04A4397r", 1038) qy=gg.getRangesList('libil2cpp.so')[3].start local inject = {} inject.shellcode = function(addr,code) local results = {} for i=1,#code,2 do table.insert(results,{address = addr + (i + 1) / 2 - 1,flags = gg.TYPE_BYTE,value = string.sub(code,i,i + 1).."h"}) end gg.setValues(results) return saddr end -- 把以上代码复制到你脚本最前面即可 local function utf8_char_from_value(value) if type(value) == "table" then utf8_chars = {} for i, value in ipairs(value) do if value < 0 then utf8_chars[i] = value & 0xFFFF else utf8_chars[i] = value end end end return utf8.char(table.unpack(utf8_chars)) end local function getName(addr,shi) local data,data1={},{} for i=1,shi do data[1+#data]={address=addr+2+i*2,flags=2} end for k , v in pairs(gg.getValues(data)) do data[k]=v.value end return utf8_char_from_value(data) end local getname=function(x) local data,get={},{} for k,v in ipairs(gg.getValues(x)) do get[k]={address=v.value+0x10,flags=4} end for k,v in ipairs(gg.getValues(get)) do data[k]=getName(v.address,v.value) end return data end function getcpp() local cdx,xax for k,v in ipairs (gg.getRangesList("libil2cpp.so"))do local cd=gg.getValues({{address=gg.getValues({{address=v.start,flags=32}})[1].value,flags=4}})[1].value if cd~="1179403647" and v.state=="Cd" then cdx=k end local xa=gg.getValues({{address=v.start,flags=4}})[1].value if xa=="1179403647" and v.state=="Xa" then xax=k end end return {cd=cdx,xa=xax} end function utf8.byte(str) local res = {} local i = 1 -- 这是UTF-8到Unicode码点的转换 while i <= #str do local c = string.byte(str, i) local unicode if c >= 0 and c <= 127 then unicode = c i = i + 1 elseif c >= 192 and c <= 223 then local c2 = string.byte(str, i + 1) unicode = (bit32.band(c, 31) * 64) + bit32.band(c2, 63) i = i + 2 elseif c >= 224 and c <= 239 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) unicode = (bit32.band(c, 15) * 4096) + (bit32.band(c2, 63) * 64) + bit32.band(c3, 63) i = i + 3 elseif c >= 240 and c <= 247 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) local c4 = string.byte(str, i + 3) unicode = (bit32.band(c, 7) * 262144) + (bit32.band(c2, 63) * 4096) + (bit32.band(c3, 63) * 64) + bit32.band(c4, 63) i = i + 4 else -- 错误情况可以返回nil 或自定义错误码 table.insert(res, nil) break end -- 在BMP的范围内,UTF-16码点与Unicode码点相同。 table.insert(res, unicode) end return res end cpp=getcpp() cppcd=cpp.cd cppxa=cpp.xa qy=gg.getRangesList('libil2cpp.so')[2].start so=gg.getRangesList('libil2cpp.so')[2].start print(cppcd) _ENV["getvalue"]=gg.getValues 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 else -- addr[1].value = addr[1].value & 0xFFFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end function gg.edits(addr, Table, name) if not addr then gg.toast('修改失败, 可能是模块不存在') return end local Table1 = { {}, {} } for k, v in ipairs(Table) do local value = { address = addr + v[3], value = v[1], flags = v[2], freeze = v[4] } if v[4] then Table1[2][#Table1[2] + 1] = value else Table1[1][#Table1[1] + 1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) --gg.toast((name or "") .. "开启成功, 共修改" .. #Table .. "个值") end -------------------动态------------------ local function jz(type) local jt= gg.getRangesList(type[1])[type[3]].start address=jt if type[4]==true then add=gg.addListItems else add=function() end end for k,v in pairs(type[2]) do if k==#type[2] then address=address+v add({{address=address,flags=gg.TYPE_QWORD,name="第\b"..k.."\b层"}}) else address=getvalue({{address=address+v,flags=gg.TYPE_QWORD}})[1].value end end return address end function zz(type) address=type[1] for k,v in pairs(type[2]) do if k==#type[2] then address=address+v else address=getvalue({{address=address+v,flags=gg.TYPE_QWORD}})[1].value end end return address end local PlayerController,pv={},{} local function loads(address) local load,value={} value=gg.getValues({{address=address+8,flags=4}})[1].value local address=gg.getValues({{address=address,flags=32}})[1].value for i=0,value-1 do load[#load+1]={address=address+0x20+i*8,flags=32} end return gg.getValues(load) end local b,name=gg.getValues(loads(readPointer("libil2cpp.so", {0x274C08, 0xB8, 0x38, 0x10}, cppcd))),{} for k,v in ipairs(b)do name[k]={address=v.value+0xF0,flags=32} pv[k]={address=v.value+0x40,flags=32} end name=gg.getValues(name) pv=gg.getValues(pv) b=(gg.getValues(b)) --print(b) for k,v in ipairs(getname(name)) do PlayerController[k]={name=v,address=pv[k].value} end address=readPointer("libil2cpp.so", {0x274C08, 0xB8, 0x48}, cppcd) local choice={} for k,v in ipairs(PlayerController) do choice[k]=v.name end function hp(x) gg.setValues({ {address = gg.getRangesList('libil2cpp.so')[2].start + 0xA544BE0 + 0x0, flags = 4, value = -788478977}, {address = gg.getRangesList('libil2cpp.so')[2].start + 0xA544BE0 + 0x4, flags = 4, value = -1459454979}, {address = gg.getRangesList('libil2cpp.so')[2].start + 0xA544BE0 + 0x8, flags = 4, value = 1476395424}, {address = gg.getRangesList('libil2cpp.so')[2].start + 0xA544BE0 + 0xc, flags = 4, value = 1476395425}, {address = gg.getRangesList('libil2cpp.so')[2].start + 0xA544BE0 + 0x10, flags = 4, value = "F04A4397r"},--0x72729e4 {address = gg.getRangesList('libil2cpp.so')[2].start + 0xA544BE0 + 0x14, flags = 4, value = -1442839583}, {address = gg.getRangesList('libil2cpp.so')[2].start + 0xA544BE0 + 0x18, flags = 4, value = -1440807966}, {address = gg.getRangesList('libil2cpp.so')[2].start + 0xA544BE0 + 0x1c, flags = 4, value = 1476395200}, {address = gg.getRangesList('libil2cpp.so')[2].start + 0xA544BE0 + 0x20, flags = 4, value = "B3768C96r"},--0x48626cc {address = gg.getRangesList('libil2cpp.so')[2].start + 0xA544BE0 + 0x24, flags = 4, value = -1440807968}, {address = gg.getRangesList('libil2cpp.so')[2].start + 0xA544BE0 + 0x28, flags = 4, value = -1455260675}, {address = gg.getRangesList('libil2cpp.so')[2].start + 0xA544BE0 + 0x2c, flags = 4, value = -1862220801}, {address = gg.getRangesList('libil2cpp.so')[2].start + 0xA544BE0 + 0x30, flags = 4, value = -698416192}, {address = gg.getRangesList('libil2cpp.so')[2].start + 0xA544BE0 + 0x34, flags = 32, value = x}, {address = gg.getRangesList('libil2cpp.so')[2].start + 0xA544BE0 + 0x3c, flags = 4, value = 1038}, {address = gg.getRangesList('libil2cpp.so')[2].start + 0xA544BE0 + 0x40, flags = 4, value = 5002}, {address = gg.getRangesList('libil2cpp.so')[2].start + 0x42a5e20, flags = 4, value = "707B8A15r"}, }) gg.sleep(500) gg.setValues({{address = gg.getRangesList('libil2cpp.so')[2].start + 0x60fafe0, flags = 4, value = "FE0F1FF8r"}}) inject.shellcode(qy + 0xA544BE0, "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") end A=gg.multiChoice(choice) if A then for k,v in pairs(A) do hp(PlayerController[k].address) end end end), CAswitch('指定逃生', function() --jichu("C1514397r")--0x76192ac local inject = {} inject.shellcode = function(addr,code) local results = {} for i=1,#code,2 do table.insert(results,{address = addr + (i + 1) / 2 - 1,flags = gg.TYPE_BYTE,value = string.sub(code,i,i + 1).."h"}) end gg.setValues(results) return saddr end -- 把以上代码复制到你脚本最前面即可 local function utf8_char_from_value(value) if type(value) == "table" then utf8_chars = {} for i, value in ipairs(value) do if value < 0 then utf8_chars[i] = value & 0xFFFF else utf8_chars[i] = value end end end return utf8.char(table.unpack(utf8_chars)) end local function getName(addr,shi) local data,data1={},{} for i=1,shi do data[1+#data]={address=addr+2+i*2,flags=2} end for k , v in pairs(gg.getValues(data)) do data[k]=v.value end return utf8_char_from_value(data) end local getname=function(x) local data,get={},{} for k,v in ipairs(gg.getValues(x)) do get[k]={address=v.value+0x10,flags=4} end for k,v in ipairs(gg.getValues(get)) do data[k]=getName(v.address,v.value) end return data end function getcpp() local cdx,xax for k,v in ipairs (gg.getRangesList("libil2cpp.so"))do local cd=gg.getValues({{address=gg.getValues({{address=v.start,flags=32}})[1].value,flags=4}})[1].value if cd~="1179403647" and v.state=="Cd" then cdx=k end local xa=gg.getValues({{address=v.start,flags=4}})[1].value if xa=="1179403647" and v.state=="Xa" then xax=k end end return {cd=cdx,xa=xax} end function utf8.byte(str) local res = {} local i = 1 -- 这是UTF-8到Unicode码点的转换 while i <= #str do local c = string.byte(str, i) local unicode if c >= 0 and c <= 127 then unicode = c i = i + 1 elseif c >= 192 and c <= 223 then local c2 = string.byte(str, i + 1) unicode = (bit32.band(c, 31) * 64) + bit32.band(c2, 63) i = i + 2 elseif c >= 224 and c <= 239 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) unicode = (bit32.band(c, 15) * 4096) + (bit32.band(c2, 63) * 64) + bit32.band(c3, 63) i = i + 3 elseif c >= 240 and c <= 247 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) local c4 = string.byte(str, i + 3) unicode = (bit32.band(c, 7) * 262144) + (bit32.band(c2, 63) * 4096) + (bit32.band(c3, 63) * 64) + bit32.band(c4, 63) i = i + 4 else -- 错误情况可以返回nil 或自定义错误码 table.insert(res, nil) break end -- 在BMP的范围内,UTF-16码点与Unicode码点相同。 table.insert(res, unicode) end return res end cpp=getcpp() cppcd=cpp.cd cppxa=cpp.xa qy=gg.getRangesList('libil2cpp.so')[2].start so=gg.getRangesList('libil2cpp.so')[2].start print(cppcd) _ENV["getvalue"]=gg.getValues 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 else -- addr[1].value = addr[1].value & 0xFFFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end function gg.edits(addr, Table, name) if not addr then gg.toast('修改失败, 可能是模块不存在') return end local Table1 = { {}, {} } for k, v in ipairs(Table) do local value = { address = addr + v[3], value = v[1], flags = v[2], freeze = v[4] } if v[4] then Table1[2][#Table1[2] + 1] = value else Table1[1][#Table1[1] + 1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) --gg.toast((name or "") .. "开启成功, 共修改" .. #Table .. "个值") end -------------------动态------------------ local function jz(type) local jt= gg.getRangesList(type[1])[type[3]].start address=jt if type[4]==true then add=gg.addListItems else add=function() end end for k,v in pairs(type[2]) do if k==#type[2] then address=address+v add({{address=address,flags=gg.TYPE_QWORD,name="第\b"..k.."\b层"}}) else address=getvalue({{address=address+v,flags=gg.TYPE_QWORD}})[1].value end end return address end function zz(type) address=type[1] for k,v in pairs(type[2]) do if k==#type[2] then address=address+v else address=getvalue({{address=address+v,flags=gg.TYPE_QWORD}})[1].value end end return address end local PlayerController,pv={},{} local function loads(address) local load,value={} value=gg.getValues({{address=address+8,flags=4}})[1].value local address=gg.getValues({{address=address,flags=32}})[1].value for i=0,value-1 do load[#load+1]={address=address+0x20+i*8,flags=32} end return gg.getValues(load) end local b,name=gg.getValues(loads(readPointer("libil2cpp.so", {0x274C08, 0xB8, 0x38, 0x10}, cppcd))),{} for k,v in ipairs(b)do name[k]={address=v.value+0xF0,flags=32} pv[k]={address=v.value+0x40,flags=32} end name=gg.getValues(name) pv=gg.getValues(pv) b=(gg.getValues(b)) --print(b) for k,v in ipairs(getname(name)) do PlayerController[k]={name=v,address=pv[k].value} end address=readPointer("libil2cpp.so", {0x274C08, 0xB8, 0x48}, cppcd) local choice={} for k,v in ipairs(PlayerController) do choice[k]=v.name end function hp(x) local so = gg.getRangesList('libil2cpp.so')[2].start local so1 = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({{address = so + 0xA544B9C, flags = 4, value = -788478977}}) gg.setValues({{address = so + 0xA544B9C+0x4, flags = 4, value = -1459454979}}) gg.setValues({{address = so + 0xA544B9C+0x8, flags = 4, value = -763363296}}) gg.setValues({{address = so + 0xA544B9C+0xc, flags = 4, value = "C1514397r"}})--0x76162c4 gg.setValues({{address = so + 0xA544B9C+0x10, flags = 4, value = -1442839583}}) gg.setValues({{address = so + 0xA544B9C+0x14, flags = 4, value = -1440807966}}) gg.setValues({{address = so + 0xA544B9C+0x18, flags = 4, value = 1476395200}}) gg.setValues({{address = so + 0xA544B9C+0x1c, flags = 4, value ="C5768C96r"}})--0x46ab3a4 gg.setValues({{address = so + 0xA544B9C+0x20, flags = 4, value = -1440807968}}) gg.setValues({{address = so + 0xA544B9C+0x24, flags = 4, value = -1455260675}}) gg.setValues({{address = so + 0xA544B9C+0x28, flags = 4, value = -1862220801}}) gg.setValues({{address = so + 0xA544B9C+0x2c, flags = 4, value = -698416192}}) gg.setValues({{address = so + 0xA544B9C+0x30, flags = 32, value = x}}) gg.setValues({{address = so1 + 0x42a5e20, flags = 4, value = "5F7B8A15r"}}) gg.sleep(500) gg.setValues({{address = so1 + 0x42a5e20, flags = 4, value = "FE0F1FF8r"}}) inject.shellcode(qy + 0xA544B9C, "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") end A=gg.multiChoice(choice) if A then for k,v in pairs(A) do hp(PlayerController[k].address) end end end), CAswitch('指定传送', function() --shengji1("15A84397r", 15)--0x762ef6c local inject = {} inject.shellcode = function(addr,code) local results = {} for i=1,#code,2 do table.insert(results,{address = addr + (i + 1) / 2 - 1,flags = gg.TYPE_BYTE,value = string.sub(code,i,i + 1).."h"}) end gg.setValues(results) return saddr end -- 把以上代码复制到你脚本最前面即可 local function utf8_char_from_value(value) if type(value) == "table" then utf8_chars = {} for i, value in ipairs(value) do if value < 0 then utf8_chars[i] = value & 0xFFFF else utf8_chars[i] = value end end end return utf8.char(table.unpack(utf8_chars)) end local function getName(addr,shi) local data,data1={},{} for i=1,shi do data[1+#data]={address=addr+2+i*2,flags=2} end for k , v in pairs(gg.getValues(data)) do data[k]=v.value end return utf8_char_from_value(data) end local getname=function(x) local data,get={},{} for k,v in ipairs(gg.getValues(x)) do get[k]={address=v.value+0x10,flags=4} end for k,v in ipairs(gg.getValues(get)) do data[k]=getName(v.address,v.value) end return data end function getcpp() local cdx,xax for k,v in ipairs (gg.getRangesList("libil2cpp.so"))do local cd=gg.getValues({{address=gg.getValues({{address=v.start,flags=32}})[1].value,flags=4}})[1].value if cd~="1179403647" and v.state=="Cd" then cdx=k end local xa=gg.getValues({{address=v.start,flags=4}})[1].value if xa=="1179403647" and v.state=="Xa" then xax=k end end return {cd=cdx,xa=xax} end function utf8.byte(str) local res = {} local i = 1 -- 这是UTF-8到Unicode码点的转换 while i <= #str do local c = string.byte(str, i) local unicode if c >= 0 and c <= 127 then unicode = c i = i + 1 elseif c >= 192 and c <= 223 then local c2 = string.byte(str, i + 1) unicode = (bit32.band(c, 31) * 64) + bit32.band(c2, 63) i = i + 2 elseif c >= 224 and c <= 239 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) unicode = (bit32.band(c, 15) * 4096) + (bit32.band(c2, 63) * 64) + bit32.band(c3, 63) i = i + 3 elseif c >= 240 and c <= 247 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) local c4 = string.byte(str, i + 3) unicode = (bit32.band(c, 7) * 262144) + (bit32.band(c2, 63) * 4096) + (bit32.band(c3, 63) * 64) + bit32.band(c4, 63) i = i + 4 else -- 错误情况可以返回nil 或自定义错误码 table.insert(res, nil) break end -- 在BMP的范围内,UTF-16码点与Unicode码点相同。 table.insert(res, unicode) end return res end cpp=getcpp() cppcd=cpp.cd cppxa=cpp.xa qy=gg.getRangesList('libil2cpp.so')[3].start so=gg.getRangesList('libil2cpp.so')[2].start print(cppcd) _ENV["getvalue"]=gg.getValues 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 else -- addr[1].value = addr[1].value & 0xFFFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end function gg.edits(addr, Table, name) if not addr then gg.toast('修改失败, 可能是模块不存在') return end local Table1 = { {}, {} } for k, v in ipairs(Table) do local value = { address = addr + v[3], value = v[1], flags = v[2], freeze = v[4] } if v[4] then Table1[2][#Table1[2] + 1] = value else Table1[1][#Table1[1] + 1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) --gg.toast((name or "") .. "开启成功, 共修改" .. #Table .. "个值") end -------------------动态------------------ local function jz(type) local jt= gg.getRangesList(type[1])[type[3]].start address=jt if type[4]==true then add=gg.addListItems else add=function() end end for k,v in pairs(type[2]) do if k==#type[2] then address=address+v add({{address=address,flags=gg.TYPE_QWORD,name="第\b"..k.."\b层"}}) else address=getvalue({{address=address+v,flags=gg.TYPE_QWORD}})[1].value end end return address end function zz(type) address=type[1] for k,v in pairs(type[2]) do if k==#type[2] then address=address+v else address=getvalue({{address=address+v,flags=gg.TYPE_QWORD}})[1].value end end return address end local PlayerController,pv={},{} local function loads(address) local load,value={} value=gg.getValues({{address=address+8,flags=4}})[1].value local address=gg.getValues({{address=address,flags=32}})[1].value for i=0,value-1 do load[#load+1]={address=address+0x20+i*8,flags=32} end return gg.getValues(load) end local b,name=gg.getValues(loads(readPointer("libil2cpp.so", {0x274C08, 0xB8, 0x38, 0x10}, cppcd))),{} for k,v in ipairs(b)do name[k]={address=v.value+0xF0,flags=32} pv[k]={address=v.value+0x40,flags=32} end name=gg.getValues(name) pv=gg.getValues(pv) b=(gg.getValues(b)) --print(b) for k,v in ipairs(getname(name)) do PlayerController[k]={name=v,address=pv[k].value} end address=readPointer("libil2cpp.so", {0x274C08, 0xB8, 0x48}, cppcd) local choice={} for k,v in ipairs(PlayerController) do choice[k]=v.name end function hp(x) local libil2cpp_base = gg.getRangesList('libil2cpp.so')[2].start local libil2cpp_base1 = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address = libil2cpp_base + 0xA544F0C + 0x0, flags = 4, value = -788478977}, {address = libil2cpp_base + 0xA544F0C + 0x4, flags = 4, value = -1459454979}, {address = libil2cpp_base + 0xA544F0C + 0x8, flags = 4, value = -763363264}, {address = libil2cpp_base + 0xA544F0C + 0xc, flags = 4, value = "15A84397r"}, {address = libil2cpp_base + 0xA544F0C + 0x10, flags = 4, value = -1442839583}, {address = libil2cpp_base + 0xA544F0C + 0x14, flags = 4, value = -1440807966}, {address = libil2cpp_base + 0xA544F0C + 0x18, flags = 4, value = 1476395200}, {address = libil2cpp_base + 0xA544F0C + 0x1c, flags = 4, value = "E9758C96r"}, {address = libil2cpp_base + 0xA544F0C + 0x20, flags = 4, value = -1440807968}, {address = libil2cpp_base + 0xA544F0C + 0x24, flags = 4, value = -1455260675}, {address = libil2cpp_base + 0xA544F0C + 0x28, flags = 4, value = -1862220801}, {address = libil2cpp_base + 0xA544F0C + 0x2c, flags = 4, value = -698416192}, {address = libil2cpp_base + 0xA544F0C + 0x30, flags = 32, value = x}, {address = libil2cpp_base + 0xA544F0C + 0x38, flags = 4, value = 15}, {address = libil2cpp_base1 + 0x60fafe0, flags = 4, value = "CB271115r"}, }) gg.sleep(500) gg.setValues({{address = libil2cpp_base1 + 0x60fafe0, flags = 4, value = "FE0F1FF8r"}}) inject.shellcode(qy + 0xA544F0C, "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") end A=gg.multiChoice(choice) if A then for k,v in pairs(A) do hp(PlayerController[k].address) end end end), CAswitch('指定武器', function() Fr=[=[ 一级 二级 三级 火箭筒:100 101 102 迫击炮:110 111 112 能量剑:140 141 142 冲锋枪:130 131 132 蹦蹦枪:150 151 152 霸天斧:110 111 112 霰弹枪:190 191 192 能量碗炮:180 181 182 聚合弓:220 221 222 幻风标:200 201 202 毁灭炮:50008 海洋河豚炮:50012 滋水枪:11130 🍭棒棒糖:50015 机甲:90400 金箍棒:9015001 回旋镖:50016 杨戳武器:9015002 吐气豚:50018 玉兔武器:9015003 追踪炮:50024 铁拳虎:9008001 月球车武器:90401 烟花加特林:50022 ]=] local Fr = gg.prompt({''..Fr..'输入你要改的武器代码'}, {''}, {'number'}) if Fr == nil then else --shengji1("E9D14397r", Fr[1]) local inject = {} inject.shellcode = function(addr,code) local results = {} for i=1,#code,2 do table.insert(results,{address = addr + (i + 1) / 2 - 1,flags = gg.TYPE_BYTE,value = string.sub(code,i,i + 1).."h"}) end gg.setValues(results) return saddr end -- 把以上代码复制到你脚本最前面即可 local function utf8_char_from_value(value) if type(value) == "table" then utf8_chars = {} for i, value in ipairs(value) do if value < 0 then utf8_chars[i] = value & 0xFFFF else utf8_chars[i] = value end end end return utf8.char(table.unpack(utf8_chars)) end local function getName(addr,shi) local data,data1={},{} for i=1,shi do data[1+#data]={address=addr+2+i*2,flags=2} end for k , v in pairs(gg.getValues(data)) do data[k]=v.value end return utf8_char_from_value(data) end local getname=function(x) local data,get={},{} for k,v in ipairs(gg.getValues(x)) do get[k]={address=v.value+0x10,flags=4} end for k,v in ipairs(gg.getValues(get)) do data[k]=getName(v.address,v.value) end return data end function getcpp() local cdx,xax for k,v in ipairs (gg.getRangesList("libil2cpp.so"))do local cd=gg.getValues({{address=gg.getValues({{address=v.start,flags=32}})[1].value,flags=4}})[1].value if cd~="1179403647" and v.state=="Cd" then cdx=k end local xa=gg.getValues({{address=v.start,flags=4}})[1].value if xa=="1179403647" and v.state=="Xa" then xax=k end end return {cd=cdx,xa=xax} end function utf8.byte(str) local res = {} local i = 1 -- 这是UTF-8到Unicode码点的转换 while i <= #str do local c = string.byte(str, i) local unicode if c >= 0 and c <= 127 then unicode = c i = i + 1 elseif c >= 192 and c <= 223 then local c2 = string.byte(str, i + 1) unicode = (bit32.band(c, 31) * 64) + bit32.band(c2, 63) i = i + 2 elseif c >= 224 and c <= 239 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) unicode = (bit32.band(c, 15) * 4096) + (bit32.band(c2, 63) * 64) + bit32.band(c3, 63) i = i + 3 elseif c >= 240 and c <= 247 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) local c4 = string.byte(str, i + 3) unicode = (bit32.band(c, 7) * 262144) + (bit32.band(c2, 63) * 4096) + (bit32.band(c3, 63) * 64) + bit32.band(c4, 63) i = i + 4 else -- 错误情况可以返回nil 或自定义错误码 table.insert(res, nil) break end -- 在BMP的范围内,UTF-16码点与Unicode码点相同。 table.insert(res, unicode) end return res end cpp=getcpp() cppcd=cpp.cd cppxa=cpp.xa qy=gg.getRangesList('libil2cpp.so')[3].start so=gg.getRangesList('libil2cpp.so')[2].start print(cppcd) _ENV["getvalue"]=gg.getValues 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 else -- addr[1].value = addr[1].value & 0xFFFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end function gg.edits(addr, Table, name) if not addr then gg.toast('修改失败, 可能是模块不存在') return end local Table1 = { {}, {} } for k, v in ipairs(Table) do local value = { address = addr + v[3], value = v[1], flags = v[2], freeze = v[4] } if v[4] then Table1[2][#Table1[2] + 1] = value else Table1[1][#Table1[1] + 1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) --gg.toast((name or "") .. "开启成功, 共修改" .. #Table .. "个值") end -------------------动态------------------ local function jz(type) local jt= gg.getRangesList(type[1])[type[3]].start address=jt if type[4]==true then add=gg.addListItems else add=function() end end for k,v in pairs(type[2]) do if k==#type[2] then address=address+v add({{address=address,flags=gg.TYPE_QWORD,name="第\b"..k.."\b层"}}) else address=getvalue({{address=address+v,flags=gg.TYPE_QWORD}})[1].value end end return address end function zz(type) address=type[1] for k,v in pairs(type[2]) do if k==#type[2] then address=address+v else address=getvalue({{address=address+v,flags=gg.TYPE_QWORD}})[1].value end end return address end local PlayerController,pv={},{} local function loads(address) local load,value={} value=gg.getValues({{address=address+8,flags=4}})[1].value local address=gg.getValues({{address=address,flags=32}})[1].value for i=0,value-1 do load[#load+1]={address=address+0x20+i*8,flags=32} end return gg.getValues(load) end local b,name=gg.getValues(loads(readPointer("libil2cpp.so", {0x274C08, 0xB8, 0x38, 0x10}, cppcd))),{} for k,v in ipairs(b)do name[k]={address=v.value+0xF0,flags=32} pv[k]={address=v.value+0x40,flags=32} end name=gg.getValues(name) pv=gg.getValues(pv) b=(gg.getValues(b)) --print(b) for k,v in ipairs(getname(name)) do PlayerController[k]={name=v,address=pv[k].value} end address=readPointer("libil2cpp.so", {0x274C08, 0xB8, 0x48}, cppcd) local choice={} for k,v in ipairs(PlayerController) do choice[k]=v.name end function hp(x) local libil2cpp_base = gg.getRangesList('libil2cpp.so')[2].start local libil2cpp_base1 = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address = libil2cpp_base + 0xA544F0C + 0x0, flags = 4, value = -788478977}, {address = libil2cpp_base + 0xA544F0C + 0x4, flags = 4, value = -1459454979}, {address = libil2cpp_base + 0xA544F0C + 0x8, flags = 4, value = -763363264}, {address = libil2cpp_base + 0xA544F0C + 0xc, flags = 4, value = "E9D14397r"}, {address = libil2cpp_base + 0xA544F0C + 0x10, flags = 4, value = -1442839583}, {address = libil2cpp_base + 0xA544F0C + 0x14, flags = 4, value = -1440807966}, {address = libil2cpp_base + 0xA544F0C + 0x18, flags = 4, value = 1476395200}, {address = libil2cpp_base + 0xA544F0C + 0x1c, flags = 4, value = "E9758C96r"}, {address = libil2cpp_base + 0xA544F0C + 0x20, flags = 4, value = -1440807968}, {address = libil2cpp_base + 0xA544F0C + 0x24, flags = 4, value = -1455260675}, {address = libil2cpp_base + 0xA544F0C + 0x28, flags = 4, value = -1862220801}, {address = libil2cpp_base + 0xA544F0C + 0x2c, flags = 4, value = -698416192}, {address = libil2cpp_base + 0xA544F0C + 0x30, flags = 32, value = x}, {address = libil2cpp_base + 0xA544F0C + 0x38, flags = 4, value = Fr[1]}, {address = libil2cpp_base1 + 0x60fafe0, flags = 4, value = "CB271115r"}, }) gg.sleep(500) gg.setValues({{address = libil2cpp_base1 + 0x60fafe0, flags = 4, value = "FE0F1FF8r"}}) inject.shellcode(qy + 0xA544F0C, "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") end A=gg.multiChoice(choice) if A then for k,v in pairs(A) do hp(PlayerController[k].address) end end end end), CAswitch('指定重生', function() --shengji1("6B544397r", 15) local inject = {} inject.shellcode = function(addr,code) local results = {} for i=1,#code,2 do table.insert(results,{address = addr + (i + 1) / 2 - 1,flags = gg.TYPE_BYTE,value = string.sub(code,i,i + 1).."h"}) end gg.setValues(results) return saddr end -- 把以上代码复制到你脚本最前面即可 local function utf8_char_from_value(value) if type(value) == "table" then utf8_chars = {} for i, value in ipairs(value) do if value < 0 then utf8_chars[i] = value & 0xFFFF else utf8_chars[i] = value end end end return utf8.char(table.unpack(utf8_chars)) end local function getName(addr,shi) local data,data1={},{} for i=1,shi do data[1+#data]={address=addr+2+i*2,flags=2} end for k , v in pairs(gg.getValues(data)) do data[k]=v.value end return utf8_char_from_value(data) end local getname=function(x) local data,get={},{} for k,v in ipairs(gg.getValues(x)) do get[k]={address=v.value+0x10,flags=4} end for k,v in ipairs(gg.getValues(get)) do data[k]=getName(v.address,v.value) end return data end function getcpp() local cdx,xax for k,v in ipairs (gg.getRangesList("libil2cpp.so"))do local cd=gg.getValues({{address=gg.getValues({{address=v.start,flags=32}})[1].value,flags=4}})[1].value if cd~="1179403647" and v.state=="Cd" then cdx=k end local xa=gg.getValues({{address=v.start,flags=4}})[1].value if xa=="1179403647" and v.state=="Xa" then xax=k end end return {cd=cdx,xa=xax} end function utf8.byte(str) local res = {} local i = 1 -- 这是UTF-8到Unicode码点的转换 while i <= #str do local c = string.byte(str, i) local unicode if c >= 0 and c <= 127 then unicode = c i = i + 1 elseif c >= 192 and c <= 223 then local c2 = string.byte(str, i + 1) unicode = (bit32.band(c, 31) * 64) + bit32.band(c2, 63) i = i + 2 elseif c >= 224 and c <= 239 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) unicode = (bit32.band(c, 15) * 4096) + (bit32.band(c2, 63) * 64) + bit32.band(c3, 63) i = i + 3 elseif c >= 240 and c <= 247 then local c2 = string.byte(str, i + 1) local c3 = string.byte(str, i + 2) local c4 = string.byte(str, i + 3) unicode = (bit32.band(c, 7) * 262144) + (bit32.band(c2, 63) * 4096) + (bit32.band(c3, 63) * 64) + bit32.band(c4, 63) i = i + 4 else -- 错误情况可以返回nil 或自定义错误码 table.insert(res, nil) break end -- 在BMP的范围内,UTF-16码点与Unicode码点相同。 table.insert(res, unicode) end return res end cpp=getcpp() cppcd=cpp.cd cppxa=cpp.xa qy=gg.getRangesList('libil2cpp.so')[3].start so=gg.getRangesList('libil2cpp.so')[2].start print(cppcd) _ENV["getvalue"]=gg.getValues 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 else -- addr[1].value = addr[1].value & 0xFFFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end function gg.edits(addr, Table, name) if not addr then gg.toast('修改失败, 可能是模块不存在') return end local Table1 = { {}, {} } for k, v in ipairs(Table) do local value = { address = addr + v[3], value = v[1], flags = v[2], freeze = v[4] } if v[4] then Table1[2][#Table1[2] + 1] = value else Table1[1][#Table1[1] + 1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) --gg.toast((name or "") .. "开启成功, 共修改" .. #Table .. "个值") end -------------------动态------------------ local function jz(type) local jt= gg.getRangesList(type[1])[type[3]].start address=jt if type[4]==true then add=gg.addListItems else add=function() end end for k,v in pairs(type[2]) do if k==#type[2] then address=address+v add({{address=address,flags=gg.TYPE_QWORD,name="第\b"..k.."\b层"}}) else address=getvalue({{address=address+v,flags=gg.TYPE_QWORD}})[1].value end end return address end function zz(type) address=type[1] for k,v in pairs(type[2]) do if k==#type[2] then address=address+v else address=getvalue({{address=address+v,flags=gg.TYPE_QWORD}})[1].value end end return address end local PlayerController,pv={},{} local function loads(address) local load,value={} value=gg.getValues({{address=address+8,flags=4}})[1].value local address=gg.getValues({{address=address,flags=32}})[1].value for i=0,value-1 do load[#load+1]={address=address+0x20+i*8,flags=32} end return gg.getValues(load) end local b,name=gg.getValues(loads(readPointer("libil2cpp.so", {0x274C08, 0xB8, 0x38, 0x10}, cppcd))),{} for k,v in ipairs(b)do name[k]={address=v.value+0xF0,flags=32} pv[k]={address=v.value+0x40,flags=32} end name=gg.getValues(name) pv=gg.getValues(pv) b=(gg.getValues(b)) --print(b) for k,v in ipairs(getname(name)) do PlayerController[k]={name=v,address=pv[k].value} end address=readPointer("libil2cpp.so", {0x274C08, 0xB8, 0x48}, cppcd) local choice={} for k,v in ipairs(PlayerController) do choice[k]=v.name end function hp(x) local libil2cpp_base = gg.getRangesList('libil2cpp.so')[2].start local libil2cpp_base1 = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({ {address = libil2cpp_base + 0xA544F0C + 0x0, flags = 4, value = -788478977}, {address = libil2cpp_base + 0xA544F0C + 0x4, flags = 4, value = -1459454979}, {address = libil2cpp_base + 0xA544F0C + 0x8, flags = 4, value = -763363264}, {address = libil2cpp_base + 0xA544F0C + 0xc, flags = 4, value = "6B544397r"}, {address = libil2cpp_base + 0xA544F0C + 0x10, flags = 4, value = -1442839583}, {address = libil2cpp_base + 0xA544F0C + 0x14, flags = 4, value = -1440807966}, {address = libil2cpp_base + 0xA544F0C + 0x18, flags = 4, value = 1476395200}, {address = libil2cpp_base + 0xA544F0C + 0x1c, flags = 4, value = "E9758C96r"}, {address = libil2cpp_base + 0xA544F0C + 0x20, flags = 4, value = -1440807968}, {address = libil2cpp_base + 0xA544F0C + 0x24, flags = 4, value = -1455260675}, {address = libil2cpp_base + 0xA544F0C + 0x28, flags = 4, value = -1862220801}, {address = libil2cpp_base + 0xA544F0C + 0x2c, flags = 4, value = -698416192}, {address = libil2cpp_base + 0xA544F0C + 0x30, flags = 32, value = x}, {address = libil2cpp_base + 0xA544F0C + 0x38, flags = 4, value = 15}, {address = libil2cpp_base1 + 0x60fafe0, flags = 4, value = "CB271115r"}, }) gg.sleep(500) gg.setValues({{address = libil2cpp_base1 + 0x60fafe0, flags = 4, value = "FE0F1FF8r"}}) inject.shellcode(qy + 0xA544F0C, "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000") end A=gg.multiChoice(choice) if A then for k,v in pairs(A) do hp(PlayerController[k].address) end end end), --CAswitch('指定重生', 重生()), --CAswitch('指定主机踢人', 踢人()), CAbutton('完美控人[组队开启]', function() local input = gg.prompt({"请输入控制人的名字:"}, {""}, {"text"}) if not input or input[1] == "" then return end local name = input[1]; local charCount = utf8.len(name) local wValues = utf8.byte(name) local t = {"libil2cpp.so", "Cd"}; local tt = {0x274C50,0xB8,0x8,0x28,0x10}; local ttt = tonumber(S_Pointer(t, tt, true)) if not ttt or ttt == 0 then gg.alert("基址失效") return end gg.setValues({{address = ttt, flags = 4, value = charCount}}) local writeValues = {} for i, wValue in ipairs(wValues) do table.insert(writeValues, {address = ttt + 0x4 + (i-1)*2, flags = 2, value = wValue}) end gg.setValues(writeValues) gg.alert("开启成功") end), },{ CAswitch('石台', function() math.randomseed(os.time()) Plana("ingRockDamageObject", 1.1, 0.5, math.random(1,10)) end, function() end), CAswitch('大乱斗锅', function() math.randomseed(os.time()) Plana("ingTuanziLotteryNpc", 1.2, 0.5, math.random(1,10)) end, function() end), CAswitch('雪球', function() math.randomseed(os.time()) Plana("Prop_SnowBall", 1.3, 0.5, math.random(1,10)) end, function() end), CAswitch('蓝色精灵加buff', function() math.randomseed(os.time()) Plana("ingCasual8v2ModeGhost", 1.4, 0.5, math.random(1,10)) end, function() end), CAswitch('雪人', function() math.randomseed(os.time()) Plana("SnowmanMonitor", 1.5, 0.5, math.random(1,10)) end, function() end), CAswitch('训练营飞机', function() math.randomseed(os.time()) Plana("ingCasual8v2Airplane", 1.6, 0.5, math.random(1,10)) end, function() end), CAswitch('ingLevelProvingAirplane', function() math.randomseed(os.time()) Plana("ingLevelProvingAirplane", 1.7, 0.5, math.random(1,10)) end, function() end), CAswitch('野菜蓝盒子', function() math.randomseed(os.time()) Plana("ingChefSeason_Box_BR", 1.8, 0.5, math.random(1,10)) end, function() end), CAswitch('黄色精灵行走', function() math.randomseed(os.time()) Plana("ingCasual8v2ModeGhostGold", 1.9, 0.5, math.random(1,10)) end, function() end), CAswitch('坑队友胶囊', function() math.randomseed(os.time()) Plana("ingPropBuffObject", 2.0, 0.5, math.random(1,10)) end, function() end), CAswitch('?号方块', function() math.randomseed(os.time()) Plana("ingFootBallObject", 2.1, 0.5, math.random(1,10)) end, function() end), CAswitch('紫色矿物', function() math.randomseed(os.time()) Plana("InGameWord_TRANSFO_TreasureBox", 2.2, 0.5, math.random(1,10)) end, function() end), CAswitch('紫色矿物碎片', function() math.randomseed(os.time()) Plana("InGameWord_TRANSFO_Shared", 2.3, 0.5, math.random(1,10)) end, function() end), CAswitch('白色精灵加冰', function() math.randomseed(os.time()) Plana("ingCasual8v2ModeGhostWhite", 2.4, 0.5, math.random(1,10)) end, function() end), CAswitch('?号方块消失', function() math.randomseed(os.time()) Plana("ingParkourItemBox", 2.5, 0.5, math.random(1,10)) end, function() end), CAswitch('空气墙', function() math.randomseed(os.time()) Plana("SnowManPlaceableObject", 2.6, 0.5, math.random(1,10)) end, function() end), CAswitch('侦查眼雪人', function() math.randomseed(os.time()) Plana("SnowmanMonitor", 2.7, 0.5, math.random(1,10)) end, function() end), CAswitch('水乐园梯子', function() math.randomseed(os.time()) Plana("ingBattleRoyaleBridgeSwitch", 2.8, 0.5, math.random(1,10)) end, function() end), CAswitch('水乐园地图', function() math.randomseed(os.time()) Plana("ingLevelAmusementPark_Scene", 2.9, 0.5, math.random(1,10)) end, function() end), CAswitch('4v1地图', function() math.randomseed(os.time()) Plana("ingLevelPartyGame_04_Scene", 3.0, 0.5, math.random(1,10)) end, function() end), CAswitch('大乱斗地图', function() math.randomseed(os.time()) Plana("ingLevelBattleRoyale_Scene", 3.1, 0.5, math.random(1,10)) end, function() end), CAswitch('猪猪模式', function() math.randomseed(os.time()) Plana("ingLevelMatching_Scene", 3.2, 0.5, math.random(1,10)) end, function() end), CAswitch('沙滩模式', function() math.randomseed(os.time()) Plana("ingLevelbeach_Scene", 3.3, 0.5, math.random(1,10)) end, function() end), CAswitch('大乱斗所有怪物', function() math.randomseed(os.time()) Plana("ingBattleRoyaleMonsterSpawner", 3.4, 0.5, math.random(1,10)) end, function() end), CAswitch('飞机刷任何物品', function() math.randomseed(os.time()) Plana("ingRogueModeController", 3.5, 0.5, math.random(1,10)) end, function() end), CAswitch('原方型建筑开关', function() math.randomseed(os.time()) Plana("ingMapLifterPlatformObject", 3.6, 0.5, math.random(1,10)) end, function() end), CAswitch('大炮', function() math.randomseed(os.time()) Plana("ingMapTubeObject", 3.7, 0.5, math.random(1,10)) end, function() end), CAswitch('飞天猪', function() math.randomseed(os.time()) Plana("ingRocketBase", 3.8, 0.5, math.random(1,10)) end, function() end), CAswitch('补给箱', function() math.randomseed(os.time()) Plana("RescueSupplyBox", 3.9, 0.5, math.random(1,10)) end, function() end), CAswitch('敌方的医疗护盾', function() math.randomseed(os.time()) Plana("ingHealFollowObject", 4.0, 0.5, math.random(1,10)) end, function() end), CAswitch('白银箱子有道具片', function() math.randomseed(os.time()) Plana("DaoJuXiang82", 4.1, 0.5, math.random(1,10)) end, function() end), CAswitch('树木', function() math.randomseed(os.time()) Plana("YDH_Tree_Shift", 4.2, 0.5, math.random(1,10)) end, function() end), CAswitch('金币', function() math.randomseed(os.time()) Plana("ingRescue_Coin", 4.3, 0.5, math.random(1,10)) end, function() end), CAswitch('飞天气球', function() math.randomseed(os.time()) Plana("BalloonObject", 4.4, 0.5, math.random(1,10)) end, function() end), CAswitch('小猪气球', function() math.randomseed(os.time()) Plana("RescueBalloon", 4.5, 0.5, math.random(1,10)) end, function() end), CAswitch('排球', function() math.randomseed(os.time()) Plana("Volleyball_PropBall", 4.6, 0.5, math.random(1,10)) end, function() end), CAswitch('足球', function() math.randomseed(os.time()) Plana("Football_PropBall", 4.7, 0.5, math.random(1,10)) end, function() end), CAswitch('篮球', function() math.randomseed(os.time()) Plana("Basketball_PropBall", 4.8, 0.5, math.random(1,10)) end, function() end), CAswitch('八角盒', function() math.randomseed(os.time()) Plana("LongChengHotel", 4.9, 0.5, math.random(1,10)) end, function() end), CAswitch('狗房子', function() math.randomseed(os.time()) Plana("ingXiaoXin_GouWu", 5.0, 0.5, math.random(1,10)) end, function() end), CAswitch('物品草丛', function() math.randomseed(os.time()) Plana("YDH_Grass_Shift", 5.1, 0.5, math.random(1,10)) end, function() end), CAswitch('黄色油漆', function() math.randomseed(os.time()) Plana("ingXiaoXin_LuPai", 5.2, 0.5, math.random(1,10)) end, function() end), CAswitch('补给箱可以给两百金币', function() math.randomseed(os.time()) Plana("LongZhuJuZhongJinBiXiang", 5.3, 0.5, math.random(1,10)) end, function() end), CAswitch('贩卖机1', function() math.randomseed(os.time()) Plana("ZiDongShouMaiJi_XionEr", 5.4, 0.5, math.random(1,10)) end, function() end), CAswitch('物品墙壁', function() math.randomseed(os.time()) Plana("YDH_Wall_Shift", 5.5, 0.5, math.random(1,10)) end, function() end), CAswitch('物品箱子', function() math.randomseed(os.time()) Plana("ingSupplyBox_Shape", 5.6, 0.5, math.random(1,10)) end, function() end), CAswitch('售卖机2', function() math.randomseed(os.time()) Plana("ZiDongShouMaiJi_GuangTouQiang", 5.7, 0.5, math.random(1,10)) end, function() end), CAswitch('蜡笔小新的小车', function() math.randomseed(os.time()) Plana("ingXiaoXinBusObject", 5.8, 0.5, math.random(1,10)) end, function() end), CAswitch('小白狗可以加血', function() math.randomseed(os.time()) Plana("XiaoxinKennelObject", 5.9, 0.5, math.random(1,10)) end, function() end), CAswitch('蜡笔小新小道具', function() math.randomseed(os.time()) Plana("Prop_XiaoxinMan", 6.0, 0.5, math.random(1,10)) end, function() end), CAswitch('不加血的小白狗', function() math.randomseed(os.time()) Plana("ingXiaoXinWhiteDog", 6.1, 0.5, math.random(1,10)) end, function() end), CAswitch('红绿灯', function() math.randomseed(os.time()) Plana("XiaoXinBusController", 6.2, 0.5, math.random(1,10)) end, function() end), CAswitch('贩卖机41', function() math.randomseed(os.time()) Plana("ZiDongShouMaiJi_41", 6.3, 0.5, math.random(1,10)) end, function() end), CAswitch('贩卖机82', function() math.randomseed(os.time()) Plana("ZiDongShouMaiJi_82", 6.4, 0.5, math.random(1,10)) end, function() end), CAswitch('不知', function() math.randomseed(os.time()) Plana("PickUp_Model_ECS", 6.5, 0.5, math.random(1,10)) end, function() end), CAswitch('小道具磁力小宝', function() math.randomseed(os.time()) Plana("Prop_CiXiXiaoBao", 6.6, 0.5, math.random(1,10)) end, function() end), CAswitch('磁力小宝的外形', function() math.randomseed(os.time()) Plana("DropPartyGame", 6.7, 0.5, math.random(1,10)) end, function() end), CAswitch('可交互数字牌1', function() math.randomseed(os.time()) Plana("ScoreBasketBall", 6.8, 0.5, math.random(1,10)) end, function() end), CAswitch('可交互数字牌2', function() math.randomseed(os.time()) Plana("ScoreFootBall", 6.9, 0.5, math.random(1,10)) end, function() end), CAswitch('训练场飞机', function() math.randomseed(os.time()) Plana("ingLevelProvingAirplane", 7.0, 0.5, math.random(1,10)) end, function() end), CAswitch('团子的粽子', function() math.randomseed(os.time()) Plana("ingHealDropObject", 7.1, 0.5, math.random(1,10)) end, function() end), CAswitch('大乱斗的弹跳版', function() math.randomseed(os.time()) Plana("ingPlacableCannon", 7.2, 0.5, math.random(1,10)) end, function() end), CAswitch('猪猪刷气球', function() math.randomseed(os.time()) Plana("RescueObject_BalloonAbility", 7.3, 0.5, math.random(1,10)) end, function() end), CAswitch('猪猪', function() math.randomseed(os.time()) Plana("RescueObject_FountainAbility", 7.4, 0.5, math.random(1,10)) end, function() end), CAswitch('粉色大炮', function() math.randomseed(os.time()) Plana("ingMapTubeObjectMatching", 7.5, 0.5, math.random(1,10)) end, function() end), CAswitch('小白狗可攻击', function() math.randomseed(os.time()) Plana("ingFsmDog", 7.6, 0.5, math.random(1,10)) end, function() end), CAswitch('小道具气囊', function() math.randomseed(os.time()) Plana("Prop_QiDian", 7.7, 0.5, math.random(1,10)) end, function() end), CAswitch('小道具墙壁', function() math.randomseed(os.time()) Plana("Prop_CoinBox", 7.8, 0.5, math.random(1,10)) end, function() end), CAswitch('某个龙的技能', function() math.randomseed(os.time()) Plana("JianlongAttack", 7.9, 0.5, math.random(1,10)) end, function() end), CAswitch('可交互红绿灯', function() math.randomseed(os.time()) Plana("XiaoXinBusController", 8.0, 0.5, math.random(1,10)) end, function() end), CAswitch('小道具猪', function() math.randomseed(os.time()) Plana("Prop_RescueObject", 8.1, 0.5, math.random(1,10)) end, function() end), CAswitch('金卡片', function() math.randomseed(os.time()) Plana("Prop_MatchingDaoJuKa", 8.2, 0.5, math.random(1,10)) end, function() end), CAswitch('刷水乐园所有物品', function() math.randomseed(os.time()) Plana("ingMovables_9993", 8.3, 0.5, math.random(1,10)) end, function() end), CAswitch('物品椅子', function() math.randomseed(os.time()) Plana("chair", 8.4, 0.5, math.random(1,10)) end, function() end), CAswitch('物品床', function() math.randomseed(os.time()) Plana("bed", 8.5, 0.5, math.random(1,10)) end, function() end), CAswitch('物品箱子', function() math.randomseed(os.time()) Plana("box", 8.6, 0.5, math.random(1,10)) end, function() end), CAswitch('物品长箱子', function() math.randomseed(os.time()) Plana("box_tall", 8.7, 0.5, math.random(1,10)) end, function() end), CAswitch('物品马桶', function() math.randomseed(os.time()) Plana("Closestool", 8.8, 0.5, math.random(1,10)) end, function() end), CAswitch('物品电脑', function() math.randomseed(os.time()) Plana("Computer1", 8.9, 0.5, math.random(1,10)) end, function() end), CAswitch('物品柜子', function() math.randomseed(os.time()) Plana("drawer", 9.0, 0.5, math.random(1,10)) end, function() end), CAswitch('物品花', function() math.randomseed(os.time()) Plana("flowerpot1", 9.1, 0.5, math.random(1,10)) end, function() end), CAswitch('物品红桃a', function() math.randomseed(os.time()) Plana("billBoard", 9.2, 0.5, math.random(1,10)) end, function() end), CAswitch('物品球', function() math.randomseed(os.time()) Plana("ball_movable", 9.3, 0.5, math.random(1,10)) end, function() end), CAswitch('物品球2', function() math.randomseed(os.time()) Plana("ball", 9.4, 0.5, math.random(1,10)) end, function() end), CAswitch('物品仙人掌', function() math.randomseed(os.time()) Plana("cactus", 9.5, 0.5, math.random(1,10)) end, function() end), CAswitch('道具桌子', function() math.randomseed(os.time()) Plana("table", 9.6, 0.5, math.random(1,10)) end, function() end), CAswitch('物品路障', function() math.randomseed(os.time()) Plana("traffic-cones", 9.7, 0.5, math.random(1,10)) end, function() end), CAswitch('物品蓝色垃圾桶', function() math.randomseed(os.time()) Plana("trashbin_Blue", 9.8, 0.5, math.random(1,10)) end, function() end), CAswitch('物品绿色垃圾桶', function() math.randomseed(os.time()) Plana("trashbin_Green", 9.9, 0.5, math.random(1,10)) end, function() end), CAswitch('物品网络牌子', function() math.randomseed(os.time()) Plana("WifiBoard", 10.0, 0.5, math.random(1,10)) end, function() end), CAswitch('雪堆', function() math.randomseed(os.time()) Plana("Snowdrift", 10.1, 0.5, math.random(1,10)) end, function() end), CAswitch('史莱姆移动', function() math.randomseed(os.time()) Plana("ing09003001_Shilaimu", 10.2, 0.5, math.random(1,10)) end, function() end), CAswitch('史莱姆不动', function() math.randomseed(os.time()) Plana("ing09003001_Shilaimu_Summons_v2", 10.3, 0.5, math.random(1,10)) end, function() end), CAswitch('蘑菇怪移动', function() math.randomseed(os.time()) Plana("ing09003002_Mogu", 10.4, 0.5, math.random(1,10)) end, function() end), CAswitch('蘑菇怪不动', function() math.randomseed(os.time()) Plana("ing09003002_Mogu_Summons_v2", 10.5, 0.5, math.random(1,10)) end, function() end), CAswitch('龙人移动', function() math.randomseed(os.time()) Plana("ing09003003_Longren", 10.6, 0.5, math.random(1,10)) end, function() end), CAswitch('龙人不动', function() math.randomseed(os.time()) Plana("ing09003003_Longren_Summons_v2", 10.7, 0.5, math.random(1,10)) end, function() end), CAswitch('大炮BOOS', function() math.randomseed(os.time()) Plana("Boss_01", 10.8, 0.5, math.random(1,10)) end, function() end), CAswitch('机械BOOS', function() math.randomseed(os.time()) Plana("Boss_02", 10.9, 0.5, math.random(1,10)) end, function() end), CAswitch('小恐龙BOSS', function() math.randomseed(os.time()) Plana("Boss_03", 11.0, 0.5, math.random(1,10)) end, function() end), CAswitch('炼丹炉', function() math.randomseed(os.time()) Plana("ingVehicleLianDanLu", 11.1, 0.5, math.random(1,10)) end, function() end), CAswitch('船', function() math.randomseed(os.time()) Plana("SDCAutoShipObject", 11.2, 0.5, math.random(1,10)) end, function() end), CAswitch('墨渊载具', function() math.randomseed(os.time()) Plana("ingVehicleMoyuan", 11.3, 0.5, math.random(1,10)) end, function() end), CAswitch('月球车', function() math.randomseed(os.time()) Plana("ingVehicleMoonCar", 11.5, 0.5, math.random(1,10)) end, function() end), CAswitch('BOSS生成器', function() math.randomseed(os.time()) Plana("BossSpawner", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('聚宝盆', function() math.randomseed(os.time()) Plana("TreasureBowlObject", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('摸金撤离点', function() math.randomseed(os.time()) Plana("ingEscapeArea_Ecs ", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('箱子', function() math.randomseed(os.time()) Plana("SupplementBox_Contest82 ", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('喷水章鱼', function() math.randomseed(os.time()) Plana("ingWaterSprayMonster", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('地面刷新卡', function() math.randomseed(os.time()) Plana("Prop_CiXiXiaoBao", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('巴西服宇宙宝箱', function() math.randomseed(os.time()) Plana("ingUniverse_Box_BR", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('小道具', function() math.randomseed(os.time()) Plana("Gou", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('空中坡道实体', function() math.randomseed(os.time()) Plana("AirSlopeObject", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('空中坡道实体1', function() math.randomseed(os.time()) Plana("AirSlopeObject1", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('左侧左下空中坡道', function() math.randomseed(os.time()) Plana("AirSlopeObject LD1~LD6", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('左上空中坡道', function() math.randomseed(os.time()) Plana("AirSlopeObject LU1~LU9", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('小型空中坡道', function() math.randomseed(os.time()) Plana("AirSlopeObject SM1~SM2", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('普通球体', function() math.randomseed(os.time()) Plana("ball", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('可移动球体', function() math.randomseed(os.time()) Plana("ball_movable", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('篮球场景道具', function() math.randomseed(os.time()) Plana("Basketball_PropBall", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('足球场景道具', function() math.randomseed(os.time()) Plana("Football_PropBall", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('篮球计分装置', function() math.randomseed(os.time()) Plana("ScoreBasketBall", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('足球计分装置', function() math.randomseed(os.time()) Plana("ScoreFootBall", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('排球场景道具', function() math.randomseed(os.time()) Plana("Volleyball_PropBall", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('大乱斗模式气球', function() math.randomseed(os.time()) Plana("BalloonObjectBR", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('吧台椅', function() math.randomseed(os.time()) Plana("bar-chair", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('床', function() math.randomseed(os.time()) Plana("bed", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('广告牌', function() math.randomseed(os.time()) Plana("billBoard", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('箱子', function() math.randomseed(os.time()) Plana("box", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('高箱子', function() math.randomseed(os.time()) Plana("box_tall", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('仙人掌', function() math.randomseed(os.time()) Plana("cactus", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('普通椅子', function() math.randomseed(os.time()) Plana("chair", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('马桶', function() math.randomseed(os.time()) Plana("Closestool", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('电脑', function() math.randomseed(os.time()) Plana("Computer1", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('抽屉', function() math.randomseed(os.time()) Plana("drawer", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('鸭子摆件', function() math.randomseed(os.time()) Plana("duck", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('花盆', function() math.randomseed(os.time()) Plana("flowerpot1", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('矮圆凳', function() math.randomseed(os.time()) Plana("stool", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('桌子', function() math.randomseed(os.time()) Plana("table", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('交通路锥', function() math.randomseed(os.time()) Plana("traffic-cones", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('陷阱', function() math.randomseed(os.time()) Plana("Trap", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('逃生门', function() math.randomseed(os.time()) Plana("EscapeDoor", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('逃生门背面', function() math.randomseed(os.time()) Plana("EscapeDoor_BackSide", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('无框逃生门背面', function() math.randomseed(os.time()) Plana("EscapeDoor_BackSide_NoFrame", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('新版4v1无框逃生门背面', function() math.randomseed(os.time()) Plana("EscapeDoor_BackSide_NoFrame_New4v1", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('无框逃生门', function() math.randomseed(os.time()) Plana("EscapeDoor_NoFrame", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('训练场逃生门', function() math.randomseed(os.time()) Plana("EscapeDoor_ProvingRange", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('大乱斗场景门', function() math.randomseed(os.time()) Plana("ing_qcc_br_Door", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('大乱斗禁闭室门', function() math.randomseed(os.time()) Plana("ing_qcc_br_Door_Prison", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('游乐园逃生门', function() math.randomseed(os.time()) Plana("ingEscapeDoor_AmusementPark", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('关闭内门', function() math.randomseed(os.time()) Plana("ingInnerDoor_Closed", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('大乱斗关闭内门', function() math.randomseed(os.time()) Plana("ingInnerDoor_Closed_BattleRoyale", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('大乱斗开启内门', function() math.randomseed(os.time()) Plana("ingInnerDoor_Open_BattleRoyale", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('大乱斗禁闭室门背面', function() math.randomseed(os.time()) Plana("ingJailDoor_BackSide_BattleRoyale", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('娱乐模式禁闭室门', function() math.randomseed(os.time()) Plana("ingJailDoor_PartyGame", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('娱乐模式禁闭室门背面', function() math.randomseed(os.time()) Plana("ingJailDoor_PartyGame_BackSide", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('大乱斗关闭外门', function() math.randomseed(os.time()) Plana("ingOuterDoor_Closed_BattleRoyale", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('大乱斗开启外门', function() math.randomseed(os.time()) Plana("ingOuterDoor_Open_BattleRoyale", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('关闭内门通用', function() math.randomseed(os.time()) Plana("InnerDoor_Close", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('无框关闭内门', function() math.randomseed(os.time()) Plana("InnerDoor_Close_NoFrame", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('开启内门通用', function() math.randomseed(os.time()) Plana("InnerDoor_Open", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('无框开启内门', function() math.randomseed(os.time()) Plana("InnerDoor_Open_NoFrame", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('禁闭室基础门', function() math.randomseed(os.time()) Plana("JailDoor", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('禁闭室门背面', function() math.randomseed(os.time()) Plana("JailDoor_BackSide", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('无框禁闭室门背面', function() math.randomseed(os.time()) Plana("JailDoor_BackSide_NoFrame", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('无框禁闭室门', function() math.randomseed(os.time()) Plana("JailDoor_NoFrame", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('开启外门', function() math.randomseed(os.time()) Plana("OuterDoor_Open", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('无框开启外门', function() math.randomseed(os.time()) Plana("OuterDoor_Open_NoFrame", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('一号BOSS', function() math.randomseed(os.time()) Plana("Boss_01", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('二号BOSS', function() math.randomseed(os.time()) Plana("Boss_02", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('三号BOSS', function() math.randomseed(os.time()) Plana("Boss_03", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('BOSS生成器', function() math.randomseed(os.time()) Plana("BossSpawner", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('史莱姆实体', function() math.randomseed(os.time()) Plana("ing09003001_Shilaimu", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('史莱姆二代召唤物', function() math.randomseed(os.time()) Plana("ing09003001_Shilaimu_Summons_v2", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('蘑菇怪二代召唤物', function() math.randomseed(os.time()) Plana("ing09003002_Mogu_Summons_v2", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('龙人实体', function() math.randomseed(os.time()) Plana("ing09003003_Longren", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('龙人二代召唤物', function() math.randomseed(os.time()) Plana("ing09003003_Longren_Summons_v2", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('波洛斯怪物', function() math.randomseed(os.time()) Plana("ing09003004_Boluosi", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('怪物实体一号', function() math.randomseed(os.time()) Plana("ingEcs_MobsObject_01", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('怪物实体二号', function() math.randomseed(os.time()) Plana("ingEcs_MobsObject_02", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('怪物实体三号', function() math.randomseed(os.time()) Plana("ingEcs_MobsObject_03", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('怪物技能二子弹', function() math.randomseed(os.time()) Plana("ingMonster30009_Skill2_Bullet", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('怪物技能四子弹', function() math.randomseed(os.time()) Plana("ingMonster30009_Skill4_Bullet", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('怪物逻辑预制体', function() math.randomseed(os.time()) Plana("MonsterLogicPrefab", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('警察影子', function() math.randomseed(os.time()) Plana("Police07Shadow", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('追捕者生成器', function() math.randomseed(os.time()) Plana("PoliceSpawner", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('逃生者生成器', function() math.randomseed(os.time()) Plana("ThiefSpawner", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('烟雾怪', function() math.randomseed(os.time()) Plana("YanWu", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('烟雾幽灵', function() math.randomseed(os.time()) Plana("YanWuGhost", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('41号道具箱', function() math.randomseed(os.time()) Plana("DaoJuXiang41", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('82号道具箱', function() math.randomseed(os.time()) Plana("DaoJuXiang82", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('厨师赛季大乱斗宝箱', function() math.randomseed(os.time()) Plana("ingChefSeason_Box_BR", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('航海赛季大乱斗宝箱', function() math.randomseed(os.time()) Plana("ingSeaSeason_Box_BR", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('天宫赛季大乱斗宝箱', function() math.randomseed(os.time()) Plana("ingTianGong_Box_BR", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('宇宙赛季大乱斗宝箱', function() math.randomseed(os.time()) Plana("ingUniverse_Box_BR", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('救援模式补给箱', function() math.randomseed(os.time()) Plana("RescueSupplyBox", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('82高级补给箱', function() math.randomseed(os.time()) Plana("SupperSupplyBox82", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('41竞技补给箱', function() math.randomseed(os.time()) Plana("SupplementBox_Contest41", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('82竞技补给箱', function() math.randomseed(os.time()) Plana("SupplementBox_Contest82", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('补给箱生成器', function() math.randomseed(os.time()) Plana("SupplyBoxSpawner", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('宝藏', function() math.randomseed(os.time()) Plana("Treasure", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('藏宝图', function() math.randomseed(os.time()) Plana("TreasureMap", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('可破坏金库', function() math.randomseed(os.time()) Plana("ingDamageableVaultObject", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('通用金库', function() math.randomseed(os.time()) Plana("Vault", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('41关闭金库', function() math.randomseed(os.time()) Plana("Vault_41_Close", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('41远景金库', function() math.randomseed(os.time()) Plana("Vault_41_Far", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('新版41关闭金库', function() math.randomseed(os.time()) Plana("Vault_New41_Close", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('新版41远景金库', function() math.randomseed(os.time()) Plana("Vault_New41_Far", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('钓鱼宝藏', function() math.randomseed(os.time()) Plana("FishingTreasure", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('渔船实体', function() math.randomseed(os.time()) Plana("FishshipObject", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('航海城堡', function() math.randomseed(os.time()) Plana("ingChengBao_Hanghai", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('航海船只', function() math.randomseed(os.time()) Plana("ingChuan_Hanghai", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('鱼篓', function() math.randomseed(os.time()) Plana("ingFishBasket", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('航海场景实体1', function() math.randomseed(os.time()) Plana("ingHanghai_1", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('航海枯树', function() math.randomseed(os.time()) Plana("ingKuShu_Hanghai", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('航海木桶', function() math.randomseed(os.time()) Plana("ingMuTong_Hanghai", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('航海珊瑚', function() math.randomseed(os.time()) Plana("ingShanhu_Hanghai", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('航海石头', function() math.randomseed(os.time()) Plana("ingShiTou_Hanghai", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('战船实体', function() math.randomseed(os.time()) Plana("WarshipObject", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('太空冰冻伤害体', function() math.randomseed(os.time()) Plana("ingIceDamageObject_Taikong", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('太空落石伤害体', function() math.randomseed(os.time()) Plana("ingRockDamageObject_Taikong", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('太空暴风雪事件', function() math.randomseed(os.time()) Plana("ingSceneEvent_Blizzard_Taikong", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('太空落石事件', function() math.randomseed(os.time()) Plana("ingSceneEvent_Rock_Taikong", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('太空龙卷风', function() math.randomseed(os.time()) Plana("ingSceneEvent_Tornado_Taikong", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('太空长椅', function() math.randomseed(os.time()) Plana("ingTaiKong_Changyi", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('太空垃圾桶', function() math.randomseed(os.time()) Plana("ingTaiKong_Lajitong", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('太空培育皿', function() math.randomseed(os.time()) Plana("ingTaiKong_Peiyangmi", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('太空舱', function() math.randomseed(os.time()) Plana("ingTaiKong_Taikongcang", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('太空显示器', function() math.randomseed(os.time()) Plana("ingTaiKong_Xianshiqi", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('太空椅子', function() math.randomseed(os.time()) Plana("ingTaiKong_Yizi", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('太空植物一号', function() math.randomseed(os.time()) Plana("ingTaiKong_Zhiwu01", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('太空植物二号', function() math.randomseed(os.time()) Plana("ingTaiKong_Zhiwu02", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('太空桌子', function() math.randomseed(os.time()) Plana("ingTaiKong_Zhuozi", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('太空盒子', function() math.randomseed(os.time()) Plana("TaiKong_HeZi", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('太空电池', function() math.randomseed(os.time()) Plana("TaiKongBatteryObject", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('太空战舰', function() math.randomseed(os.time()) Plana("TaiKongWarshipObject", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('天宫床', function() math.randomseed(os.time()) Plana("ingTianGong_Chuang", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('天宫丹炉', function() math.randomseed(os.time()) Plana("ingTianGong_Danlu", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('天宫房屋', function() math.randomseed(os.time()) Plana("ingTianGong_Fangzi", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('天宫大鼓', function() math.randomseed(os.time()) Plana("ingTianGong_Gu", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('天宫瓶子', function() math.randomseed(os.time()) Plana("ingTianGong_Pingzi", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('人参果', function() math.randomseed(os.time()) Plana("ingTianGong_Renshenguo", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('天宫围栏', function() math.randomseed(os.time()) Plana("ingTianGong_Weilan", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('天宫香炉', function() math.randomseed(os.time()) Plana("ingTianGong_Xianglu", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('天宫摇篮', function() math.randomseed(os.time()) Plana("ingTianGong_Yaolan", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('天宫抽奖NPC', function() math.randomseed(os.time()) Plana("ingTianGongLotteryNpc", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('蜡笔小新画板', function() math.randomseed(os.time()) Plana("ingCrayonShin-Canvas", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('巨型蜡笔01', function() math.randomseed(os.time()) Plana("ingXiaoXin_Labi_01", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('巨型蜡笔02', function() math.randomseed(os.time()) Plana("ingXiaoXin_Labi_02", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('小新路牌', function() math.randomseed(os.time()) Plana("ingXiaoXin_LuPai", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('小新巴士', function() math.randomseed(os.time()) Plana("ingXiaoXinBusObject", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('41号小新巴士', function() math.randomseed(os.time()) Plana("ingXiaoXinBusObject_41", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('小白小狗', function() math.randomseed(os.time()) Plana("ingXiaoXinWhiteDog", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('巴士控制器', function() math.randomseed(os.time()) Plana("XiaoXinBusController", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('41巴士控制器', function() math.randomseed(os.time()) Plana("XiaoXinBusController_41", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('通用技能子弹1', function() math.randomseed(os.time()) Plana("ing0901500201_Bullet", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('通用技能子弹2', function() math.randomseed(os.time()) Plana("ing0901500202_Bullet", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('治疗炮台', function() math.randomseed(os.time()) Plana("ingCard10038_ZhiLiaoPaoTai", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('武功格挡判定', function() math.randomseed(os.time()) Plana("ingCard9015005_Gunwu_Block", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('武功子弹', function() math.randomseed(os.time()) Plana("ingCard9015005_Gunwu_Bullet", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('冰冻伤害实体', function() math.randomseed(os.time()) Plana("ingIceDamageObject", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('闪电子弹', function() math.randomseed(os.time()) Plana("ingLightningBullet", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('迫击炮可交互实体', function() math.randomseed(os.time()) Plana("ingMortarCannonUseableObject", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('墨渊范围子弹', function() math.randomseed(os.time()) Plana("ingMoyuanControlAreaBullet", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('落石轰炸实体', function() math.randomseed(os.time()) Plana("ingRockDamageObject", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('暴风雪场景事件', function() math.randomseed(os.time()) Plana("ingSceneEvent_Blizzard", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('落石地面轰炸事件', function() math.randomseed(os.time()) Plana("ingSceneEvent_Rock", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('太空垃圾事件', function() math.randomseed(os.time()) Plana("ingSceneEvent_SpaceJunk_01", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('普通龙卷风事件', function() math.randomseed(os.time()) Plana("ingSceneEvent_Tornado", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('龙卷风实体', function() math.randomseed(os.time()) Plana("ingTornadoObject", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('喷水怪物', function() math.randomseed(os.time()) Plana("ingWaterSprayMonster", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('毒圈', function() math.randomseed(os.time()) Plana("PosionCircle", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('治疗球', function() math.randomseed(os.time()) Plana("Zhiliaoqiu", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('追踪小子弹', function() math.randomseed(os.time()) Plana("Zhuizongdan_ChildActor", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('螃蟹模型', function() math.randomseed(os.time()) Plana("CrabObject", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('夺旗模式控制器', function() math.randomseed(os.time()) Plana("ingCaptureTheFlagModeController", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('金币对战管理器', function() math.randomseed(os.time()) Plana("ingCoinFightManager", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('足球场看台', function() math.randomseed(os.time()) Plana("ingFootballStands", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('吼吼号状态机实体', function() math.randomseed(os.time()) Plana("ingFsmHouhouhao", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('宝石模式矿石', function() math.randomseed(os.time()) Plana("ingGemModeMine", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('游乐园关卡开关组', function() math.randomseed(os.time()) Plana("ingLevelAmusementSwitchObjectGourp", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('夺旗模式治疗包', function() math.randomseed(os.time()) Plana("ingLevelCaptureTheFlag_TreatmentPack", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('训练场飞机', function() math.randomseed(os.time()) Plana("ingLevelProvingAirplane", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('救援目标治疗包', function() math.randomseed(os.time()) Plana("ingLevelRescueTarget_TreatmentPack", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('地图管道', function() math.randomseed(os.time()) Plana("ingMapTubeObject", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('大乱斗怪物行走路径', function() math.randomseed(os.time()) Plana("ingMonsterPathBR_01", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('宝石大乱斗怪物路径', function() math.randomseed(os.time()) Plana("ingMonsterPathBR_GemBR", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('小型大乱斗怪物路径', function() math.randomseed(os.time()) Plana("ingMonsterPathBR_miniBR", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('跑酷模式控制器', function() math.randomseed(os.time()) Plana("ingParkourModeController", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('红包模式控制器', function() math.randomseed(os.time()) Plana("ingRedEnvelopModeController", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('闯关游荡模式控制器', function() math.randomseed(os.time()) Plana("ingRogueModeController", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('逃生者切换组', function() math.randomseed(os.time()) Plana("ingSurvivorSwitchGroup", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('金库对战控制器', function() math.randomseed(os.time()) Plana("ingVaultFightModeController", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('炼丹炉载具', function() math.randomseed(os.time()) Plana("ingVehicleLianDanLu", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('月球车载具', function() math.randomseed(os.time()) Plana("ingVehicleMoonCar", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('墨渊载具', function() math.randomseed(os.time()) Plana("ingVehicleMoyuan", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('大乱斗抽奖奖励', function() math.randomseed(os.time()) Plana("ingBattleRoyale_LotteryAwards", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('海神抽奖NPC', function() math.randomseed(os.time()) Plana("ingHaishenLotteryNpc", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('场景可交互抽奖道具', function() math.randomseed(os.time()) Plana("ingSceneUsable_LotteryItem_ECS", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('团子抽奖NPC', function() math.randomseed(os.time()) Plana("ingTuanziLotteryNpc", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('宇宙抽奖NPC', function() math.randomseed(os.time()) Plana("ingUniverseLotteryNpc", 12, 0.5, math.random(1,10)) end, function() end), --龙珠系列 CAswitch('龙珠个人金币箱-逃生方', function() math.randomseed(os.time()) Plana("LongZhuGeRenJinBiXiangTaoSheng", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('龙珠个人金币箱-追捕方', function() math.randomseed(os.time()) Plana("LongZhuGeRenJinBiXiangZhuiBu", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('龙珠局内道具箱', function() math.randomseed(os.time()) Plana("LongZhuJuZhongDaoJuXiang", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('龙珠局内金币箱', function() math.randomseed(os.time()) Plana("LongZhuJuZhongJinBiXiang", 12, 0.5, math.random(1,10)) end, function() end), --通用ECS框架实体 CAswitch('可破坏模型', function() math.randomseed(os.time()) Plana("Destructible_Model_Ecs", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('空脚本', function() math.randomseed(os.time()) Plana("EcsEmptyScript", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('ECS触发器', function() math.randomseed(os.time()) Plana("EcsTrigger", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('实体模型', function() math.randomseed(os.time()) Plana("Entity_Model_Ecs", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('地图瓦片实体', function() math.randomseed(os.time()) Plana("Entity_Model_TiledMap", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('同步位移实体模型', function() math.randomseed(os.time()) Plana("Entity_Sync_Trans_Model_Ecs", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('激活游戏对象', function() math.randomseed(os.time()) Plana("GameObjectActiveEntity", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('受击模型', function() math.randomseed(os.time()) Plana("Hitted_Model_Ecs", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('可移动可交互模型', function() math.randomseed(os.time()) Plana("Movable_Usable_Model_Ecs", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('可拾取道具', function() math.randomseed(os.time()) Plana("PickUp_Prop_ECS", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('道具模型', function() math.randomseed(os.time()) Plana("Prop_Model_ECS", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('道具卡管理器', function() math.randomseed(os.time()) Plana("PropcardManager", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('场景生成器', function() math.randomseed(os.time()) Plana("SceneObjectSpawner", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('场景道具模型', function() math.randomseed(os.time()) Plana("SceneProp_Model_ECS", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('静态瓦片模型', function() math.randomseed(os.time()) Plana("Static_Model_TiledMap", 12, 0.5, math.random(1,10)) end, function() end), --救援模式 CAswitch('救援气球', function() math.randomseed(os.time()) Plana("RescueBalloon", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('救援目标', function() math.randomseed(os.time()) Plana("RescueObject", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('气球救援技能', function() math.randomseed(os.time()) Plana("RescueObject_BalloonAbility", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('喷泉救援技能', function() math.randomseed(os.time()) Plana("RescueObject_FountainAbility", 12, 0.5, math.random(1,10)) end, function() end), --其他零散实体 CAswitch('大乱斗桥梁开关', function() math.randomseed(os.time()) Plana("ingBattleRoyaleBridgeSwitch", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('道具卡事件实体', function() math.randomseed(os.time()) Plana("ingPropcardObject_Event", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('救援金币', function() math.randomseed(os.time()) Plana("ingRescue_Coin", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('观景探索物体', function() math.randomseed(os.time()) Plana("ingViewExplorationObject", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('龙城酒店', function() math.randomseed(os.time()) Plana("LongChengHotel", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('磁力小宝道具', function() math.randomseed(os.time()) Plana("Prop_CiXiXiaoBao", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('无线网面板', function() math.randomseed(os.time()) Plana("WifiBoard", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('自动售货机', function() math.randomseed(os.time()) Plana("ZiDongShouMaiJi", 12, 0.5, math.random(1,10)) end, function() end), CAswitch('小狗摆件', function() math.randomseed(os.time()) Plana("Gou", 12, 0.5, math.random(1,10)) end, function() end), },{---UI设置 CAswitch( "音量键隐藏UI", function() 音量键=true end, function() 音量键=false end ), CAswitch( "摇一摇隐藏UI", function() 摇一摇=true end, function() 摇一摇=false end ), CAbutton( "退出", function() tuichu=1 end), CAswitch('功能转换全员[修]', function() local libil2cpp_base = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({{address = libil2cpp_base + 0x4860ae4, flags = 4, value = -763363296},{address = libil2cpp_base + 0x4860ae8, flags = 4, value = -698416192}}) end, function() local libil2cpp_base = gg.getRangesList('libil2cpp.so')[2].start gg.setValues({{address = libil2cpp_base + 0x4860ae4, flags = 4, value = -1447145484},{address = libil2cpp_base + 0x4860ae8, flags = 4, value = -1459520515}}) end), CAswitch('设置主机', function() local lib = gg.getRangesList('libil2cpp.so')[2].start local items = { {address = lib + 0x46C14BC, flags = gg.TYPE_DWORD, value = -763363296, freeze = true}, {address = lib + 0x46C14BC+4, flags = gg.TYPE_DWORD, value = -698416192, freeze = true}, } gg.addListItems(items) end, function() end), CAbutton("展示实力", function() showMsg("检测到您使用的是染丰出版的内置\n染丰过于牛逼,封不了您\n您小子可以的呀\n染丰频道@ranfengnb666") end), CAbutton("黑客帝国帝国入侵", function() showMsg("黑客帝国正在入侵逃跑吧!少年!!即将闪退\n黑客帝国正在入侵逃跑吧!少年!!即将闪退\n黑客帝国正在入侵逃跑吧!少年!!即将闪退\n黑客帝国正在入侵逃跑吧!少年!!即将闪退\n黑客帝国正在入侵逃跑吧!少年!!即将闪退\n黑客帝国正在入侵逃跑吧!少年!!即将闪退\n黑客帝国正在入侵逃跑吧!少年!!即将闪退\n黑客帝国正在入侵逃跑吧!少年!!即将闪退\n黑客帝国正在入侵逃跑吧!少年!!即将闪退\n黑客帝国正在入侵逃跑吧!少年!!即将闪退\n黑客帝国正在入侵逃跑吧!少年!!即将闪退\n黑客帝国正在入侵逃跑吧!少年!!即将闪退") end), CAbutton("[大厅开启]局内宣传[修]", function() gg.setRanges(32) gg.searchNumber("10;1495759197;1501384473;-15953968;1988391849;1606639360", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local results = gg.getResults(999) local editTable = {} -- 要修改的新数值数组 local newValues = { 5,1649106923,2099405852,1828543503,4259921,81 } for i, v in ipairs(results) do local offsetAddress = v.address + 0x30 local offsetValue = gg.getValues({{address = offsetAddress, flags = gg.TYPE_DWORD}})[1] if offsetValue.value == 9 then for j = 1, 21 do table.insert(editTable, { address = v.address + (j-1)*4, value = newValues[j], flags = gg.TYPE_DWORD }) end end end -- 批量修改所有符合条件的地址 if #editTable > 0 then gg.setValues(editTable) gg.clearResults() gg.alert("开启成功\n请进入游戏中查看聊天栏原本祝大伙好运,玩的开心!位置\n") else gg.toast("开启失败\n请确保聊天栏是初始的祝大伙好运,玩的开心") end end), CAbutton("[大厅开启]辱骂队友及对面[修]", function() gg.setRanges(32) gg.searchNumber("10;1495759197;1501384473;-15953968;1988391849;1606639360", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1) local results = gg.getResults(999) local editTable = {} -- 要修改的新数值数组 local newValues = { 2299,1828543503,1826980681,1828543503,1828543503,1828543503,1826980681,1828543503,1826980681,1988400616,1821997057,-1776329215,1544508363,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1826980681,1988400616,1821997057,-1776329215,1544508363,-2092339971,-1779929883,2013361796,1577151641,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1826980681,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1828543503,1826980681,1828543503,1826980681,1828543503,1828543503,1828543503 } for i, v in ipairs(results) do local offsetAddress = v.address + 0x30 local offsetValue = gg.getValues({{address = offsetAddress, flags = gg.TYPE_DWORD}})[1] if offsetValue.value == 9 then for j = 1, 21 do table.insert(editTable, { address = v.address + (j-1)*4, value = newValues[j], flags = gg.TYPE_DWORD }) end end end -- 批量修改所有符合条件的地址 if #editTable > 0 then gg.setValues(editTable) gg.clearResults() gg.alert("开启成功\n请进入游戏中查看聊天栏原本祝大伙好运,玩的开心!位置\n") else gg.toast("开启失败\n请确保聊天栏是初始的祝大伙好运,玩的开心") end end), }, })