local a641 = 0x558CF0 local a642 = 0x4B8 local a643 = 0x510 local aKX1 = 0x540 local bKX2 = 0x618 function getZZ(address) return gg.getValues({{address = address, flags = 32}})[1].value end function getDword(address) return gg.getValues({{address = address, flags = 4}})[1].value end function getFloat(address) return gg.getValues({{address = address, flags = 16}})[1].value end function WriteFloat(address, value, freeze) gg.setValues({{address = address, flags = 16, value = value}}) if freeze then gg.addListItems({{address = address, flags = 16, value = value, freeze = freeze}}) end end function WriteDword(address, value, freeze) gg.setValues({{address = address, flags = 4, value = value}}) if freeze then gg.addListItems({{address = address, flags = 4, value = value, freeze = freeze}}) end end function UnfreezeF(address, freeze) gg.addListItems({{address = address, flags = 16, freeze = freeze}}) end function Unfreeze ( ) -- 获取保存列表 local t = gg.getListItems ( ) for k , v in pairs ( t ) do t [ k ] [ "freeze" ] = false end return gg.addListItems ( t ) end local function setvalue(address, flags, value, freeze) local t = {} t[1] = {} t[1].address = address t[1].flags = flags t[1].value = value t[1].freeze = freeze gg.setValues(t) if freeze then gg.addListItems(t) end end function S_Pointer(t_So, t_Offset, _bit) local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x167ba0fe) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address print(string.char(231,190,164,58).._Q) end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end local function interruptThread(thread) if thread then pcall(function() thread:interrupt() end) end end local function getASyncThreadCallbak(func) return function() luajava.startThread(function() return pcall(func) end) end end local function newGradientDrawableLayout(layout) local baseLayout = { GradientDrawable, cornerRadius = '15dp', color = 0x20000000 } return table.copy(baseLayout, layout) 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 function callSyncThreadCallbak(func) return getSyncThreadCallbak(func)() end local function findFunctionByName(name) local func = _ENV[name] if not isFunction(func) then gg.alert(string.format('不存在 %q 功能', name)) return nil end return getSyncThreadCallbak(func) end local function newButtonLayout(name) if not isString(name) then return end local layout = { Button, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_margin = '2dp', text = name, textSize = '16sp', onClick = findFunctionByName(name) } return layout end local function newSwitchLayout(openName, closeName) if not isString(openName) then return end local layout = { Switch, layout_width = 'match_parent', text = openName, onCheckedChange = function(CompoundButton, state) local func local cacheName = '多线程' if state then if isString(closeName) then CompoundButton:setText(closeName) end func = findFunctionByName(openName) else CompoundButton:setText(openName) if isString(closeName) then func = findFunctionByName(closeName) end end if isFunction(func) then func() end end } return layout end local function newCheckBoxLayout(openName, closeName) if not isString(openName) then return end local layout = { CheckBox, layout_width = 'match_parent', text = openName, onCheckedChange = function(CompoundButton, state) local func local cacheName = '多线程' if state then if isString(closeName) then CompoundButton:setText(closeName) end func = findFunctionByName(openName) else CompoundButton:setText(openName) if isString(closeName) then func = findFunctionByName(closeName) end end if isFunction(func) then func() end end } return layout end function newcheck(radio) firadio={LinearLayout,layout_width = 'match_parent',layout_height = "match_parent",orientation="vertical"} if type(radio[1])=="string" or type(radio[1])=="number" then firadio[#firadio+1]={TextView,text=radio[1],textColor="#ffffff",} end radios={LinearLayout,orientation="horizontal",gravity="center",background="#00C92E37",layout_width = 'match_parent',} for i=2,#radio do local name = radio[i][1] local func1 = radio[i][2] local func2 = radio[i][3] local nid = radio[i][4] if not name then name = "未设置" end nid = name..guid() local func = 开关(nid,func1,func2) radios[#radios+1]={CheckBox, text=radio[i][1], textSize="9sp", textColor="#ffffff", onClick=function() luajava.newThread(function() pcall(func) end):start() end, } end firadio[#firadio+1]=radios return luajava.loadlayout(firadio) end function newradio(radio) firadio={LinearLayout, layout_width = 'match_parent', layout_height = "match_parent", orientation="horizontal" } if type(radio[1])=="string" or type(radio[1])=="number" then end radios={RadioGroup,orientation="horizontal",gravity="center",background="#00C92E37",layout_width = 'match_parent',} for i=2,#radio do radios[#radios+1]={ RadioButton, text=radio[i][1], textColor="#ffffff", textSize="11sp", onClick=function() luajava.newThread(function() pcall(radio[i][2]) end):start() end, } end firadio[#firadio+1]=radios return luajava.loadlayout(firadio) end function 开关(name,func1,func2) if func1 == nil then func1 = "" end if func2 == nil then func2 = "" end if type(func1) == "function" then return function() namers = _ENV[name] if namers ~= "开" then _ENV[name] = "开" func1() else _ENV[name] = "关" func2() end end end end function guid() seed = { 'e','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' } tb = {} for i = 1,32 do table.insert(tb,seed[math.random(1,16)]) end sid = table.concat(tb) return string.format('%s%s%s%s%s', string.sub(sid,1,8), string.sub(sid,10,12), string.sub(sid,21,22)) ..string.format('%s%s%s%s%s', string.sub(sid,1,6), string.sub(sid,21,25) ) end 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 function m1() end function BZTX() end function D1() end local floatingWindowManager = require('floatingWindowManager') floatingWindowManager:init() draw.setSize(45) draw.setStyle("填充") draw.setColor("#00FFFF") draw.text("", 50, 50) draw.text("破碎范围", 340, 230) draw.text("@posuinb543", 340, 280) DM="欢迎使用破碎范围"--语音播报内容自己改 gg.playMusic("https://fanyi.baidu.com/gettts?lan=zh&text="..DM.."&spd=5&source=wise") --百度翻译 floatingWindowManager:newWindow(('破碎'):format(floatingWindowManager.version), { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_margin = '0dp', layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '5dp', { Button, background = { GradientDrawable, cornerRadius='10dp', color='#5000000', }, layout_width = 'match_parent', layout_margin = '1dp', text = '配置进程', textColor= "#FF14DAFF", textSize = '16sp', onClick = function() gg.setProcessX() DM="请选择你的游戏进程"--语音播报内容自己改 gg.playMusic("https://fanyi.baidu.com/gettts?lan=zh&text="..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('范围区') end }, { Button, background = { GradientDrawable, cornerRadius='10dp', color='#5000000', }, layout_width = 'match_parent', layout_margin = '1dp', text = '通用防闪', textColor= "#FF14DAFF", textSize = '16sp', onClick = function() local items, count = {}, 0 local liblist = { {"libUE4.so", { {0x7E0, 4096, 4}, {0x808, 4096, 4}, {0xCA4, 4096, 4}, {0xCCC, 4096, 4} }}, {"libanogs.so", { {0x300, 4096, 4}, {0x3F8, 4096, 4}, {0x430, 4096, 4}, {0x550, 4096, 4}, {0x5D8, 4096, 4}, {0x45E0, 4096, 4}, {0x4610, 4096, 4}, {0x463C, 4096, 4} }} } for i=1,#liblist do local r = gg.getRangesList(liblist[i][1] .. ":bss")[1] if r then local base = r.start for j=1,#liblist[i][2] do count = count + 1 items[count] = { address = base + liblist[i][2][j][1], flags = liblist[i][2][j][3], value = liblist[i][2][j][2] } end end end if count > 0 then gg.setValues(items) end DM="防闪开启成功"--语音播报内容自己改 gg.playMusic("https://fanyi.baidu.com/gettts?lan=zh&text="..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('破碎[工具]') end }, } }) end, onDestroy = function() end }) floatingWindowManager:newWindow('破碎[工具]', { onCreate = function(floatingWindow) floatingWindow:addlayout({ ScrollView, layout_width = 'match_parent', layout_height = 'match_parent', { LinearLayout, background = floatingWindowManager:getStateListDrawable(), layout_width = 'match_parent', layout_height = 'match_parent', orientation = 'vertical', padding = '5dp', { Button, background = { GradientDrawable, cornerRadius='34dp', color='0xE0F7F9', }, layout_width = 'match_parent', layout_margin = '1dp', text = '隐藏电报', textColor= "#FF14DAFF", textSize = '16sp', onClick = function() draw.remove() end }, { Button, background = { GradientDrawable, cornerRadius='34dp', color='0xE0F7F9', }, layout_width = 'match_parent', layout_margin = '1dp', text = '显示电报', textColor= "#FF14DAFF", textSize = '16sp', onClick = function() draw.text(os.date'posuinb543', 290,300)draw.setColor('#00FFFF') draw.setSize(45)draw.setStyle('描边并填充') end }, { Button, background = { GradientDrawable, cornerRadius='34dp', color='0xE0F7F9', }, layout_width = 'match_parent', layout_margin = '1dp', text = '免ROOT自选SO注入[未更]', textColor= "#FF14DAFF", textSize = '16sp', onClick = function() 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 = '0dp', { TextView, text = ":", textSize = "12sp", textColor = "#FFFFFF" }, { TextView, text = "范围/特效[一把一开]:", textSize = "12sp", textColor = "#FFFFFF" }, {LinearLayout,--同一排代码 padding = {'0dp', '0dp', '0dp', '1dp'}, layout_marginTop = '1dp',--间距 { Switch, layout_marginLeft = '0dp',--间距王 text="独家范围",--7 textColor= "#01FFFF", layout_height="30dp",--长度 layout_width="200dp",--宽度 background= luajava.loadlayout { GradientDrawable, color = "#00000000",--背景颜色代码 cornerRadius = 28--背景圆角 }, onCheckedChange = function(CompoundButton, state) local cacheName = '多线程-13jhds,ri0' if state then gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("15.75", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("15.75", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(70) gg.editAll("54", gg.TYPE_FLOAT) gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) string.toMusic("范围开启成功") gg.clearResults() DM="独家范围开启成功"--语音播报内容自己改 gg.playMusic("https://fanyi.baidu.com/gettts?lan=zh&text="..DM.."&spd=5&source=wise") --百度翻译 end end }, }, {LinearLayout, padding = {'0dp', '0dp', '0dp', '0dp'}, layout_marginTop = '1dp', { Switch, layout_marginLeft = '0dp',--间距王 text="防卡伤",--7 textColor= "#01FFFF", layout_height="30dp",--长度 layout_width="200dp",--宽度 background= luajava.loadlayout { GradientDrawable, color = "#00000000",--背景颜色代码 cornerRadius = 28--背景圆角 }, onCheckedChange = function(CompoundButton, state) local cacheName = '多线程-13jhds,ri0' local soList = gg.getRangesList("libUE4.so") if soList[1] then local base = soList[1]["start"] local t = {} t[1] = base + 0x7F9A59C t[2] = base + 0x835D58C t[3] = base + 0x8439968 t[4] = base + 0x843B720 t[5] = base + 0x8608978 gg.setValues({ [1] = { address = t[1], flags = 4, value = 505425152, }, [2] = { address = t[2], flags = 4, value = 505421824, }, [3] = { address = t[3], flags = 4, value = -1119037440, }, [4] = { address = t[4], flags = 4, value = 506015752, }, [5] = { address = t[5], flags = 4, value = -721215457, }, }) gg.toast("开启成功") else string.toMusic("未找到so,功能失效") end end }, }, {LinearLayout,--同一排代码 padding = {'0dp', '0dp', '0dp', '1dp'}, layout_marginTop = '1dp',--间距 { Switch, layout_marginLeft = '0dp',--间距王 text="打击特效[多选]",--7 textColor= "#01FFFF", layout_height="30dp",--长度 layout_width="200dp",--宽度 background= luajava.loadlayout { GradientDrawable, color = "#00000000",--背景颜色代码 cornerRadius = 28--背景圆角 }, onCheckedChange = function(CompoundButton, state) local cacheName = '多线程-13jhds,ri0' if state then function Main() local SN = gg.choice({ "双X特效", "黑边双X特效", "全屏特效" }, 2018, "入侵") if SN == 1 then a() elseif SN == 2 then b() end end function a() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("10;46", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("10;46", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("999", gg.TYPE_FLOAT) string.toMusic("开启成功") gg.toast("开启成功") end function b() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("10;46", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("10;46", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("2500", gg.TYPE_FLOAT) string.toMusic("开启成功") gg.toast("开启成功") end function c() gg.clearResults() gg.setRanges(gg.REGION_ANONYMOUS) gg.searchNumber("10;46", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.searchNumber("10;46", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1) gg.getResults(100) gg.editAll("9999", gg.TYPE_FLOAT) string.toMusic("开启成功") gg.toast("开启成功") end -- 启动脚本 Main() DM="打击特效开启成功"--语音播报内容自己改 gg.playMusic("https://fanyi.baidu.com/gettts?lan=zh&text="..DM.."&spd=5&source=wise") --百度翻译 end end }, }, { TextView, layout_width = 'match_parent', layout_margin = '0dp', gravity="center", text = '✶ Tg:posuinb543 ✶', textSize = '12sp', textColor = '#FF01FFFF' -- 只设置文字颜色,没有点击事件 } } }) end }) function FKS1() OP=gg.prompt({'七:1 五:2 经:3 利:4'},{[1]='请输入你要玩的地图'},{[1]='number'}) if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消") else end DM="防拉开启成功 灵魂已跳转"--语音播报内容自己改 gg.playMusic("https://fanyi.baidu.com/gettts?lan=zh&text="..DM.."&spd=5&source=wise") --百度翻译 end floatingWindowManager:run()