function Format(tab,format,value,type,Function) if format == "查看" then tab[1]["flags"] = type return print(gg.getValues(tab)) elseif format == "修改" then tab[1]["flags"] = type tab[1]["value"] = value return gg.setValues(tab) elseif format == "冻结" then tab[1]["flags"] = type tab[1]["freeze"] = true tab[1]["value"] = value tab[1]["name"] = Function or "功能" return gg.addListItems(tab) elseif format == "加载" then tab[1]["flags"] = type return gg.loadResults(tab) end end function LSQ_Chain ( so ,offset ,format ,value ,type ,Function ) getRanges = getRanges or ( function ( ) local ranges = { } local t = gg.getRangesList ( '^/data/*.so*$' ) for i ,v in pairs ( t ) do if v [ "type" ] : sub ( 2 ,2 ) == 'w' then ranges [ # ranges + 1 ] = v end end return ranges end ) local rest ,ranges ,sostart ,valtype = { } ,getRanges ( ) ,nil ,gg.TYPE_DWORD if gg.getTargetInfo ( ) [ "x64" ] then valtype = gg.TYPE_QWORD end for i in pairs ( ranges ) do local _name = ranges [ i ] [ "internalName" ] : gsub ( '^.*/' ,'' ) if so [ 1 ] == _name and so [ 2 ] == ranges [ i ] [ "state" ] then sostart = ranges [ i ] [ "start" ] break end end if sostart then if offset [ 1 ] then for i = 1 ,# offset do rest = { { flags = valtype ,address = sostart + offset [ i ] } } rest = gg.getValues ( rest ) if i == # offset then break end if valtype == gg.TYPE_DWORD then sostart = rest [ 1 ].value & 0xFFFFFFFF else sostart = rest [ 1 ].value end end end if # rest == 1 then end return Format ( rest ,format ,value ,type ,Function ) end gg.toast ( "功能:" ..Function .."开启失败" ) print ( "功能开启失败原因: 未找到基址头" ) return os.exit ( ) end function Unfreeze() local t = gg.getListItems() for k, v in pairs(t) do t[k]["freeze"] = false end return gg.addListItems(t) end DM="用最牛逼的技术打造最牛逼的范围,欢迎使用失散特供版范围 已适配最新版本" gg.playMusic("https://fanyi.baidu.com/gettts?lan=zh&text="..DM.."&spd=5&source=wise") draw.setSize(60) draw.setStyle("描边") draw3 = require("draw3") draw.text("失散范围", 250, 400) draw.setColor("#00ffff") draw.setSize(50) draw.setStyle("描边并填充") function BC(address) return gg.getValues({{address = address, flags = gg.TYPE_QWORD}})[1].value end function getvalue(address, flags) return gg.getValues({{address = address, flags = flags}})[1].value end function WBC(addr, types, i, freeze) if i then gg.setValues({{address = addr, flags = types, value = i}}) end if freeze then gg.addListItems({{ address = addr, flags = types, value = i or getvalue(addr, types), -- 没有i就用当前地址的值 freeze = true }}) elseif freeze == false then gg.addListItems({{address = addr, flags = types, freeze = false}}) end end function Unfreeze() local t = gg.getListItems() for k, v in pairs(t) do t[k].freeze = false end gg.addListItems(t) end -- 线程回调函数 local function getASyncThreadCallbak(func) return function() luajava.startThread(function() return pcall(func) end) end end local task local function getSyncThreadCallbak(func) return function() if task then gg.toast('正在运行其它任务,再稍后!') return end luajava.startThread(function() task=true pcall(func) task=nil end) end end -- 悬浮窗模块 local floatingWindowManager = require('floatingWindowManager') floatingWindowManager:init() -- 主窗口 floatingWindowManager:newWindow(('失散范围'):format(floatingWindowManager.version), { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_margin = '10dp', layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', { Button, background = { GradientDrawable, cornerRadius='10dp', color='#5000000', }, layout_width = 'match_parent', layout_margin = '1dp', text = '配置进程', textColor= "#FF14DAFF", textSize = '16sp', onClick = function() gg.setProcessX() string.toMusic("选择进程") end }, { Button, background = { GradientDrawable, cornerRadius='10dp', color='#5000000', }, layout_width = 'match_parent', layout_margin = '1dp', text = '游戏防闪', textColor= "#FF14DAFF", textSize = '16sp', onClick = function() local allRanges = gg.getRangesList("libanogs.so")------2放闪 if not allRanges or #allRanges == 0 then return end -- 查找 bss 段且状态为 Cb 的段(用于第一部分) local bssRange = nil local mainRange = allRanges[1] -- 默认主段(通常第一个) for _, r in ipairs(allRanges) do if r.internalName:find("libanogs%.so:bss") and r.state == "Cb" then bssRange = r break end end -- 如果没有找到 bss 段,则回退使用主段(与原脚本行为一致?原脚本可能找不到时不执行,这里加保护) if not bssRange then gg.toast("未找到 bss 段,请检查") return end local items = {} -- === 第一部分:使用 bss 段基址 + 偏移,冻结值为 64 === local part1_offsets = { 0x300, 0x3F8, 0x430, 0x550, 0x5D8, 0xA3C0 } for i, off in ipairs(part1_offsets) do items[#items + 1] = { address = bssRange.start + off, flags = 4, value = 64, freeze = true } end -- === 第二部分:使用主段基址 + 偏移,冻结值为 0 === local part2_offsets = { 0x98EA8, 0x9BF58, 0xE70DC, 0xE899C, 0xED4E0, 0xEED9C } for i, off in ipairs(part2_offsets) do items[#items + 1] = { address = mainRange.start + off, flags = 4, value = 0, freeze = true } end -- 一次性添加所有冻结项 gg.addListItems(items) gg.toast("开启成功") local DM = "开启成功" gg.playMusic("https://www.mpimg.cn/down.php/f129148125e5eb75953172e3452a18cb.m4a"..DM.."&spd=5&source=wise") end }, { Button, background = { GradientDrawable, cornerRadius='10dp', color='#5000000', }, layout_width = 'match_parent', layout_margin = '1dp', text = '范围区', textColor= "#FF14DAFF", textSize = '16sp', onClick = function() floatingWindowManager:start('失散 [范围区]') string.toMusic("范围区") end },{ Button, background = { GradientDrawable, cornerRadius='10dp', color='#5000000', }, layout_width = 'match_parent', layout_margin = '1dp', text = '工具区', textColor= "#FF14DAFF", textSize = '16sp', onClick = function() floatingWindowManager:start('[工具区]') string.toMusic("工具区") end } } }) end }) floatingWindowManager:newWindow('失散[范围区]', { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', { Button, background = { GradientDrawable, cornerRadius = '10dp', color = '#5000000', }, layout_width = 'match_parent', layout_margin = '1dp', text = '锁帧', textColor = "#FF14DAFF", textSize = '16sp', onClick = function() function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x167ba0fe) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address print(string.char(231,190,164,58).._Q) end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end local OP = gg.prompt({'自改帧率1-144'}, {[1]='144'}, {[1]='number'}) if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消") else local t = {"libUE4.so:bss", "Cb"} local tt = {0x1CF8, 0x18} local addr = S_Pointer(t, tt, true) gg.addListItems({{address = addr, flags = 16, value = OP[1], freeze = true}}) local DM = "开启成功" gg.playMusic("https://www.mpimg.cn/down.php/856d275bfe68c6fd303c187305051e4f.m4a"..DM.."&spd=5&source=wise") end end }, -- ==================== 锁帧按钮结束 ==================== { TextView, text = "防卡伤一把一开:", textSize = "12sp", textColor = "#FF69B4" }, {LinearLayout, padding = {'0dp', '0dp', '0dp', '1dp'}, layout_marginTop = '1dp', { Switch, layout_marginLeft = '0dp', text="防卡伤", textColor= "#01FFFF", layout_height="30dp", layout_width="200dp", background= luajava.loadlayout { GradientDrawable, color = "#00000000", cornerRadius = 28 }, onCheckedChange = function(CompoundButton, state) local ranges = gg.getRangesList("libUE4.so") if gg.getRangesList("libanogs.so")[1] then local t = {} t[1] = gg.getRangesList("libanogs.so")[1]["start"] + 0x574D00; --秋宝工具箱 数值地址:0x6F3B179D00 t[2] = gg.getRangesList("libanogs.so")[1]["start"] + 0x574E10; --秋宝工具箱 数值地址:0x6F3B179E10 t[3] = gg.getRangesList("libanogs.so")[1]["start"] + 0x574F20; --秋宝工具箱 数值地址:0x6F3B179F20 gg.addListItems({ [1] = { address = t[1], flags = 4, value = -698416192, freeze = true, }, [2] = { address = t[2], flags = 4, value = -698416192, freeze = true, }, [3] = { address = t[3], flags = 4, value = -698416192, freeze = true, }, }) gg.toast("开启成功") end if gg.getRangesList("libanogs.so:bss")[1] then local t = {} t[1] = gg.getRangesList("libanogs.so:bss")[1]["start"] + 0x30; --秋宝工具箱 数值地址:0x6F3B17A030 gg.addListItems({ [1] = { address = t[1], flags = 4, value = -698416192, freeze = true, }, }) gg.toast("开启成功") end DM="防卡伤开启成功妈妈再也不会担心我会卡伤了"--语音播报内容自己改 gg.playMusic("https://fanyi.baidu.com/gettts?lan=zh&text="..DM.."&spd=5&source=wise") --百度翻译 end }, }, { TextView, text = "爆头范围一把一开:", textSize = "12sp", textColor = "#FF69B4" }, {LinearLayout, padding = {'0dp', '0dp', '0dp', '1dp'}, layout_marginTop = '1dp', { Switch, layout_marginLeft = '0dp', text="爆头范围", textColor= "#01FFFF", layout_height="30dp", layout_width="200dp", background= luajava.loadlayout { GradientDrawable, color = "#00000000", cornerRadius = 28 }, onCheckedChange = LSQ_Chain({'libUE4.so:bss','Cb'},{0x57DFF0,0x30,0x4B8,0x510,0xB08,0x38,0x70,0x28,0x7C},"修改","60",16,"15.75") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57DFF0,0x30,0x4B8,0x510,0xB08,0x38,0x0,0x58,0x98},"修改","-1",16,"35") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57DFF0,0x30,0x4B8,0x510,0xB08,0x38,0x0,0x58,0x9c},"修改","20",16,"33") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57DFF0,0x30,0x4B8,0x510,0xB08,0x38,0x0,0x58,0xA0},"修改","300",16,"69.5") gg.toast("失散") local DM = "开启成功" gg.playMusic("https://www.mpimg.cn/down.php/6bfcd55b82ffceb107baaf3883f0c130.m4a"..DM.."&spd=5&source=wise") else gg.clearResults() end end }, }, { TextView, text = "失散独家范围:", textSize = "12sp", textColor = "#FF69B4" }, {LinearLayout, padding = {'0dp', '0dp', '0dp', '1dp'}, layout_marginTop = '1dp', { Switch, layout_marginLeft = '0dp', text="踏空范围", textColor= "#01FFFF", layout_height="30dp", layout_width="200dp", background= luajava.loadlayout { GradientDrawable, color = "#00000000", cornerRadius = 28 }, onCheckedChange = LSQ_Chain({'libUE4.so:bss','Cb'},{0x57DFF0,0x30,0x4B8,0x510,0xB08,0x38,0x70,0x28,0x7C},"修改","60",16,"15.75") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57DFF0,0x30,0x4B8,0x510,0xB08,0x38,0x0,0x58,0x98},"修改","-1",16,"35") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57DFF0,0x30,0x4B8,0x510,0xB08,0x38,0x0,0x58,0x9c},"修改","300",16,"33") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57DFF0,0x30,0x4B8,0x510,0xB08,0x38,0x0,0x58,0xA0},"修改","20",16,"69.5") local DM = "开启成功" gg.playMusic("https://www.mpimg.cn/down.php/6bfcd55b82ffceb107baaf3883f0c130.m4a"..DM.."&spd=5&source=wise") else gg.clearResults() end end }, }, { TextView, text = "特效一把一开:", textSize = "12sp", textColor = "#FF69B4" }, {LinearLayout, padding = {'0dp', '0dp', '0dp', '1dp'}, layout_marginTop = '1dp', { Switch, layout_marginLeft = '0dp', text="特效", textColor= "#01FFFF", layout_height="30dp", layout_width="200dp", background= luajava.loadlayout { GradientDrawable, color = "#00000000", cornerRadius = 28 }, onCheckedChange = function(CompoundButton, state) if state then local options = {"大X特效", "双X特效", "细X特效", "细长特效"} local choice = gg.choice(options, nil, "") if choice == 1 then LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0x14},"修改","1500",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0x54},"修改","1500",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0x94},"修改","1500",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0xD4},"修改","1500",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0x10},"修改","300",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0x50},"修改","300",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0x90},"修改","300",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0xD0},"修改","300",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57DFF0,0x30,0x540,0x640},"修改","6",16,"延长") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57DFF0,0x30,0x540,0x64C},"修改","0",16,"蓝色特效") elseif choice == 2 then LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0x10},"修改","9999",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0x50},"修改","9999",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0x90},"修改","9999",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0xD0},"修改","9999",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57DFF0,0x30,0x540,0x640},"修改","6",16,"延长") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57DFF0,0x30,0x540,0x64C},"修改","0",16,"蓝色特效") elseif choice == 3 then LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0x14},"修改","1500",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0x54},"修改","1500",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0x94},"修改","1500",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0xD4},"修改","1500",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0x10},"修改","150",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0x50},"修改","150",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0x90},"修改","150",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0xD0},"修改","150",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57DFF0,0x30,0x540,0x640},"修改","6",16,"延长") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57DFF0,0x30,0x540,0x64C},"修改","0",16,"蓝色特效") elseif choice == 4 then LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0x14},"修改","1500",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0x54},"修改","1500",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0x94},"修改","1500",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57dff0,0x30,0x540,0x618,0xD4},"修改","1500",16,"特效") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57DFF0,0x30,0x540,0x640},"修改","6",16,"延长") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57DFF0,0x30,0x540,0x64C},"修改","0",16,"蓝色特效") end local DM = "开启成功" gg.playMusic("https://www.mpimg.cn/down.php/6bfcd55b82ffceb107baaf3883f0c130.m4a"..DM.."&spd=5&source=wise") else gg.clearResults() end end }, }, { TextView, text = "HOOK范围:", textSize = "12sp", textColor = "#FF69B4" }, {LinearLayout, padding = {'0dp', '0dp', '0dp', '1dp'}, layout_marginTop = '1dp', { Switch, layout_marginLeft = '0dp', text="HOOK范围", textColor= "#01FFFF", layout_height="30dp", layout_width="200dp", background= luajava.loadlayout { GradientDrawable, color = "#00000000", cornerRadius = 28 }, onCheckedChange = function(CompoundButton, state) if state then LSQ_Chain({'libUE4.so:bss','Cb'},{0x57DFF0,0x30,0x4B8,0x510,0xB08,0x38,0x70,0x28,0x7C},"修改","60",16,"15.75") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57DFF0,0x30,0x4B8,0x510,0xB08,0x38,0x0,0x58,0x98},"修改","-1",16,"35") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57DFF0,0x30,0x4B8,0x510,0xB08,0x38,0x0,0x58,0x9c},"修改","120",16,"33") LSQ_Chain({'libUE4.so:bss','Cb'},{0x57DFF0,0x30,0x4B8,0x510,0xB08,0x38,0x0,0x58,0xA0},"修改","100",16,"69.5") gg.toast("失散") local DM = "开启成功" gg.playMusic("https://www.mpimg.cn/down.php/6bfcd55b82ffceb107baaf3883f0c130.m4a"..DM.."&spd=5&source=wise") else gg.clearResults() end end }, }, } }) end }) -- 工具区窗口 floatingWindowManager:newWindow('[工具区]', { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '10dp', { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = '隐藏水印', textSize = '16sp', onClick = function() draw.text("", 290,300) draw.setColor('#00FFFF') draw.setSize(0) draw.setStyle('描边并填充') end }, { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '5dp', text = '恢复水印', textSize = '16sp', onClick = function() draw.text("", 250,400) draw.setColor('#00FFFF') draw.setSize(50) draw.setStyle('描边并填充') end },{ Switch, layout_width = 'match_parent', layout_margin = '5dp', text = ' 免root注入', textSize = '16sp', textColor= "#ddffffff", gravity="center", layout_height="30dp", background= luajava.loadlayout { GradientDrawable, color = "#87CEEB", cornerRadius = 20 }, onClick = function(view) if view:isChecked() then A7() else end end } } }) end }) -- 启动悬浮窗 floatingWindowManager:run()