do
if type(getrlyunyz) ~= 'function' then
gg.alert('请使用RLGG执行')
os.exit()
return
end
local info = {
example_version = '1.0.3',
name = 'AL全防',
appid = '100516',
appkey = 'gqmowQF11O1Oo4VV',
rc4key = 'Qu0qv9I36Oi6dRgk',
version = '1.0',
mi_type = '3'
}
local rlyunyz = getrlyunyz(info)
local ret = rlyunyz.start()
if not ret or not isTable(ret) or ret.sign ~= '67578c5cd467feb3fddc68c4a041d063' then
os.exit()
return
end
end
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--删除此文字一辈子没母
gg.setConfig("隐藏辅助", 23)
gg.setConfig("运行守护", 3)
gg.setConfig("冻结间隔", 0)
gg.setConfig("旁路模式", 1)
string.toMusic('欢迎使用AL全防')
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--删除此文字一辈子没母
if gg.getWindowOrientation() == 0 then
--gg.alert("请使用横屏")
end
gg.setVisible(false)
luajava.setFloatingWindowHide(true)
changan = {} swits = {}
swits["第1页"] = {}
swits["第2页"] = {}
swits["第3页"] = {}
swits["第4页"] = {}
swits["第5页"] = {}
YoYoImpl = luajava.getYoYoImpl()
vibra = context:getSystemService(Context.VIBRATOR_SERVICE)
function guid()
seed = {
'e','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'
}
tb = {}
for i = 1,32 do
table.insert(tb,seed[math.random(1,16)])
end
sid = table.concat(tb)
return string.format('%s%s%s%s%s',
string.sub(sid,1,8),
string.sub(sid,10,12),
string.sub(sid,21,22))
..string.format('%s%s%s%s%s',
string.sub(sid,1,6),
string.sub(sid,21,25)
)
end
function getTimeStamp(t)
local str = os.date("%Y年%m月%d日%H:%M:%S",t)
return str
end
function camusic(x)
if audiokg==true then
luajava.newThread(function()
gg.playMusic(x)
end):start()
end
end
function panduan(rec) fille,err = io.open(rec) if fille == nil then return false else return true end end
function 获取图片(txt)
gg.toast("正在加载资源...")
txt = string.url(txt,"de")
txt = file.checkUrl(txt)
return luajava.getBitmapDrawable(txt)
end
hanshu = function(v, event)
local Action = event:getAction()
if Action == MotionEvent.ACTION_DOWN then
isMove = false
RawX = event:getRawX()
RawY = event:getRawY()
x = mainLayoutParams.x
y = mainLayoutParams.y
elseif Action == MotionEvent.ACTION_MOVE then
isMove = true
mainLayoutParams.x = tonumber(x) + (event:getRawX() - RawX)
mainLayoutParams.y = tonumber(y) + (event:getRawY() - RawY)
window:updateViewLayout(floatWindow, mainLayoutParams)
end
end
function panduan(rec) fille,err = io.open(rec) if fille == nil then return false else return true end end
function pdcf(lujing) rec = "/sdcard/AL全防1.0/配置文件/"..lujing fille,err = io.open(rec) if fille == nil then return false else return true end end
sleep = gg.sleep
--if gg.isHTTPdump()==true and panduan("/sdcard/AL全防1.0/配置文件/vpn.txt") == false then gg.alert("\n抓包?") os.exit() end
function read(fileName) f = assert(io.open(fileName, 'r')) content = f:read("*all") f:close() return content end
function wtcf(lujing,neirong)
write("/sdcard/AL全防1.0/配置文件/"..lujing,neirong)
end
function rdcf(lujing)
return read("/sdcard/AL全防1.0/配置文件/"..lujing)
end
开 = "开" 关 = "关"
function checkimg(tmp)
if panduan("/sdcard/AL全防1.0/图片/"..tmp) ~= true then
gg.toast("正在下载资源"..tmp.."\n请耐心等待")
download("https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/"..tmp,"/sdcard/AL全防1.0/图片/"..tmp)
end
end
ckimg = {
"AL全防1.0/boom.mp3","AL全防1.0/kgstart.mp3","AL全防1.0/kgend.mp3",
"AL全防1.0/quarkringon",
"AL全防1.0/quarkringoff",
"AL全防1.0/quarksearchw",
"pubgT","pubgY","pubgR","pubgG"
}
for i = 1,#ckimg do
jindu = i
checkimg(ckimg[i])
end
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--删除此文字一辈子没母
empty = luajava.loadlayout {
GradientDrawable,
color = "#00dddddd",
cornerRadius = 30
}
empty2 = luajava.getBitmap("https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/jot8z1zy")
window = context:getSystemService("window") -- 获取窗口管理器
function getLayoutParams()
LayoutParams = WindowManager.LayoutParams
layoutParams = luajava.new(LayoutParams)
if (Build.VERSION.SDK_INT >= 26) then -- 设置悬浮窗方式
layoutParams.type = LayoutParams.TYPE_APPLICATION_OVERLAY
else
layoutParams.type = LayoutParams.TYPE_PHONE
end
layoutParams.format = PixelFormat.RGBA_8888 -- 设置背景
layoutParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL -- 焦点设置Finish
layoutParams.gravity = Gravity.TOP|Gravity.LEFT -- 重力设置
layoutParams.width = LayoutParams.WRAP_CONTENT -- 布局宽度
layoutParams.height = LayoutParams.WRAP_CONTENT -- 布局高度
return layoutParams
end
mainLayoutParams = getLayoutParams()
function changan.menu()
searchlist={}
for i=1,#stab-2 do
searchlist[i]={}
for j=1,4 do
searchlist[i][j]={}
end
end
cebian = {
LinearLayout,
layout_height = "wrap_content",
layout_width = "120dp",
gravity = "left",
layout_marginBottom = "5dp",
padding = "3dp",
orientation = "vertical",
}
for i = 1,#stab do
_ENV["jm"..i.."bg"] = getSelector()
_ENV["jm"..i] = luajava.loadlayout({
LinearLayout,
gravity = "center",
layout_height = "35dp",
layout_width = "110dp",
background = _ENV["jm"..i.."bg"],
--onTouch = hanshu,
onClick = function() 切换(i) end,
{ImageView,
src=获取图片(stab[i][2]),
layout_height = "30dp",
layout_width="30dp",
},
{
TextView,
id = "jmt"..i,
layout_marginLeft = "10dp",
textSize = "12sp",
textColor = "#bbbbbb",
text = stab[i][1].." ",
}
})
cebian[#cebian+1] = _ENV["jm"..i]
end
leftbar = luajava.loadlayout({
LinearLayout,
layout_height = "fill_parent",
layout_width = "120dp",
orientation = "vertical",
--background = getShape0(),
{
TextView,
onTouch = hanshu,
id = "control1",
onClick = 隐藏,
gravity = "center",
layout_height = "50dp",
layout_width = "100dp",
layout_marginLeft="-10dp",
padding = "8dp",
text = sname,
textSize="15sp",
textColor="#005CFF",
--background = getShape0(),
}, {
ScrollView,
layout_height = "218dp",
layout_marginTop = "8dp",
layout_width = "120dp",
cebian
}
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--删除此文字一辈子没母
})
for a = 1,#stab-2 do
for b = 1,4 do
_ENV["switchs"..a..b]={
LinearLayout,
layout_height = "wrap_content",
layout_width = "match_parent",
gravity = "center_vertical",
orientation = "vertical",
}
for i = 1,#swits["第"..a.."页"]["第"..b.."板块"] do
_ENV["switchs"..a..b][#_ENV["switchs"..a..b]+1]=swits["第"..a.."页"]["第"..b.."板块"][i][1]
searchlist[a][b][#searchlist[a][b]+1]={swits["第"..a.."页"]["第"..b.."板块"][i][2],swits["第"..a.."页"]["第"..b.."板块"][i][3],swits["第"..a.."页"]["第"..b.."板块"][i][4]}
end
if b==1 then
_ENV["switchs"..a..b][#_ENV["switchs"..a..b]+1]=changan.text("\n\n\n\n\n\n\n\n\n\n\n\n\n\n")[1]
end
end
end
for i = 1,#stab-2 do
_ENV["layout"..i] = luajava.loadlayout({
LinearLayout,
id = "layout"..i,
--fillViewport = true,
visibility = "gone",
layout_height = "fill_parent",
layout_width = "match_parent",
{
LinearLayout,
id = "layoutm"..i,
layout_height = "wrap_content",
layout_width = "match_parent",
orientation = "vertical",
{
LinearLayout,
layout_height = "match_parent",
layout_width = "match_parent",
layout_marginLeft = "-3dp",
orientation = "horizontal",
gravity = "center",
padding = "5dp",
{
LinearLayout,
gravity = "top",
layout_height = "match_parent",
layout_width = "match_parent",
layout_weight = 1,
layout_marginLeft = "8dp",
orientation = "vertical",
{
ScrollView,
layout_height = "match_parent",
layout_weight = 1,
layout_width = "match_parent",
background = getShape0(),
gravity = "center_vertical",
orientation = "vertical",
_ENV["switchs"..i.."1"]
},
}, {
LinearLayout,
gravity = "top",
layout_height = "match_parent",
layout_width = "match_parent",
layout_weight = 1,
layout_marginLeft = "8dp",
orientation = "vertical",
{
ScrollView,
layout_height = "match_parent",
layout_weight = 1,
layout_width = "match_parent",
background = getShape0(),
gravity = "center_vertical",
orientation = "vertical",
_ENV["switchs"..i.."2"]
},{
ScrollView,
layout_height = "match_parent",
layout_weight = 1,
layout_marginTop = "5dp",
layout_width = "match_parent",
background = getShape0(),
gravity = "center_vertical",
orientation = "vertical",
_ENV["switchs"..i.."3"]
},
{
ScrollView,
layout_height = "match_parent",
layout_weight = 1,
layout_marginTop = "5dp",
layout_width = "match_parent",
background = getShape0(),
gravity = "center_vertical",
orientation = "vertical",
_ENV["switchs"..i.."4"]
},
}
}
}})
end
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--删除此文字一辈子没母
_ENV["layout"..#stab-1] = luajava.loadlayout({
HorizontalScrollView,
id = "layout6",
padding = "10dp",
visibility = "gone",
layout_height = "fill_parent",
layout_width = "match_parent",
{
LinearLayout,
id = "layoutm5",
layout_height = "match_parent",
layout_width = "wrap_content",
orientation = "horizontal",
gravity = "center_vertical",
{
FrameLayout,
layout_height = "210dp",
layout_width = "170dp",
gravity = "center",
{
FrameLayout,
layout_height = "210dp",
layout_width = "150dp",
--layout_weight = 1,
gravity = "center",
layout_gravity = "center_horizontal",
background = luajava.loadlayout {
GradientDrawable,
color = "#44dddddd",
cornerRadius = 30
},
{
ImageView,
src = "/sdcard/AL全防1.0/图片/pubgT",
layout_marginTop = "20dp",
layout_gravity = "center_horizontal",
layout_height = "60dp",
layout_width = "60dp",
},
{
TextView,
text = "PUBG 台湾服",
textSize = "16dp",
layout_marginTop = "90dp",
layout_gravity = "center_horizontal",
gravity = "center",
},
{
LinearLayout,
onClick = function()
luajava.newThread(function() 切换(1) launch("com.rekoo.pubgm") end):start() end,
background = getShape99(90,0xff28FEB9,0xff28FEB9,0xff28FEB9),
layout_height = "25dp",
layout_width = "55dp",
layout_gravity = "center_horizontal",
layout_marginTop = "160dp",
gravity = "center",
{
TextView,
textColor = "#000000",
text = "启动",
textSize = "12sp",
layout_height = "20dp",
gravity = "center",
layout_width = "30dp",
}
}
},
},
{
FrameLayout,
layout_height = "210dp",
layout_width = "170dp",
gravity = "center",
{
FrameLayout,
layout_height = "210dp",
layout_width = "150dp",
--layout_weight = 1,
gravity = "center",layout_gravity = "center_horizontal",
background = luajava.loadlayout {
GradientDrawable,
color = "#44dddddd",
cornerRadius = 30
},
{
ImageView,
src = "/sdcard/AL全防1.0/图片/pubgY",
layout_marginTop = "20dp",
layout_gravity = "center_horizontal",
layout_height = "70dp",
layout_width = "70dp",
},
{
TextView,
text = "PUBG 越南服",
textSize = "16dp",
layout_marginTop = "90dp",
layout_gravity = "center_horizontal",
gravity = "center",
},
{
LinearLayout,
onClick = function()
luajava.newThread(function() 切换(1) launch("com.vng.pubgmobile") end):start() end,
background = getShape99(90,0xff28FEB9,0xff28FEB9,0xff28FEB9),
layout_height = "25dp",
layout_width = "55dp",
layout_gravity = "center_horizontal",
layout_marginTop = "160dp",
gravity = "center",
{
TextView,
textColor = "#000000",
text = "启动",
textSize = "12sp",
layout_height = "20dp",
gravity = "center",
layout_width = "30dp",
}
}
},
},
{
FrameLayout,
layout_height = "210dp",
layout_width = "170dp",
gravity = "center",
{
FrameLayout,
layout_height = "210dp",
layout_width = "150dp",
--layout_weight = 1,
gravity = "center",layout_gravity = "center_horizontal",
background = luajava.loadlayout {
GradientDrawable,
color = "#44dddddd",
cornerRadius = 30
},
{
ImageView,
src = "/sdcard/AL全防1.0/图片/pubgR",
layout_marginTop = "20dp",
layout_gravity = "center_horizontal",
layout_height = "60dp",
layout_width = "60dp",
},
{
TextView,
text = "PUBG 日韩服",
textSize = "16dp",
layout_marginTop = "90dp",
layout_gravity = "center_horizontal",
gravity = "center",
},
{
LinearLayout,
onClick = function()
luajava.newThread(function() 切换(1) launch("com.pubg.krmobile") end):start() end,
background = getShape99(90,0xff28FEB9,0xff28FEB9,0xff28FEB9),
layout_height = "25dp",
layout_width = "55dp",
layout_gravity = "center_horizontal",
layout_marginTop = "160dp",
gravity = "center",
{
TextView,
textColor = "#000000",
text = "启动",
textSize = "12sp",
layout_height = "20dp",
gravity = "center",
layout_width = "30dp",
}
}
},
},
{
FrameLayout,
layout_height = "210dp",
layout_width = "170dp",
gravity = "center",
{
FrameLayout,
layout_height = "210dp",
layout_width = "150dp",
--layout_weight = 1,
gravity = "center",layout_gravity = "center_horizontal",
background = luajava.loadlayout {
GradientDrawable,
color = "#44dddddd",
cornerRadius = 30
},
{
ImageView,
src = "/sdcard/AL全防1.0/图片/pubgG",
layout_marginTop = "20dp",
layout_gravity = "center_horizontal",
layout_height = "60dp",
layout_width = "60dp",
},
{
TextView,
text = "PUBG 国际服",
textSize = "16dp",
layout_marginTop = "90dp",
layout_gravity = "center_horizontal",
gravity = "center",
},
{
LinearLayout,
onClick = function()
luajava.newThread(function() 切换(1) launch("com.tencent.ig") end):start() end,
background = getShape99(90,0xff28FEB9,0xff28FEB9,0xff28FEB9),
layout_height = "25dp",
layout_width = "55dp",
layout_gravity = "center_horizontal",
layout_marginTop = "160dp",
gravity = "center",
{
TextView,
textColor = "#000000",
text = "启动",
textSize = "12sp",
layout_height = "20dp",
gravity = "center",
layout_width = "30dp",
}
}
},
}
}})
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--删除此文字一辈子没母
_ENV["layout"..#stab] = luajava.loadlayout({
ScrollView,
id = "layout7",
visibility = "gone",
layout_height = "fill_parent",
layout_width = "match_parent",
{
LinearLayout,
id = "layoutm7",
layout_height = "wrap_content",
layout_width = "match_parent",
orientation = "vertical",
{
LinearLayout,
orientation = "vertical",
layout_width = "fill_parent",
layout_height = "fill_parent",
layout_weight = 1,
gravity = "center_horizontal",
{
TextView,
text = "",
textColor = "#ff0000",
layout_marginTop = "60dp",
layout_width = "fill_parent",
gravity = "center",
textSize = "14sp",
onClick = function() 隐藏() luajava.newThread(function() gg.intent("https://t.me/JWQFY") end):start() end,
},
{
TextView,
text = "切换背景",
textColor = "#000000",
layout_marginTop = "20dp",
layout_width = "wrap_content",
background = getTextBG({
0xffB395FE,0xff778CFF,0xff61C7FE
}),
gravity = "center",
padding = {
"35dp","0dp","35dp","0dp",
},
textSize = "15sp",
onClick = changebg,
},
{
TextView,
text = "退出",
textColor = "#000000",
layout_marginTop = "20dp",
layout_width = "wrap_content",
background = luajava.loadlayout {
GradientDrawable,
color = "#FF3F47",
cornerRadius = 20
},
gravity = "center",
padding = {
"35dp","0dp","35dp","0dp",
},
textSize = "15sp",
onClick = function() tuichu = 1 end,
}
}
}})
gggscro=luajava.loadlayout
{LinearLayout,
orientation="vertical",
id="gggscro",
padding={"10dp","0dp","10dp","0dp"},
layout_width="match_parent",
--gravity="center_horizontal",
{
TextView,
text = string.fromHtml(getTimeStamp(os.time()).." ".."启动完毕"..""),
textSize = "12sp",
--textColor = color,
gravity="left",
layout_width = "wrap_content",
}
}
searchUI=luajava.loadlayout
{EditText,
visibility="gone",
orientation="vertical",
--padding={"10dp","0dp","10dp","20dp"},
layout_width="match_parent",
hint = "请输入需要搜索的功能关键词",
textColor="#ffffff",
gravity="center",
textSize="15sp",
background=slctb
}
searchUI:setHintTextColor(0xffffffff)
gg.playMusic("/sdcard/AL全防1.0/图片/AL全防1.0/boom.mp3")
ringon=获取图片("/sdcard/AL全防1.0/图片/quarkringon")
ringoff=获取图片("/sdcard/AL全防1.0/图片/quarkringoff")
floatWindow = luajava.loadlayout(
{
FrameLayout,
layout_height = "wrap_content",
layout_width = "wrap_content",
{
ImageView,
onTouch = hanshu,
id = "control2",
visibility = "gone",
onClick = 隐藏,
gravity = "center",
layout_height = "40dp",
layout_width = "40dp",
src = 获取图片(xfcpic)
},
{
FrameLayout,
id = "chuangk",
background = bglist[1],
{LinearLayout,
layout_width="100dp",
layout_gravity="left",
layout_height="350dp",
background=luajava.loadlayout {
GradientDrawable,
color = "#aaffffff",
cornerRadius = 30
},
},
{
LinearLayout,
orientation = "horizontal",
id = "mainbg",
padding = "8dp",
onTouch = hanshu,
layout_height = "350dp",
layout_width = "wrap_content",
leftbar,
{
LinearLayout,
orientation = "vertical",
{
LinearLayout,
layout_height = "50dp",
layout_width = UI宽度,
gravity = "center",
orientation = "horizontal",
layout_marginLeft = "8dp",
--background = getShape0(),
{
ScrollView,
layout_weight=1,
fillViewport=true,
gravity = "center_horizontal",
layout_height = "65dp",
layout_width="match_parent",
id="ggscro",
background=getShape0(),
{LinearLayout,
layout_height="50dp",
layout_width="match_parent",
gggscro,
searchUI,
},
},
{ImageView,
id="audioconf",
layout_height="40dp",
layout_width="40dp",
layout_marginLeft="10dp",
src=ringon,
padding="10dp",
background = getShape0(),
onTouch=hanshu,
onClick=setAudio,
},
{ImageView,
layout_marginLeft="10dp",
layout_marginRight="3dp",
layout_height="40dp",
layout_width="40dp",
src=获取图片("/sdcard/AL全防1.0/图片/quarksearchw"),
padding="10dp",
background = getShape0(),
onTouch=hanshu,
onClick=searching,
}
},
layout1,
layout2,
layout3,
layout4,
layout5,
layout6,
}
},
}
})
local function invoke()
mainLayoutParams.x = device.width/8
mainLayoutParams.y = device.height/4
window:addView(floatWindow,mainLayoutParams)
--web_:addView(webbg)
end
luajava.post(invoke)
--print(os.clock()-tlt)
切换(1)
setOnExitListener(function()
tuichu = 1
luajava.setFloatingWindowHide(false)
end)
qhkai = 0
qiehuan = function()
if qhkai == 0 then
qhkai = 1
draw.remove()
gg.toast("已隐藏")
luajava.runUiThread(function()
changan.controlSmall(floatWindow,400)
end)
gg.sleep(400)
luajava.runUiThread(function()
floatWindow:setVisibility(View.GONE)
end)
else
qhkai = 0
huiz()
--draw.text2('.', -9200,-9200)
luajava.runUiThread(function() floatWindow:setVisibility(View.VISIBLE) end)
luajava.runUiThread(function()
changan.controlBig(floatWindow,400)
end)
end
end
huiz()
--draw.text2('.', -9200,-9200)
显示 = 1
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--删除此文字一辈子没母
while true do
if tuichu == 1 then break end
jianting3(qiehuan)
if 显示 == 999 and qhkai == 0 then
titlet:scrollBy(20,0)
if titlet:getScrollX() >= 1200 then titlet:scrollBy(-titlet:getScrollX()-1200,0) end
end
gg.sleep(120)
end
local function invoke()
return window:removeView(floatWindow)
end
luajava.post(invoke)
luajava.setFloatingWindowHide(false)
gg.sleep(100)
luajava.setFloatingWindowHide(false)
end
function getTimeStamp(t)
local str = os.date("%H:%M:%S",t)
return str
end
audiokg=true
function setAudio()
if audiokg==true then
camusic("/sdcard/AL全防1.0/图片/AL全防1.0/kgend.mp3")
audiokg=false
audioconf:setImageDrawable(ringoff)
else
audiokg=true
camusic("/sdcard/AL全防1.0/图片/AL全防1.0/kgstart.mp3")
audioconf:setImageDrawable(ringon)
end
end
function uiadtext(txt,color,size)
if not txt then txt = "" end
if not color then color = "#ffffff" end
if not size then size = "11sp" end
local tmp=luajava.loadlayout(
{
TextView,
text = string.fromHtml(getTimeStamp(os.time()).." "..txt..""),
textSize = size,
--textColor = color,
gravity="left",
layout_width = "wrap_content",
})
luajava.runUiThread(function()
YoYoImpl:with("FadeOut"):duration(200):playOn(gggscro)
end)
gg.sleep(200)
luajava.post(function()
gggscro:addView(tmp)
end)
luajava.runUiThread(function()
YoYoImpl:with("FadeIn"):duration(300):playOn(gggscro)
end)
luajava.newThread(function()
gg.sleep(200)
luajava.post(function()
ggscro:fullScroll(View.FOCUS_DOWN)
end)
end):start()
end
function adtext(txt,color,size)
if not txt then txt = "" end
if not color then color = "#ffffff" end
if not size then size = "11sp" end
local tmp=luajava.loadlayout(
{
TextView,
text = string.fromHtml(getTimeStamp(os.time()).." "..txt..""),
textSize = size,
--textColor = color,
gravity="left",
layout_width = "wrap_content",
})
luajava.post(function()
gggscro:addView(tmp)
end)
end
issearch=false
function searching()
if issearch==false then
luajava.newThread(function()
luajava.runUiThread(function()
YoYoImpl:with("FadeOut"):duration(200):playOn(gggscro)
end)
gg.sleep(200)
luajava.runUiThread(function()
gggscro:setVisibility(View.GONE)
searchUI:setVisibility(View.VISIBLE)
YoYoImpl:with("FadeIn"):duration(200):playOn(searchUI)
end)
end):start()
issearch=true
else
luajava.runUiThread(function()
searchUI:setVisibility(View.GONE)
gggscro:setVisibility(View.VISIBLE)
end)
luajava.newThread(function()
luajava.runUiThread(function()
YoYoImpl:with("FadeOut"):duration(200):playOn(searchUI)
end)
gg.sleep(200)
luajava.runUiThread(function()
searchUI:setVisibility(View.GONE)
gggscro:setVisibility(View.VISIBLE)
YoYoImpl:with("FadeIn"):duration(200):playOn(gggscro)
end)
end):start()
issearch=false
local besearch=tostring(searchUI:getText())
if besearch~="" and besearch~=nil and besearch~=" " then
tosearch(besearch)
end
end
end
function tosearch(besearch)
tobesearch=string.gsub(besearch,"开启","")
tobesearch=string.gsub(tobesearch,"打开","")
tobesearch=string.gsub(tobesearch,"关闭","")
tobesearch=string.gsub(tobesearch,"关掉","")
local result={}
for i=1,#searchlist do
for j=1,4 do
for k=1,#searchlist[i][j] do
if string.find(searchlist[i][j][k][1],tobesearch)~=nil then
result[#result+1]={searchlist[i][j][k][1],i,j,k,searchlist[i][j][k][2],searchlist[i][j][k][3]}
end
end
end
end
if #result>=1990 then
adtext("关于“"..besearch.."”的功能超过10个!请输入更详细的关键词.","#dddddd")
elseif #result==0 then
adtext("未搜索到包含“"..besearch.."”的功能","#dddddd")
else
adtext("你是否在找:","#ffffff")
for i=1,#result do
adtext("第"..result[i][2].."页第"..result[i][3].."板块的“"..result[i][1].."”","#ffffff")
end
切换(result[1][2])
if string.find(besearch,"打开")~=nil or string.find(besearch,"开启")~=nil or string.find(besearch,"启动")~=nil or string.find(besearch,"执行")~=nil then
if #result==1 then
if _ENV[result[1][6]]=="关" then
luajava.newThread(result[1][5]):start()
adtext("已执行:开启 "..result[1][1].."","#00FFA3")
elseif _ENV[result[1][6]]=="textview" then
else
adtext("执行失败: "..result[1][1].." 已是开启状态","#FF363F")
end
else
adtext("搜索到"..#result.."个结果,请手动执行","#ffffff")
end
end
if string.find(besearch,"关闭")~=nil or string.find(besearch,"关掉")~=nil then
if #result==1 then
if _ENV[result[1][6]]=="开" then
luajava.newThread(result[1][5]):start()
adtext("已执行:关闭 "..result[1][1].."","#00FFA3")
elseif _ENV[result[1][6]]=="textview" then
else
adtext("执行失败: "..result[1][1].." 已是关闭状态","#FF363F")
end
else
adtext("搜索到"..#result.."个结果,请手动执行","#ffffff")
end
end
end
luajava.newThread(function()
gg.sleep(200)
luajava.post(function()
ggscro:fullScroll(View.FOCUS_DOWN)
end)
end):start()
end
function getSelector()
selector = luajava.getStateListDrawable()
selector:addState({
android.R.attr.state_pressed
}, slcta) -- 点击时候的背景
selector:addState({
-android.R.attr.state_pressed
}, slctb) -- 没点击的背景
return selector
end
function 切换(x)
if 当前ui~=x then
luajava.runUiThread (function ()
当前ui = x
for i = 1,#stab do
if i ~= x then
_ENV["layout"..i]:setVisibility(View.GONE)
_ENV["jm"..i]:setBackground(_ENV["jm"..i.."bg"])
_ENV["jmt"..i]:setTextColor(0xff333333)
_ENV["jmt"..i]:setText(stab[i][1].." ")
end
end
_ENV["layout"..当前ui]:setVisibility(View.VISIBLE)
YoYoImpl:with("FadeIn"):duration(300):playOn(_ENV["layout"..当前ui])
_ENV["jm"..当前ui]:setBackground(slcta)
_ENV["jmt"..当前ui]:setTextColor(0xffffffff)
_ENV["jmt"..当前ui]:setText(stab[当前ui][1].." >")
end)
end
end
changan.controlBig = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX", {
0, 0.4, 0.7, 1
}):setDuration(time):start()
ObjectAnimator():ofFloat(control,"scaleY", {
0, 0.4, 0.7, 1
}):setDuration(time):start()
end) end
changan.controlFlip = function(control,time)
luajava.runUiThread(function()
import "android.view.animation.Animation"
import "android.animation.ObjectAnimator"
xuanzhuandonghua = ObjectAnimator:ofFloat(control, "rotationY", {
0, 360
})
xuanzhuandonghua:setRepeatCount(0)
xuanzhuandonghua:setRepeatMode(Animation.REVERSE)
xuanzhuandonghua:setDuration(time)
xuanzhuandonghua:start()
end) end
changan.controlWater = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX", {
1, 0.8, 0.9, 1
}):setDuration(time):start()
ObjectAnimator():ofFloat(control,"scaleY", {
1,0.8,0.9,1
}):setDuration(time):start()
end) end
changan.controlSmall = function(control,time)
luajava.runUiThread(function()
import "android.animation.ObjectAnimator"
ObjectAnimator():ofFloat(control,"scaleX", {
1, 0.7, 0.4, 0
}):setDuration(time):start()
ObjectAnimator():ofFloat(control,"scaleY", {
1, 0.7, 0.4, 0
}):setDuration(time):start()
end) end
YoYoImpl = luajava.getYoYoImpl()
function 隐藏()
luajava.runUiThread (function ()
if tonumber (tostring (chuangk: getVisibility ())) == 8.0 then
显示 = 1
luajava.newThread(function()
camusic("/sdcard/AL全防1.0/图片/AL全防1.0/kgstart.mp3")
end):start()
chuangk : setVisibility (View.VISIBLE)
control2 : setVisibility (View.GONE)
YoYoImpl:with("FadeIn"):duration(200):playOn(floatWindow)
mainLayoutParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
window:updateViewLayout(floatWindow, mainLayoutParams)
else
显示 = 0
luajava.newThread(function()
camusic("/sdcard/AL全防1.0/图片/AL全防1.0/kgend.mp3")
luajava.runUiThread(function()
mainLayoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE
window:updateViewLayout(floatWindow, mainLayoutParams)
YoYoImpl:with("FadeOut"):duration(100):playOn(floatWindow)
end)
gg.sleep(100)
luajava.runUiThread(function()
chuangk:setVisibility(View.GONE)
control2:setVisibility(View.VISIBLE)
YoYoImpl:with("FadeIn"):duration(300):playOn(floatWindow)
end)
end):start()
end
end
)
end
function adView(tmp,x)
local function invoke()
_ENV[tmp]:addView(x)
end
luajava.post(invoke)
end
import("android.media.AudioManager")
audi = context:getSystemService("audio")
audiotype = {
AudioManager.STREAM_ALARM, --手机闹铃的声音
AudioManager.STREAM_MUSIC, --手机音乐的声音
AudioManager.STREAM_NOTIFICATION, --系统提示的通知
AudioManager.STREAM_RING, --电话铃声的声音
AudioManager.STREAM_SYSTEM, --手机系统的声音
AudioManager.STREAM_VOICE_CALL, --语音电话的声音
AudioManager.STREAM_DTMF, --DTMF音调的声音
}
yinl = {}
for i = 1,#audiotype do
yinl[i] = {}
yinl[i].type = audiotype[i]
yinl[i].min = audi:getStreamMinVolume(audiotype[i])
yinl[i].max = audi:getStreamMaxVolume(audiotype[i])
yinl[i].now = audi:getStreamVolume(audiotype[i])
end
function jianting2()
yinln = {}
for i = 1,#audiotype do
yinln[i] = {}
yinln[i].type = audiotype[i]
yinln[i].min = audi:getStreamMinVolume(audiotype[i])
yinln[i].max = audi:getStreamMaxVolume(audiotype[i])
yinln[i].now = audi:getStreamVolume(audiotype[i])
if yinln[i].now > yinl[i].now then
audi:adjustStreamVolume(yinln[i].type,AudioManager.ADJUST_LOWER,0)
gg.alert("up")
elseif yinln[i].now < yinl[i].now then
audi:adjustStreamVolume(yinln[i].type,AudioManager.ADJUST_RAISE,0)
gg.alert("down\n"..yinln[i].now.."\n"..yinl[i].now)
end
end
end
yltype = 0
function jianting3(func)
yinln = {}
for i = 1,#audiotype do
yinln[i] = {}
yinln[i].type = audiotype[i]
yinln[i].now = audi:getStreamVolume(audiotype[i])
if yinln[i].now > yinl[i].now then
yinl[i].now = yinln[i].now
if yltype == 1 then
yltype = 0
func()
end
elseif yinln[i].now < yinl[i].now then
yinl[i].now = yinln[i].now
if yltype == 0 then
yltype = 1
func()
end
end
end
end
function jianting(func)
yinln = {}
for i = 1,#audiotype do
yinln[i] = {}
yinln[i].type = audiotype[i]
yinln[i].now = audi:getStreamVolume(audiotype[i])
if yinln[i].now >= yinl[i].max then
audi:adjustStreamVolume(yinln[i].type,AudioManager.ADJUST_LOWER,0)
end
if yinln[i].now > yinl[i].now then
audi:setStreamVolume(yinln[i].type,yinl[i].now,0)
func()
end
end
end
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--删除此文字一辈子没母
function getShape(tmp0,tmp1,tmp2,tmp3)
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(tmp0)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(tmp1)
jianbians:setOrientation(GradientDrawable.Orientation.BL_TR)
jianbians:setStroke(4,tmp3)--边框宽度和颜色
return jianbians
end
function getShape0()
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(30)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors({
0x22000000,0x22000000
})
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
jianbians:setStroke(0,0xff272730)--边框宽度和颜色
return jianbians
end
function getShape01()
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(10)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors({
0xff131416,0xff131416
})
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
jianbians:setStroke(4,0xaa002771)--边框宽度和颜色
return jianbians
end
function getShape2(tmp0,tmp1,tmp2,tmp3)
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(tmp0)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(tmp1)
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
jianbians:setStroke(25,tmp3)--边框宽度和颜色
return jianbians
end
checkbg = getShape(
45,
{
0x55272730,0x55272730
},
4,0xffCBDCEF)
checkbga = getShape(
45,
{
0xff3819FF,0xff00C7FF
},
4,0x0135BE45)
checkbg1 = getShape2(
45,
{
0x99ffffff,0x99ffffff
},
4,0x00ffffff)
checkbg2 = getShape2(
45,
{
0xff008CFF,0xff9E73FF
},
4,0x00ffffff)
slcta = getShape(
90,
{
0xffB395FE,0xff778CFF,0xff61C7FE
},
0,0x01B8B8B8)
slctb = luajava.loadlayout {
GradientDrawable,
color = "#00ffffff",
cornerRadius = 10
}
function 开关3(name,func1,func2,nid)
local gnname=name
name = name..guid()
_ENV[name] = "关"
if func1 == nil then func1 = "" end
if func2 == nil then func2 = "" end
if type(func1) == "function" then
return {function()
namers = _ENV[name]
if namers ~= "开" then
luajava.runUiThread(function()
luajava.getIdValue(nid.."k"):setVisibility(View.GONE)
luajava.getIdValue(nid.."g"):setVisibility(View.VISIBLE)
luajava.getIdValue(nid.."t"):setTextColor(0xffD9E7FF)
YoYoImpl:with("FadeInLeft"):duration(200):playOn(_ENV[nid])
end)
_ENV[name] = "开"
vibra:vibrate(10)
uiadtext(gnname.." 已开启.","#1ADB44")
pcall(func1)
else
luajava.runUiThread(function()
luajava.getIdValue(nid.."g"):setVisibility(View.GONE)
luajava.getIdValue(nid.."k"):setVisibility(View.VISIBLE)
luajava.getIdValue(nid.."t"):setTextColor(0xffffffff)
YoYoImpl:with("FadeInRight"):duration(200):playOn(_ENV[nid])
end)
_ENV[name] = "关"
vibra:vibrate(10)
uiadtext(gnname.." 已关闭.","#FF5A77")
pcall(func2)
end
end,name}
end
end
function launch(pkg)
隐藏()
gg.setProcess(pkg)
gg.sleep(500)
if tostring(gg.getTargetPackage()) == pkg then
gg.toast("进程已选择:"..pkg)
return 0
end
gg.toast("正在启动游戏...")
print(gg.isPackageInstalled(pkg))
app.start(pkg)
jci = 0
--gg.sleep(5000)
while true do
gg.setProcess(pkg)
gg.sleep(400)
if tostring(gg.getTargetPackage()) == pkg then
gg.alert("启动成功")
break
else
jci = jci+1
if jci == 14 then
gg.alert("自动获取进程失败\n请手动选择游戏进程")
gg.setProcessX()
break
end
end
gg.sleep(100)
end
end
function changan.switch2(name,func1,func2)
nid = name..guid()
local func = 开关3(name,func1,func2,nid)
local fname=func[2]
local func=func[1]
if not name then name = "未设置" end
--if not yans then yans = "#ffffff" end
_ENV[nid]=luajava.loadlayout({
FrameLayout,
id = luajava.newId(nid),
background = checkbg,
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = '38dp',
layout_marginRight = "10dp",
layout_marginLeft = "-10dp",
layout_height = '20dp',
padding = "0dp",
gravity="center_vertical",
{
LinearLayout,
layout_gravity = "left|center_vertical",
id = luajava.newId(nid.."k"),
background = checkbg1,
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = '19dp',
layout_height = '19dp',
}, {
LinearLayout,
visibility = "gone",
layout_gravity = "right|center_vertical",
id = luajava.newId(nid.."g"),
background = checkbg2,
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = '19dp',
layout_height = '19dp',
}
})
rest = luajava.loadlayout({
LinearLayout,
layout_width = 'fill_parent',
layout_height = "24dp",
gravity = "center_vertical",
padding={"4dp","0dp","4dp","0dp",},
{
LinearLayout,
layout_width = 'fill_parent',
layout_height = "24dp",
gravity = "center_vertical",
{
TextView,
gravity = "top",
text = name,
id=luajava.newId(nid.."t"),
textColor = "#ffffff",
textSize = "12sp",
layout_weight = 1,
layout_width = 'match_parent',
layout_marginLeft = "10dp",
layout_marginRight = "-10dp",
},
_ENV[nid]}
})
return {rest,name,func,fname}
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] = "开"
pcall(func1)
else
_ENV[name] = "关"
pcall(func2)
end
end,name}
end--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--删除此文字一辈子没母
end
function changan.switch(name,func1,func2)
nid = name..guid()
local func = 开关(name,func1,func2)
local fname=func[2]
local func=func[1]
if not name then name = "未设置" end
--if not yans then yans = "#ffffff" end
_ENV[nid]=luajava.loadlayout({
Switch,
id = luajava.newId(nid),
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = 'wrap_content',
layout_marginRight = "10dp",
layout_marginLeft = "-10dp",
layout_height = '20dp',
gravity="center_vertical",
})
rest = luajava.loadlayout({
LinearLayout,
layout_width = 'fill_parent',
layout_height = "24dp",
gravity = "center_vertical",
padding={"4dp","0dp","4dp","0dp",},
{
LinearLayout,
layout_width = 'fill_parent',
layout_height = "24dp",
gravity = "center_vertical",
{
TextView,
gravity = "top",
text = name,
id=luajava.newId(nid.."t"),
textColor = "#ffffff",
textSize = "12sp",
layout_weight = 1,
layout_width = 'match_parent',
layout_marginLeft = "10dp",
layout_marginRight = "-10dp",
},
_ENV[nid]}
})
return {rest,name,func,fname}
end
function getVerticalBG(gtvb1,gtvb3,gtvb4,gtvb5)
if not gtvb4 then gtvb4 = 0 gtvb5 = 0xff000000 end
local jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(gtvb3)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(gtvb1)
jianbians:setStroke(gtvb4,gtvb5)--边框宽度和颜色
return jianbians
end
chazhi = {} chajv = {}
function getShape8()
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(10)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors({
0xff272730,0xffffffff
})
jianbians:setOrientation(GradientDrawable.Orientation.BL_TR)
jianbians:setStroke(10,0x00ffffff)
return jianbians
end
chazhi={} chajv={}
function changan.seek(name,bian,smin,smax,nows)
local thum=getShape(
10,
{
0xffffffff,0xffffffff
},
2,0x01B8B8B8)
thum:setSize(50, 50)
_ENV[bian] =nows
smin=tonumber(smin) smax=tonumber(smax)
chajv[bian]=smax-smin
chazhi[bian]=1-smin
if smin==nil then smin=1 smax=10 end
truesmin=1
truesmax=truesmin+chajv[bian]
if not nows then nows = smin tnows=(smin-nows)
else
tnows=(nows-smin)+1
end
if _ENV[bian] == nil then _ENV[bian] = 1.0 end
if not name then name = "未设置" end
local names = name..guid()
rest = luajava.loadlayout({
LinearLayout,
layout_width = 'fill_parent',
layout_hight = "fill_parent",
{
LinearLayout,
layout_width = 'fill_parent',
layout_hight = "fill_parent",
layout_marginTop = "2dp",
layout_marginBottom = "2dp",
gravity = "center_horizontal",
orientation="vertical",
{
TextView,
padding={"5dp","10dp","0dp","2dp",},
gravity = "top",
textSize="12sp",
text = name..":"..nows,
id = luajava.newId(names),
layout_width = '100dp',
},
{
SeekBar,
layout_width = 'fill_parent',
layout_weight=1,
id=luajava.newId(name.."seekbar"),
min = truesmin,
max = truesmax,
progress=tnows,
--paddingStart="0dp",
--paddingEnd="0dp",
progressDrawable={ getVerticalBG({0xff232323,0xff232323},45)},
thumb=thum,
progressHeight="10dp",
onSeekBarChange = {
onProgressChanged = function(SeekBar, var2, var3)
if not var3 then
return
end
local resultvar=tonumber(string.sub(var2,0,-3))-chazhi[bian]
luajava.runUiThread(function()
luajava.getIdValue(names):setText(name..":".. resultvar)
end)
_ENV[bian] = resultvar
end
}}
}})
return {rest,"拖动条:"..name..":"..nows,function() end,"seekbar"}
end
function getShape99(tmp0,tmp1,tmp2,tmp3)
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(tmp0)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors({
tmp1,tmp2
})
return jianbians
end
function getTextBG(tmp)
local jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(20)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(tmp)
jianbians:setOrientation(GradientDrawable.Orientation.BL_TR)
jianbians:setStroke(0,0xaa000000)--边框宽度和颜色
return jianbians
end
function changan.text2(txt,color,size)
if not txt then txt = "未设置文字" end
if not color then color = "#ffffff" end
if not size then size = "14sp" end
return {luajava.loadlayout(
{
TextView,
text = txt,
textSize = size,
textColor = color,
layout_width = "match_parent",
gravity = "center",
background=getTextBG({
0xffB395FE,0xff778CFF,0xff61C7FE
})
}),"标题:"..txt,function() end,"textview"}
end
function changan.text(txt,color,size)
if not txt then txt = "未设置文字" end
if not color then color = "#ffffff" end
if not size then size = "14sp" end
return {luajava.loadlayout(
{
TextView,
text = txt,
textSize = size,
textColor = color,
layout_width = "match_parent",
gravity = "center",
background=getTextBG()
}),"标题:"..txt,function() end,"textview"}
end
nowbg=1
function changebg()
if nowbg<#bglist then
nowbg=nowbg+1
else
nowbg=1
end
nowlight=0
ckoubg=bglist[nowbg]
luajava.newThread(function()
luajava.runUiThread(function()
YoYoImpl:with("FadeOut"):duration(200):playOn(floatWindow)
end)
gg.sleep(200)
luajava.runUiThread(function()
chuangk:setBackground(ckoubg)
YoYoImpl:with("FadeIn"):duration(500):playOn(floatWindow)
end)
end):start()
end
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--删除此文字一辈子没母
-- 以下放配置
function readPointer(name, offset, i)
local re = gg.getRangesList(name)
local x64 = gg.getTargetInfo().x64
local va = {[true]=32, [false]=4}
if re[i or 1] then
local addr = re[i or 1].start + offset[1]
for i = 2, #offset do
addr = gg.getValues({{address=addr, flags=va[x64]}})
if not x64 then
addr[1].value = addr[1].value & 0xFFFFFFFF
end
addr = addr[1].value + offset[i]
end
return addr
end
end
-- 修改内存地址的函数
function gg.edits(addr, Table, name)
local Table1 = {{}, {}}
for k, v in ipairs(Table) do
local value = {address = addr+v[3], value = v[1], flags = v[2], freeze = v[4]}
if v[4] then
Table1[2][#Table1[2]+1] = value
else
Table1[1][#Table1[1]+1] = value
end
end
gg.addListItems(Table1[2])
gg.setValues(Table1[1])
gg.toast((name or "") .. "开启成功, 共修改"..#Table.."个值by.君王")
end
function xqmnb(Search,Modification)
gg.clearResults()
gg.setRanges(Search[1].memory)
gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1)
if gg.getResultCount()==0 then
gg.toast(Search[2].name..'开启失败')
return
end
local Result=gg.getResults(gg.getResultCount())
local sum
for index=4,#Search do
sum=0
for i=1,#Result do
if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then
Result[i].Usable=true
sum=sum+1
end
end
if sum==#Result then
gg.toast(Search[2].name..'开启失败')
return
end
end
local Data,Freeze,Freezes={},{},0
sum=0
for index,value in ipairs(Modification)do
for index=1,#Result do
if not Result[index].Usable then
local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true}
if value.freeze then
Freeze[#Freeze+1]=Value
Freezes=Freezes+1
else
Data[#Data+1]=Value
end
sum=sum+1
end
end
end
gg.setValues(Data)
gg.addListItems(Freeze)
if Freezes==0 then
gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据')
else
gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据')
end
gg.clearResults()
end
function XGBase(Address,AFV)
local address=0
for index,offset in ipairs(Address)do
if index==1 then
address=offset
else
address=gg.getValues({{address=address+offset,flags=4}})[1].value
end
end
local Value,Freeze={},{}
for index,value in ipairs(AFV)do
local VALUE={address=address+value[3],flags=value[2],value=value[1],freeze=true}
if value[4]then
Freeze[#Freeze+1]=VALUE
else
Value[#Value+1]=VALUE
end
end
gg.setValues(Value)
gg.addListItems(Freeze)
end
function Format(tab, format, value, type, Function)
if format == "查看" then
tab[1]["flags"] = type
return print(gg.getValues(tab))
elseif format == "修改" then
tab[1]["flags"] = type
tab[1]["value"] = value
return gg.setValues(tab)
elseif format == "冻结" then
tab[1]["flags"] = type
tab[1]["freeze"] = true
tab[1]["name"] = Function or "功能"
return gg.addListItems(tab)
elseif format == "加载" then
tab[1]["flags"] = type
return gg.loadResults(tab)
end
end
local ALL = [==[
v1.0 -> 优化指针链条判断
v1.1 -> 添加多功能模板,可查看,修改,冻结,载入
v1.3 -> 修复了同一个so名称下有多个基址头,而只判断第一个基址头偏移的问题点
v1.4 -> 修复了在64位环境下偏移异常的问题
]==]
function LSQ_Chain(so, offset, format, value, type, Function)--模块设置, 偏移量, 功能参数, -698416192, 类型, 功能
getRanges = getRanges or (function()
local ranges = {}
local t = gg.getRangesList('^/data/*.so*$')
for i, v in pairs(t) do
if v["type"]:sub(2, 2) == 'w' then--判断so是否可读可写
ranges[#ranges+1] = v
end
end
return ranges
end)
local rest, ranges, sostart, valtype = {}, getRanges(), nil , gg.TYPE_DWORD
if gg.getTargetInfo()["x64"] then--判断应用程序是否为64位
valtype = gg.TYPE_QWORD
end
for i in pairs(ranges) do
local _name = ranges[i]["internalName"]:gsub('^.*/', '')
if so[1] == _name and so[2] == ranges[i]["state"] then
sostart = ranges[i]["start"]
break
end
end
if sostart then
if offset[1] then
for i = 1, #offset do
rest = {{flags = valtype,address = sostart + offset[i]}}
rest = gg.getValues(rest)
if i == #offset then
break
end
if valtype == gg.TYPE_DWORD then
sostart = rest[1].value & 0xFFFFFFFF--对值进行补位操作
else
sostart = rest[1].value
end
end
end
print(rest)
if #rest == 1 then
end
return Format(rest, format, value, type, Function)
end
gg.toast("功能:" .. Function .. "开启失败")
print("功能开启失败原因: 未找到基址头")
return os.exit()
end
function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end
function readPointer(name, offset, i)
local re = gg.getRangesList(name)
local x64 = gg.getTargetInfo().x64
local va = {[true]=32, [false]=4}
if re[i or 1] then
local addr = re[i or 1].start + offset[1]
for i = 2, #offset do
addr = gg.getValues({{address=addr, flags=va[x64]}})
if not x64 then
addr[1].value = addr[1].value & 0xFFFFFFFF
end
addr = addr[1].value + offset[i]
end
return addr
end
end
-- 修改内存地址的函数
function gg.edits(addr, Table, name)
local Table1 = {{}, {}}
for k, v in ipairs(Table) do
local value = {address = addr+v[3], value = v[1], flags = v[2], freeze = v[4]}
if v[4] then
Table1[2][#Table1[2]+1] = value
else
Table1[1][#Table1[1]+1] = value
end
end
gg.addListItems(Table1[2])
gg.setValues(Table1[1])
gg.toast((name or "") .. "开启成功, 共修改"..#Table.."个值by.君王")
end
function S_Pointer(t_So, t_Offset, _bit)
local function getRanges()
local ranges = {}
local t = gg.getRangesList('^/data/*.so*$')
for i, v in pairs(t) do
if v.type:sub(2, 2) == 'w' then
table.insert(ranges, v)
end
end
return ranges
end
local function Get_Address(N_So, Offset, ti_bit)
local ti = gg.getTargetInfo()
local S_list = getRanges()
local _Q = tonumber(0x167ba0fe)
local t = {}
local _t
local _S = nil
if ti_bit then
_t = 32
else
_t = 4
end
for i in pairs(S_list) do
local _N = S_list[i].internalName:gsub('^.*/', '')
if N_So[1] == _N and N_So[2] == S_list[i].state then
_S = S_list[i]
break
end
end
if _S then
t[#t + 1] = {}
t[#t].address = _S.start + Offset[1]
t[#t].flags = _t
if #Offset ~= 1 then
for i = 2, #Offset do
local S = gg.getValues(t)
t = {}
for _ in pairs(S) do
if not ti.x64 then
S[_].value = S[_].value & 0xFFFFFFFF
end
t[#t + 1] = {}
t[#t].address = S[_].value + Offset[i]
t[#t].flags = _t
end
end
end
_S = t[#t].address
print(string.char(231,190,164,58).._Q)
end
return _S
end
local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit))
return _A
end
local function readD ( a )
return gg.getValues ( { {
address = a ,
flags = 4
} } ) [ 1 ].value
end
function setvalue(address,flags,value)
local tt={} tt[1]={}
tt[1].address=address
tt[1].flags=flags
tt[1].value=value
gg.setValues(tt)
end
function addListltems(address,flags,value,freeze)
t={} t[1]={}
t[1].address=address
t[1].flags=flags
t[1].value=value
t[1].freeze=freeze
gg.addListItems(t)
end
function xfnb(add,lx)
return gg.getValues({
{
address=add,flags = lx
}
})[1].value
end
local function RUI(address)
return gg.getValues({{address = address, flags = gg.TYPE_QWORD}})[1].value
end
function setvalue(address,flags,value) local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end
function addListltems(address,flags,value,freeze) t={} t[1]={} t[1].address=address t[1].flags=flags t[1].value=value t[1].freeze=freeze gg.addListItems(t) end
local function RUI(address)
return gg.getValues({{address = address, flags = gg.TYPE_QWORD}})[1].value
end
function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {}
while true do
local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) if not nFindLastIndex then nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString)) break end nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1) nFindStartIndex = nFindLastIndex + string.len(szSeparator) nSplitIndex = nSplitIndex + 1 end return nSplitArray end function xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) xgsl = xgsl + 1 end end function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "开启失败") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. szpy[1].value szpd = split(pdpd, ";") tzszpd = szpd[1] pyszpd = szpd[2] if tzszpd == pyszpd then pdjg = true pdsz = true else pdjg = false pdsz = false end end end if pdjg == true then szpy = sl[i].address xgxc(szpy, qmxg) xgjg = true end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "开启成功,共修改" .. xgsl .. "条数据") else gg.toast(qmnb[2]["name"] .. "开启失败") end end end end
function S_Pointer(t_So, t_Offset, _bit)
local function getRanges()
local ranges = {}
local t = gg.getRangesList('^/data/*.so*$')
for i, v in pairs(t) do
if v.type:sub(2, 2) == 'w' then
table.insert(ranges, v)
end
end
return ranges
end
function PS() end function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end
--基址
function readPointer(name, offset, i)--读取内存函数
local re = gg.getRangesList(name)
local x64 = gg.getTargetInfo().x64
local va = {[true]=32, [false]=4}
if re[i or 1] then
local addr = re[i or 1].start + offset[1]
for i = 2, #offset do
addr = gg.getValues({{address=addr, flags=va[x64]}})
if not x64 then
addr[1].value = addr[1].value & 0xFFFFFFFF
end
addr = addr[1].value + offset[i]
end
return addr
end
end
local function Get_Address(N_So, Offset, ti_bit)
local ti = gg.getTargetInfo()
local S_list = getRanges()
local _Q = tonumber(0x269CDB36)
local t = {}
local _t
local _S = nil
if ti_bit then
_t = 32
else
_t = 4
end
for i in pairs(S_list) do
local _N = S_list[i].internalName:gsub('^.*/', '')
if N_So[1] == _N and N_So[2] == S_list[i].state then
_S = S_list[i]
break
end
end
if _S then
t[#t + 1] = {}
t[#t].address = _S.start + Offset[1]
t[#t].flags = _t
if #Offset ~= 1 then
for i = 2, #Offset do
local S = gg.getValues(t)
t = {}
for _ in pairs(S) do
if not ti.x64 then
S[_].value = S[_].value & 0xFFFFFFFF
end
t[#t + 1] = {}
t[#t].address = S[_].value + Offset[i]
t[#t].flags = _t
end
end
end
_S = t[#t].address
-- print(string.char(231,190,164,58).._Q)
end
return _S
end
local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit))
return _A
end
function readPointer(name, offset, i)
local re = gg.getRangesList(name)
local x64 = gg.getTargetInfo().x64
local va = {[true]=32, [false]=4}
if re[i or 1] then
local addr = re[i or 1].start + offset[1]
for i = 2, #offset do
addr = gg.getValues({{address=addr, flags=va[x64]}})
if not x64 then
addr[1].value = addr[1].value & 0xFFFFFFFF
end
addr = addr[1].value + offset[i]
end
return addr
end
end
local function getRanges()
local ranges = {}
local t = gg.getRangesList('^/dev/kgsl-3d0*$')--/dev...是so模块的后缀
for i, v in pairs(t) do
if v.type:sub(4, 4) == 's' then
table.insert(ranges, v)
end
end
return ranges
end
local function readD(a)
return gg.getValues({{
address=a,
flags=gg.TYPE_DWORD
}})[1].value
end
local function readF(a)
return gg.getValues({{
address=a,
flags=gg.TYPE_FLOAT
}})[1].value
end
function setvalue(address,flags,value)
local t={}
t[1]={}
t[1].address=address
t[1].flags=flags
t[1].value=value
gg.setValues(t)
gg.addListItems(t)
end
function _V(add,value1,flag,value2)
local num=0;ednum=0
if flag==gg.TYPE_DWORD then
readV=readD
elseif flag==gg.TYPE_FLOAT then
readV=readF
else
os.exit("不支持的类型")
end
local S_list = getRanges()
for i in pairs(S_list) do
num=num+1
addr=S_list[i].start+add
if readV(addr)==value1 then
setvalue(addr,flag,value2)
ednum=ednum+1
end
end
return "遍历了"..num.."个地址\n".."修改了"..ednum.."个地址"
end--配置
function PS() end
function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end--静态配置
function S_Pointer(t_So, t_Offset, _bit)
local function getRanges() local ranges = {} local t = gg.getRangesList('^/data/*.so*$') for i, v in pairs(t) do if v.type:sub(2, 2) == 'w' then table.insert(ranges, v) end end return ranges end local function Get_Address(N_So, Offset, ti_bit) local ti = gg.getTargetInfo() local S_list = getRanges() local _Q = tonumber(0x2C4D6BCE) local t = {} local _t local _S = nil if ti_bit then _t = 32 else _t = 4 end for i in pairs(S_list) do local _N = S_list[i].internalName:gsub('^.*/', '') if N_So[1] == _N and N_So[2] == S_list[i].state then _S = S_list[i] break end end if _S then t[#t + 1] = {} t[#t].address = _S.start + Offset[1] t[#t].flags = _t if #Offset ~= 1 then for i = 2, #Offset do local S = gg.getValues(t) t = {} for _ in pairs(S) do if not ti.x64 then S[_].value = S[_].value & 0xFFFFFFFF end t[#t + 1] = {} t[#t].address = S[_].value + Offset[i] t[#t].flags = _t end end end _S = t[#t].address end return _S end local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit)) return _A end
function PS() end
function setvalue(address,flags,value) PS('修改地址数值(地址,数值类型,要修改的值)') local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value gg.setValues(tt) end
---静态基址写法配置
function split(szFullString, szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {}
while true do
local nFindLastIndex = string.find(szFullString, szSeparator, nFindStartIndex) if not nFindLastIndex then nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, string.len(szFullString)) break end nSplitArray[nSplitIndex] = string.sub(szFullString, nFindStartIndex, nFindLastIndex - 1) nFindStartIndex = nFindLastIndex + string.len(szSeparator) nSplitIndex = nSplitIndex + 1 end return nSplitArray end function xgxc(szpy, qmxg) for x = 1, #(qmxg) do xgpy = szpy + qmxg[x]["offset"] xglx = qmxg[x]["type"] xgsz = qmxg[x]["value"] xgdj = qmxg[x]["freeze"] if xgdj == nil or xgdj == "" then gg.setValues({[1] = {address = xgpy, flags = xglx, value = xgsz}}) else gg.addListItems({[1] = {address = xgpy, flags = xglx, freeze = xgdj, value = xgsz}}) end xgsl = xgsl + 1 xgjg = true end end function xqmnb(qmnb) gg.clearResults() gg.setRanges(qmnb[1]["memory"]) gg.searchNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "失败") else gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) gg.refineNumber(qmnb[3]["value"], qmnb[3]["type"]) if gg.getResultCount() == 0 then gg.toast(qmnb[2]["name"] .. "失败") else sl = gg.getResults(999999) sz = gg.getResultCount() xgsl = 0 if sz > 999999 then sz = 999999 end for i = 1, sz do pdsz = true for v = 4, #(qmnb) do if pdsz == true then pysz = {} pysz[1] = {} pysz[1].address = sl[i].address + qmnb[v]["offset"] pysz[1].flags = qmnb[v]["type"] szpy = gg.getValues(pysz) pdpd = qmnb[v]["lv"] .. ";" .. szpy[1].value szpd = split(pdpd, ";") tzszpd = szpd[1] pyszpd = szpd[2] if tzszpd == pyszpd then pdjg = true pdsz = true else pdjg = false pdsz = false end end end if pdjg == true then szpy = sl[i].address xgxc(szpy, qmxg) end end if xgjg == true then gg.toast(qmnb[2]["name"] .. "地址成功,共修改" .. xgsl .. "条数据") else gg.toast(qmnb[2]["name"] .. "失败") end end end end
--仿XS写法配置
function xqmnb(Search,Modification)
gg.clearResults() gg.setRanges(Search[1].memory) gg.searchNumber(Search[3].value,Search[3].type,false,536870912,0,-1) if gg.getResultCount()==0 then gg.toast(Search[2].name..'开启失败') return end local Result=gg.getResults(gg.getResultCount()) local sum for index=4,#Search do sum=0 for i=1,#Result do if gg.getValues({{address=Result[i].address+Search[index].offset,flags=Search[index].type}})[1].value~=Search[index].lv then Result[i].Usable=true sum=sum+1 end end if sum==#Result then gg.toast(Search[2].name..'开启失败') return end end local Data,Freeze,Freezes={},{},0 sum=0 for index,value in ipairs(Modification)do for index=1,#Result do if not Result[index].Usable then local Value={address=Result[index].address+value.offset,flags=value.type,value=value.value,freeze=true} if value.freeze then Freeze[#Freeze+1]=Value Freezes=Freezes+1 else Data[#Data+1]=Value end sum=sum+1 end end end gg.setValues(Data) gg.addListItems(Freeze) if Freezes==0 then gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据') else gg.toast(Search[2].name..'开启成功,共修改'..sum..'条数据,冻结'..Freezes..'条数据') end gg.clearResults() end
-- 读取内存地址的函数
function readPointer(name, offset, i)
local re = gg.getRangesList(name) local x64 = gg.getTargetInfo().x64 local va = {[true]=32, [false]=4} if re[i or 1] then local addr = re[i or 1].start + offset[1] for i = 2, #offset do addr = gg.getValues({{address=addr, flags=va[x64]}}) if not x64 then addr[1].value = addr[1].value & 0xFFFFFFFF end addr = addr[1].value + offset[i] end return addr end end
-- 修改内存地址的函数
function gg.edits(addr, Table, name)
local Table1 = {{}, {}} for k, v in ipairs(Table) do local value = {address = addr+v[3], value = v[1], flags = v[2], freeze = v[4]} if v[4] then Table1[2][#Table1[2]+1] = value else Table1[1][#Table1[1]+1] = value end end gg.addListItems(Table1[2]) gg.setValues(Table1[1]) gg.toast((name or "") .. "开启成功, 共修改"..#Table.."个值") end
local json =json--调用
local g = {}
g.file = gg.getFile()
g.sel = nil
gqlb={"请先搜索歌曲",}
idb={"1010"}
SN,gc=1,nil
g.config = gg.getFile():gsub("%lua$", "").."cfg"
function bei()
g.data = loadfile("-- WSG PRO 1.0.9(109)\n"..g.config)
if g.data ~= nil then
g.sel = g.data()
g.data = nil
end
if g.sel == nil then
g.sel = {"请输入歌曲名","10"}
end
end
bei()
--搜索歌曲
function start(name,sl)
fw=gg.makeRequest("http://music.163.com/api/search/get?s="..name.."&type=1&offset=0&total=true&limit="..sl)
return fw
end
--歌词
--播放音乐
function play(id,name)
gg.toast("正在播放音乐:"..name,true)
gg.playMusic("http://music.163.com/song/media/outer/url?id="..id..".mp3")
end
--停止播放
function stop()
gg.toast("正在停止音乐")
for i=1,100 do
gg.playMusic("stop")
gg.playMusic("stop")
gg.playMusic("stop")
end
end
----
function Play(gqlb,idb)
SN = gg.choice(gqlb,nil,ts)
if SN == nil then XGCK =-1 else
sn=gg.choice({"播放歌曲","播放并下载"},nil,"歌曲:"..gqlb[SN])
if sn == nil then end
if sn == 1 then
play(idb[SN],gqlb[SN])
end
if sn == 2 then
local XEY=gg.makeRequest("http://music.163.com/song/media/outer/url?id="..idb[SN]..".mp3").content
local XEY1=gg.getFile():gsub("[^/]+$","")..gqlb[SN]..".mp3"
io.open(XEY1,"w"):write(XEY)
gg.alert("提示:\n\n音乐已成功下载位置:\n\n"..XEY1)
end
XGCK=-1
end
end
function zjson(jsonr)
local str = jsonr
-- 匹配Json Key的正则表达式
local pattern = "\"[%w]+\":"
string.gsub(str, pattern, function(v)
if string.find(str, v) then
str = string.gsub(str, v, string.gsub(v, "\"", ""))
end
end)
str = string.gsub(str, ":", "=")
str = string.gsub(str, "%[", "{")
str = string.gsub(str, "%]", "}")
local data = "-- WSG PRO 1.0.9(109)\nreturn " .. str
local res = load(data)()
return res
end
function json(con)
res=zjson(con)
zd=res.result.songCount
pd=go3-zd
if pd <= 0 then else go3=zd end
ts="《"..go1.."》找到"..zd.."首歌曲,当前显示"..go3.."首"
gqlb={}
idb={}
for i=1,go3 do
gqlb[i]=res.result.songs[i].name
idb[i]=res.result.songs[i].id
end
--print(idb)
end
bglist={
getShape(30,{0xe84B7CFF,0x88974BFF},0,0x01B8B8B8),
getShape(30,{0xe80079FF,0x88FF76B8},0,0x01B8B8B8),
getShape(30,{0xe800FFC1,0x8800AFFF},0,0x01B8B8B8),
getShape(30,{0xe8905AFF,0x88FF4358},0,0x01B8B8B8),
}
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--删除此文字一辈子没母
UI宽度="400dp"--620dp全屏 410dp半屏
function huiz()
---绘制需要全部写在这里否则会消失
draw.text('〖AL全防1.0〗', 100,200)
draw.setColor('#FFFF0080')
draw.setColor('#00FFFF')
end
sname="AL全防1.0"
stitle="AL全防1.0"
--悬浮窗图标链接
xfcpic = "http://xlyyds6.sn268faka.xyz/view.php/b80912d0b3f845025935efd603156b05.jpg"
stab = {
---侧边标题和图标
{
"无效果只能选择进程","https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/jw_qd"
},
{
"游戏LOGO开启有效果","https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/jw_gn"
},
{
"美化","https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/jw_mh"
},
{
"音乐","https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/jw_mus"
},
{
"启动","http://tsuki.riyx.cn/f/106Ug/170049230763.png"
},
{
"设置","https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/jw_conf"
},
}
swits["第1页"]["第1板块"] = {
changan.text2("只有选择进程有效果其他的一律没有适配"),
changan.switch(
"选择进程",
function()
gg.setProcessX()
string.toMusic('请选择进程')
end),
changan.switch(
"公告[必看]",
function()
string.toMusic("祝你稳定奔放 ")
gg.alert("AL全防1.0")
end),
changan.switch(
"logo①[半杀67]",
function()
toMusic("请耐心等待提示成功")
local t = {"libanogs.so:bss", "Cb"}
local tt = {0x798}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = -721215457, freeze = true}})
gg.alert("开启成功")
gg.toast("大厅①开启成功")
toMusic("大厅①开启成功")
end),
changan.switch(
"大厅②[ca]",
function()
local t = {"libgcloudcore.so", "Cd"}
local tt = {0x528, 0x90, 0x28, 0x6C}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 131328, freeze = true}})
gg.toast("大厅②开启成功")
toMusic("大厅②开启成功")
end),
changan.text("\n"),
changan.text2("离线区"),
changan.switch(
"全局离线",
function()
local t = {}
t[1] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x423004; -- 数值地址:0x74195D5004
gg.addListItems({
[1] = {
address = t[1],
flags = 4,
value = -698416160,
freeze = true,
},
})
gg.toast("离线开启成功")
string.toMusic('离线开启成功')
end,
function()
local t = {}
t[1] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x423004; -- 数值地址:0x74195D5004
gg.addListItems({
[1] = {
address = t[1],
flags = 4,
value = 2022240376,
freeze = true,
},
})
gg.toast("离线关闭成功")
string.toMusic('离线关闭成功')
end),
changan.switch(
"概率预防追封",
function()
local t = {}
t[1] = gg.getRangesList("libdiscord_connect_sdk_android.so")[1]["start"] + 0x4C75E8; -- 数值地址:0x75A452E5E8
t[2] = gg.getRangesList("libdiscord_connect_sdk_android.so")[1]["start"] + 0x4C75F4; -- 数值地址:0x75A452E5F4
t[3] = gg.getRangesList("libdiscord_connect_sdk_android.so")[1]["start"] + 0x4C7614; -- 数值地址:0x75A452E614
t[4] = gg.getRangesList("libdiscord_connect_sdk_android.so")[1]["start"] + 0x4C7624; -- 数值地址:0x75A452E624
t[5] = gg.getRangesList("libdiscord_connect_sdk_android.so")[1]["start"] + 0x4C7628; -- 数值地址:0x75A452E628
t[6] = gg.getRangesList("libdiscord_connect_sdk_android.so")[1]["start"] + 0x4C7658; -- 数值地址:0x75A452E658
t[7] = gg.getRangesList("libdiscord_connect_sdk_android.so")[1]["start"] + 0x4C765C; -- 数值地址:0x75A452E65C
t[8] = gg.getRangesList("libdiscord_connect_sdk_android.so")[1]["start"] + 0x4C7688; -- 数值地址:0x75A452E688
t[9] = gg.getRangesList("libdiscord_connect_sdk_android.so")[1]["start"] + 0x4C7690; -- 数值地址:0x75A452E690
t[10] = gg.getRangesList("libdiscord_connect_sdk_android.so")[1]["start"] + 0x4C769C; -- 数值地址:0x75A452E69C
t[11] = gg.getRangesList("libdiscord_connect_sdk_android.so")[1]["start"] + 0x4C76A0; -- 数值地址:0x75A452E6A0
t[12] = gg.getRangesList("libdiscord_connect_sdk_android.so")[1]["start"] + 0x4C7FD0; -- 数值地址:0x75A452EFD0
t[13] = gg.getRangesList("libdiscord_connect_sdk_android.so")[1]["start"] + 0x4C7FD4; -- 数值地址:0x75A452EFD4
t[14] = gg.getRangesList("libdiscord_connect_sdk_android.so")[1]["start"] + 0x4C7FD8; -- 数值地址:0x75A452EFD8
t[15] = gg.getRangesList("libdiscord_connect_sdk_android.so")[1]["start"] + 0x4C7FE4; -- 数值地址:0x75A452EFE4
t[16] = gg.getRangesList("libdiscord_connect_sdk_android.so")[1]["start"] + 0x4C7FE8; -- 数值地址:0x75A452EFE8
t[17] = gg.getRangesList("libdiscord_connect_sdk_android.so")[1]["start"] + 0x4C8014; -- 数值地址:0x75A452F014
t[18] = gg.getRangesList("libdiscord_connect_sdk_android.so")[1]["start"] + 0x4C8158; -- 数值地址:0x75A452F158
gg.addListItems({
[1] = {
address = t[1],
flags = 4,
value = -65536,
freeze = true,
},
[2] = {
address = t[2],
flags = 4,
value = -65536,
freeze = true,
},
[3] = {
address = t[3],
flags = 4,
value = -65536,
freeze = true,
},
[4] = {
address = t[4],
flags = 4,
value = -65536,
freeze = true,
},
[5] = {
address = t[5],
flags = 4,
value = -65536,
freeze = true,
},
[6] = {
address = t[6],
flags = 4,
value = -65536,
freeze = true,
},
[7] = {
address = t[7],
flags = 4,
value = -65536,
freeze = true,
},
[8] = {
address = t[8],
flags = 4,
value = -65536,
freeze = true,
},
[9] = {
address = t[9],
flags = 4,
value = -65536,
freeze = true,
},
[10] = {
address = t[10],
flags = 4,
value = -65536,
freeze = true,
},
[11] = {
address = t[11],
flags = 4,
value = -65536,
freeze = true,
},
[12] = {
address = t[12],
flags = 4,
value = -65536,
freeze = true,
},
[13] = {
address = t[13],
flags = 4,
value = -65536,
freeze = true,
},
[14] = {
address = t[14],
flags = 4,
value = -65536,
freeze = true,
},
[15] = {
address = t[15],
flags = 4,
value = -65536,
freeze = true,
},
[16] = {
address = t[16],
flags = 4,
value = -65536,
freeze = true,
},
[17] = {
address = t[17],
flags = 4,
value = -65536,
freeze = true,
},
[18] = {
address = t[18],
flags = 4,
value = -65536,
freeze = true,
},
})
gg.toast("请清理框架或游戏缓存 再用SD清理残留")
string.toMusic("请清理框架或游戏缓存 再用SD清理残留")
gg.toast("开启成功")
string.toMusic('开启成功')
end),
}
swits["第1页"]["第2板块"] = {
changan.text2("防闪区"),
changan.switch(
"防闪①",
function()
local t = {"libanogs.so:bss", "Cb"}
local tt = {0x180}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 4096, freeze = true}})
local t = {"libanogs.so:bss", "Cb"}
local tt = {0x590}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 4096, freeze = true}})
gg.toast("防闪开启成功")
toMusic("防闪开启成功")
end),
}-- 此板块结束
swits["第1页"]["第3板块"] = {
changan.text("其他区"),
changan.switch(
"过封设备",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x3522C0, 0x0}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 4, value = 800097910}})
gg.toast("开启成功")
string.toMusic('开启成功')
end),
changan.switch("直播专用字体",
function()
draw.text('〖高级PS制作 无任何违规〗', 800,100)
draw.setColor("#FFEA1530")
end,
function()
end),
changan.switch("显示官方频道",
function ()
draw.text('〖〗', 100,300)
draw.setColor("#FFEA1530")
end,
function()
end),
changan.switch("显示官方🐧群",
function ()
draw.text('〖没有企鹅〗', 100,400)
draw.setColor("#FFEA1530")
end,
function()
end),
}
swits["第1页"]["第4板块"] = {
changan.text("无限游客"),
changan.switch("[台湾]",
function()
print(file.cpp(("eNq1U91q2zAUvvdTCBPwlX/KNrILJyVtQ8lgbcgcdlMIqnQca9WPkeQsXdkjbINdDPZHGAT2CnuevcDyCFPijG4lNPhihuPv2PrOd6QPHVZafMnBoHCAzsfZcJyhkCLCVUWjmSgjJeEVLsuIKIHCF2jUf9I/zjz2V9XgbFNk9hZ52n3pHMUUW1y/Wtnz2BRYA52UGnLjiSvK9L0MUghFUbvdvpe1v1VMYcYITBiN5oJ7QAqF/PTQ5WgG2jAlO8FBlAQIJFGUyWknqGwePg6QsVhSzN0hO8E1mAAddr1U4LLrIfekxmrHRhIL6Fz42nGVuPC7aVwv7GQx6UQ530erKkYdpzXqnZ2cP91CuAf/hVv9NF7v2UfdBi7ttnWdXGIDd2wXQBmOk7gnqVaM3vJz5q5OzNWUyZBRkJblDHRk57aRwLj/8NT5Ej8rMFUvM43JFej+3Gq869dAWtAbRQueVRUp/nuXJofJToe9Jtva8Js0GGo11VgcMYn19TEmRSMXdlTXgxiOUJIkd29EXYSlmlhRrjFy8SBy6x7hgHU9biEgv3VzNBhWuuTw2vcMByhREj3ajuOJmzF/m//8uvz1491q8f3bavH+s4tPLj66+LJaLN+uFh+WDt/80Tj4DSFXq18"):base64("de"):unzip(), true))
gg.alert("开启成功请划掉后台重新启动游戏")
end,
function()
end),
changan.switch("[越南]",
function()
print(file.cpp(("eNq1U8tq20AU3c9XDMKglR6hLe5CdnASE1xoYly5q4CZzFxZ08xDjEau09BPaANZFPrCFAz9hX5Pf6D+hI4fxW0wMVpUcHWuNOeeO3OYi/H24YUllwJKHPTw+TDtD1McMEyFrlg4kUWoFbwhRRFSLXHwCg+6z7rHKfq7qne2Kir3FiHjvkyGI0YsWb8aL9OozIkBNioMZCWSV4ybBxk0l5rhZrP5IGt/q4jBhFMYcRZOpUBAc4295NDleAKm5Fq1/IMw9jEoqhlX45Zf2Sx46uPSEsWIcIds+ddQ+viwjRJJijZaGpqU1jg2VkRC68IzjqvlhddOovXCThZXTlSIfbSq4sxxGoPO2cn58w0Ee/Bf2Oon0XLPHm7XcGm3rcvkkpRwz3YJjJMojjqKGc3Zlp9xd3UiocdcBZyBsjzjYEI7tbUEht3Hp86X6EVOmH6dGkKvwHSn1pBdv3rKglkpWkBWVzT/713qHCY97XfqbGvFr9Ogb/TYEHnEFTHXx4TmtVzYUb0exGCA4zi+fyPWRUTpkZXFEkMXj0K3jqgAYtbjFgD2GjdHvX5lCgFvPVQKgALH4ZPNOJ64GfM2+c+v818/bhez798Ws7vPLj65+Ojiy2I2f7+YfZg7fPdH4wDBlNvfs3iulQ"):base64("de"):unzip(), true))
gg.alert("开启成功请划掉后台重新启动游戏")
end,
function()
end),
changan.switch("[日韩]",
function()
print(file.cpp(("eNq1U91q2zAUvvdTCBPwlX/KNrILJyVtQ8nG2pA5d4WgSsexVv0YSc7SlT3CNtjFYH+EQWCvsOfZCyyPMCXO6FZCgy9mOP6Ore98R/rQYaXFlxwMCgfofJwNxxkKKSJcVTSaiTJSEl7hsoyIEih8gUb9J/3jzGN/VQ3ONkVmb5Gn3ZfOUUyxxfWr9XQUmwJroJNSQ248cUWZvpdBCqEoarfb97L2t4opzBiBCaPRXHAPSKGQnx66HM1AG6ZkJziIkgCBJIoyOe0Elc3DxwEyFkuKuTtkJ7gGE6DDrpcKXHY95J7UWO3YSGIBnQtfO64SF343jeuFnSwmnSjn+2hVxajjtEa9s5PzZ1sI9+C/cKufxus9+6jbwKXdtq6TS2zgju0CKMNxEvck1YrRW37O3NWJuZoyGTIK0rKcgY7s3DYSGPcfnjpf4ucFpuplpjG5At2fW413/RpIC3qjaMGzqiLFf+/S5DDZ6bDXZFsbfpMGQ62mGosjJrG+PsakaOTCjup6EMMRSpLk7o2oi7BUEyvKNUYuHkRu3SMcsK7HLQTkt26OBsNKlxxe+57hACVKokfbcTxxM+Zv859fl79+vFstvn9bLd5/dvHJxUcXX1aL5dvV4sPS4Zs/GgcezJn9Da3PrF8"):base64("de"):unzip(), true))
gg.alert("开启成功请划掉后台重新启动游戏")
end,
function()
end),
changan.switch("[全球]",
function()
print(file.cpp(("eNq1U91q2zAUvvdTCBPwlX/KNrILJyVtQ8nG2pA5d4WgSsexVv0YSc7SlT3CNtjFYH+EQWCvsOfZCyyPMCXO6FZCgy9mOP6Ore98R/rQYaXFlxwMCgfofJwNxxkKKSJcVTSaiTJSEl7hsoyIEih8gUb9J/3jzGN/VQ3ONkVmb5Gn3ZfOUUyxxfWr9XQUmwJroJNSQ248cUWZvpdBCqEoarfb97L2t4opzBiBCaPRXHAPSKGQnx66HM1AG6ZkJziIkgCBJIoyOe0Elc3DxwEyFkuKuTtkJ7gGE6DDrpcKXHY95J7UWO3YSGIBnQtfO64SF343jeuFnSwmnSjn+2hVxajjtEa9s5PzZ1sI9+C/cKufxus9+6jbwKXdtq6TS2zgju0CKMNxEvck1YrRW37O3NWJuZoyGTIK0rKcgY7s3DYSGPcfnjpf4ucFpuplpjG5At2fW413/RpIC3qjaMGzqiLFf+/S5DDZ6bDXZFsbfpMGQ62mGosjJrG+PsakaOTCjup6EMMRSpLk7o2oi7BUEyvKNUYuHkRu3SMcsK7HLQTkt26OBsNKlxxe+57hACVKokfbcTxxM+Zv859fl79+vFstvn9bLd5/dvHJxUcXX1aL5dvV4sPS4Zs/GgcezJn9Da3PrF8"):base64("de"):unzip(), true))
gg.alert("开启成功请划掉后台重新启动游戏")
end,
function()
end),
}
swits["第2页"]["第1板块"] = {
changan.text2("只适配了LOGO界面开保持稳定性"),
changan.switch("聚点",
function()
so=gg.getRangesList('libUE4.so')[1].start
py=0x53f26d0
setvalue(so+py,16,8.47963525e-21)--功能:🐔点
gg.toast("开启成功")
string.toMusic('开启成功')
end),
changan.switch("除雾",
function()
so=gg.getRangesList('libUE4.so')[1].start---除雾
py=0x7A4ACC0
setvalue(so+py,16, 1.41233867e-13)
gg.toast("开启成功")
string.toMusic('开启成功')
end),
changan.switch("自改广角",
function()
so=gg.getRangesList('libUE4.so')[1].start
py=0x2CBEC98--功能:广角
setvalue(so+py,16, 1.5)
gg.toast("开启成功")
string.toMusic('开启成功')
end),
changan.switch("动态广角",
function()
ZC=gg.prompt({'推荐120-130'},{[1]='120'},{[1]='number'})
if ZC == nil or ZC[1] == '' or ZC[1] == '0' then gg.toast("开启失败:原因:你点击了取消")
else
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x391E0, 0x0, 0x390, 0x20, 0x32C}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = ZC[1]}})
end
gg.toast("开启成功")
string.toMusic('开启成功')
end),
changan.switch("锁144帧",
function()
local t = {"libUE4.so:bss", "Cb"}--帧率
local tt = {0x6920E0, 0x34}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 16, value = 144, freeze = true}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x6920F8, 0x74}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 16, value = 144, freeze = true}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x692110, 0xB4}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 16, value = 144, freeze = true}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x692128, 0xF4}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 16, value = 144, freeze = true}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x692148, 0x100}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 16, value = 144, freeze = true}})
gg.toast("开启成功")
string.toMusic('开启成功')
end),
changan.switch(
"LOGO开",
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={}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
local t = {"libUE4.so", "Cd"}
local tt = {0x7A3510}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address=ttt, flags=4, value=67109633, freeze=true}})
local t = {"libUE4.so", "Cd"}
local tt = {0x1513DAC}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address=ttt, flags=4, value=67109633, freeze=true}})
local t = {"libUE4.so", "Cd"}
local tt = {0x9750}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address=ttt, flags=4, value=67109633, freeze=true}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x19F770}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address=ttt, flags=4, value=67109633, freeze=true}})
local t = {"libanogs.so:bss", "Cb"}
local tt = {0xA55C}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address=ttt, flags=4, value=67109633, freeze=true}})
gg.alert("开启成功")
string.toMusic('开启成功')
end),
changan.switch(
"骁龙内透",
function()
local function getRanges()
local ranges = {}
local t = gg.getRangesList('^/dev/kgsl-3d0*$')--/dev...是so模块的后缀
for i, v in pairs(t) do
if v.type:sub(4, 4) == 's' then
table.insert(ranges, v)
end
end
return ranges
end
local function readD(a)
return gg.getValues({{
address=a,
flags=gg.TYPE_DWORD
}})[1].value
end
local function readF(a)
return gg.getValues({{
address=a,
flags=gg.TYPE_FLOAT
}})[1].value
end
function setvalue(address,flags,value)
local t={}
t[1]={}
t[1].address=address
t[1].flags=flags
t[1].value=value
gg.setValues(t)
gg.addListItems(t)
end
function _V(add,value1,flag,value2)
local num=0;ednum=0
if flag==gg.TYPE_DWORD then
readV=readD
elseif flag==gg.TYPE_FLOAT then
readV=readF
else
os.exit("不支持的类型")
end
local S_list = getRanges()
for i in pairs(S_list) do
num=num+1
addr=S_list[i].start+add
if readV(addr)==value1 then
setvalue(addr,flag,value2)
ednum=ednum+1
end
end
return "遍历了"..num.."个地址\n".."修改了"..ednum.."个地址"
end
gg.toast(_V(0x550,-2147483638,gg.TYPE_DWORD,-2147426294))
gg.toast(_V(0x8B0,-2146496388,gg.TYPE_DWORD,-2146443140))
gg.toast(_V(0x1D4,1661419524,gg.TYPE_DWORD,1088421888))
gg.toast(_V(0x1DC,1074790408,gg.TYPE_DWORD,1088421888))
gg.toast(_V(0x048,8200,gg.TYPE_DWORD,6))
gg.toast(_V(0x168,-2147020736,gg.TYPE_DWORD,-2147008448))
gg.toast(_V(0x5A8,-2147282846,gg.TYPE_DWORD,-2147270558))
gg.clearList(t)
gg.toast("开启成功")
string.toMusic('开启成功 仅支持部分机型 拉闸不要开')
end),
}
swits["第2页"]["第2板块"] = {
changan.text("中危功能"),
changan.switch("防抖",
function()
gg.toast("开启成功")
string.toMusic('开启成功')
end,
function()
end),
changan.switch(
"范围",
function()
--范围
local cnm = readPointer('libUE4.so:bss', {0x391E0,0x0,0x390,0x48,0x508}, 1)
cnm1 = readPointer('libUE4.so', {0x32afcec}, 1)
ttlf={}
ttlf[1]={}
ttlf[1].address=cnm
ttlf[1].flags=4
while(true)do
cnm=gg.getValues(ttlf)[1].value
if cnm ==1 then
gg.edits(cnm1, {{70, 16, 0, false}})
end
if cnm == 0 then
gg.edits(cnm1, {{0.10000000149, 16, 0, false}})
string.toMusic('开启成功')
end
end
gg.toast("开启成功")
string.toMusic('开启成功')
end),
changan.switch("射速",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x391E0,0x0,0xDD8,0x60,0x100C}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 50000, freeze = true}})
gg.toast("开启成功")
string.toMusic('开启成功')
end,
function()
end),
changan.switch(
"红体",
function()
so=gg.getRangesList('libUE4.so')[1].start--红体
py=0x8D1A5A8
setvalue(so+py,16, 8.47963525e-21)
gg.toast("开启成功")
toMusic("开启成功")
end),
changan.switch(
"无后",
function()
so=gg.getRangesList('libUE4.so')[1].start--无后
py=0x542B894
setvalue(so+py,16,8.8411673e-21)
gg.toast("开启成功")
toMusic("开启成功")
end),
changan.switch(
"六道仙人",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x391E0,0x0,0xDD8,0x60,0x100C}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 50000, freeze = true}})
gg.toast("开启成功")
toMusic("开启成功")
end),
changan.switch(
"攀爬穿墙",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x391E0, 0x0, 0x2F0, 0x200, 0x2CC}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 9999999}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x391E0, 0x0, 0x390, 0x58, 0x2CC}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 9999999}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x663880, 0x0, 0x2F0, 0x200, 0x2CC}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 9999999}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x663880, 0x0, 0x390, 0x58, 0x2CC}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 9999999}})
gg.toast("开启成功")
toMusic("开启成功")
end,
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x391E0, 0x0, 0x2F0, 0x200, 0x2CC}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 10}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x391E0, 0x0, 0x390, 0x58, 0x2CC}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 10}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x663880, 0x0, 0x2F0, 0x200, 0x2CC}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 10}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x663880, 0x0, 0x390, 0x58, 0x2CC}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 10}})
gg.toast("关闭成功")
toMusic("关闭成功")
end),
changan.switch("跳伞加速",
function()
gg.toast("10秒之后关闭")
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x31AA0,0x30,0x84}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 16, value = 3, freeze = true}})
gg.sleep(10000)
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x31AA0,0x30,0x84}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 16, value = 1, freeze = true}})
gg.toast("开启成功")
string.toMusic('开启成功')
end),
changan.switch("人物大小",
function()
OP=gg.prompt({'1是恢复越小人就越小'},{[1]='0.5'},{[1]='number'})
if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
else
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x391E0, 0x0, 0x2F0, 0xF0, 0x1A0}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = OP[1]}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x391E0, 0x0, 0x2F0, 0xF0, 0x19C}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = OP[1]}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x391E0, 0x0, 0x2F0, 0xF0, 0x1A4}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = OP[1]}})
end
gg.toast("开启成功")
string.toMusic('开启成功')
end),
changan.switch("人物旋转",
function()
gg.toast("开启成功")
string.toMusic('开启成功')
end),
changan.switch("跳远",
function()
gg.toast("开启成功")
string.toMusic('开启成功')
end,
function()
gg.toast("关闭成功")
string.toMusic('关闭成功')
end),
changan.switch("探头路飞",
function()
gg.toast("开启成功")
string.toMusic('开启成功')
end),
}-- 此板块结束
swits["第2页"]["第3板块"] = {
changan.text("高危功能"),
changan.switch("人物加速",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x391E0, 0x0, 0x460, 0xB00}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 16, value = 1000, freeze = true}})--670
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x391E0, 0x0, 0x1648, 0x1020}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 2.5}})--V
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x391E0, 0x0, 0x460, 0x208}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 512}})--8192
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x391E0,0x0,0x460,0x208-0x198}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 0.05}})
so=gg.getRangesList('libUE4.so')[1].start
py=0x88FE2E8
setvalue(so+py,4,505425152)
if gg.getRangesList("libUE4.so")[1] then
local t = {}
t[1] = gg.getRangesList("libUE4.so")[1]["start"] + 0x32B0AFC; -- 数值地址:0x710AD36AFC
gg.addListItems({
[1] = {
address = t[1],
flags = 16,
value = 24.5,
freeze = true,
},
})
gg.toast("开启成功")
end
gg.toast("开启成功")
string.toMusic('开启成功')
end,
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x391E0, 0x0, 0x460, 0xB00}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 16, value = 670, freeze = true}})--670
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x391E0, 0x0, 0x1648, 0x1020}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 1}})--V加
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x391E0, 0x0, 0x460, 0x208}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 8192}})--8192
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x391E0,0x0,0x460,0x208-0x198}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 0}})
so=gg.getRangesList('libUE4.so')[1].start
py=0x88FE2E8
setvalue(so+py,4,505481216)
if gg.getRangesList("libUE4.so")[1] then
local t = {}
t[1] = gg.getRangesList("libUE4.so")[1]["start"] + 0x32B0AFC; -- 数值地址:0x710AD36AFC
gg.addListItems({
[1] = {
address = t[1],
flags = 16,
value = 25.72529029846,
freeze = true,
},
})
end
gg.toast("关闭成功")
end),
}
swits["第2页"]["第4板块"] = {
}
swits["第3页"]["第1板块"] = {
changan.text2("美化区"),
changan.switch(
"清理冻结",
function()
gg.clearList()
gg.toast("开启成功")
string.toMusic('开启成功')
end),
changan.switch(
"局内外观",
function()
local r = gg.prompt({'自改美化'}, {'1406387'}, {'text'})
if r then
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x391E0, 0x0, 0x340, 0x30, 0x388, 0x118}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 4, value =r[1]}})
end
gg.toast("开启成功")
string.toMusic('开启成功')
end),
}-- 此板块结束
swits["第3页"]["第2板块"] = {
}
swits["第3页"]["第3板块"] = {
}
swits["第3页"]["第4板块"] = {
}
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--删除此文字一辈子没母
swits["第4页"]["第1板块"] = {
changan.text2("音乐区"),
changan.switch("搜索歌曲",
function()
search = gg.prompt({
"输入要搜索的歌曲\n可加上歌手名字",
"设置显示数量(数字)",
},g.sel,{
"text",
})
if not search then return end
gg.saveVariable(search,g.config)
bei()
go1=search[1]
go3=search[2]
jg=start(go1,go3)
if jg.code == 200 then
fh=jg.content
fh=json(fh)
--print(fh)
Play(gqlb,idb)
else
function inspect()
gg.alert("访问网络异常,错误代码:\n\n"..jg.code)
end
if not pcall(inspect) then print("网络异常,请先连接上网络") os.exit() end
end
XGCK=-1
end),
changan.switch("播放热歌",
function()
Obtain=gg.makeRequest("https://api.uomg.com/api/rand.music?sort=热歌榜&format=json").content muchen=Obtain:match('url":"(.-)","picurl') gg.playMusic(muchen)
end,
function()
gg.toast("正在停止音乐")
for i=1,3 do
gg.playMusic("stop")
gg.sleep(10)
end
end),
changan.switch(
"停止歌曲",
function()
gg.playMusic("stop")
gg.playMusic("stop")
gg.playMusic("stop")
string.toMusic('关闭成功')
end),
}
swits["第4页"]["第2板块"] = {
}
swits["第4页"]["第3板块"] = {
}
swits["第4页"]["第4板块"] = {
}
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--开源频道@YSNB58
--删除此文字一辈子没母
changan.menu()