-- loadYunLua("httpBbG9hZFl1bkx1YSgiaHR0cHM6Ly94dWFubW8ueHl6L2YvOWRENkhkL1VwZGF0ZS5pbmkiKQ==")
local XY = gg.htmlAlert("小轩全防公告",[[
欢 迎 使 用 小 轩 定 制 全 防
祝 您 天 天 开 心
有 问 题 随 时 反 馈 TG:@XiaoXuanOwO
已适配:
模拟器√ 手机√ 框架√
虚拟机√ bit32× bit64√
-----------------------------
请关注电报(Telegram)频道进行更新
更新日期:2026.7.19
TG频道:https://t.me/@XiaoXuanOwO
]],"启动")
draw.setStyle('描边并填充')
draw.setSize(50)
draw.setColor("#00ffff")
draw.text('小轩全防',300,300)
string.toMusic("欢迎使用小轩全防")--奉秋出品
if io.open("/sdcard/小轩/图片/685")==nil then
gg.toast("第一次打开,正在下载资源配置")
gg.alert("第一次打开,正在下载资源配置")
file.download("https://pan.bixuge.cn/down.php/22fdec87c945b67f27883e4bd683622b.zip","/sdcard/小轩/图片/小轩.zip")
file.unzip("/sdcard/小轩/图片/小轩.zip","/sdcard/小轩/图片/")
end
function setvalue(a,b,c,d)if type(a)=="number"and type(b)=="number"then gg.setValues({{address=a,flags=b,value=c}})else local t={}for i=1,#b do t[i]={address=a+b[i],flags=c,value=type(d)=="table"and d[i]or d}end gg.setValues(t)end end setv=setvalue
function S_Pointer(s,o,b)for i,v in ipairs(gg.getRangesList(s[1]))do if v.state==s[2]then a=v.start+o[1]for i=2,#o do a=gg.getValues({{address=a,flags=b and 32 or 4}})[1].value+o[i]end return string.format('0x%X',a)end end end
function so(n)return gg.getRangesList(n)[1].start end
function freeze(a,b,c,d)setvalue(a,b,c,d)local t={}for i=1,#b do t[i]={address=a+b[i],flags=c,value=type(d)=="table"and d[i]or d,freeze=true}end gg.addListItems(t)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
function Unfreeze()
local t = gg.getListItems()
for k, v in pairs(t) do
t[k]["freeze"] = false
end
return gg.addListItems(t)
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.addListItems(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.addListItems(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.addListItems(tab)
elseif format == "冻结" then
tab[1]["flags"] = type
tab[1]["freeze"] = true
tab[1]["value"] = value--奉秋出品
tab[1]["name"] = Function or "功能"
return gg.addListItems(tab)
elseif format == "加载" then
tab[1]["flags"] = type
return gg.loadResults(tab)
end
end
function LSQ_Chain(so, offset, format, value, type, Function)--模块设置, 偏移量, 功能参数, 修改值, 类型, 功能
getRanges = getRanges or (function()
local ranges = {}
local t = gg.getRangesList('^/data/*.so*$')
for i, v in pairs(t) do
if v["type"]:sub(2, 2) == 'w' then--判断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
if #rest == 1 then
end
return Format(rest, format, value, type, Function)
end
gg.toast("功能:" .. Function .. "开启失败")
print("功能开启失败原因: 未找到基址头")
return os.exit()
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 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
end
function YY998() Obtain=gg.makeRequest("https://api.uomg.com/api/rand.music?sort=热歌榜&format=json").content muchen=Obtain:match('url":"(.-)","picurl') gg.playMusic(muchen) end
vibra = context:getSystemService(Context.VIBRATOR_SERVICE)
changan = {}
local changan = changan
local android = import('android.*')
function write(fileName, content)
file.write(fileName, content)
end
function panduan(rec) fille,err = io.open(rec) if fille == nil then return false else return true end end
function pdcf(lujing) rec = "/sdcard/小轩/图片/配置文件/"..lujing fille,err = io.open(rec) if fille == nil then return false else return true end end
sleep = gg.sleep
function read(fileName) f = assert(io.open(fileName, 'r')) content = f:read("*all") f:close() return content end
function wtcf(lujing,neirong)
write("/sdcard/小轩/图片/配置文件/"..lujing,neirong)
end
function rdcf(lujing)
return read("/sdcard/小轩/图片/配置文件/"..lujing)
end
function 获取图片(txt)
ntxt = string.sub(string.gsub(txt,"/","-"),-10,-1)
if string.find(tostring(txt),"http") ~= nil then
if panduan("/sdcard/小轩/图片/"..ntxt) == false then
download(txt,"/sdcard/小轩/图片/"..ntxt)
end
txt = "/sdcard/小轩/图片/"..ntxt
end
return luajava.getBitmapDrawable(txt)
end
function checkimg(tmp)
--if panduan("/sdcard/小轩/图片/"..tmp) ~= true then
--gg.toast("正在下载资源"..tmp.."\n请耐心等待")
--download("http://wss.wigwy.xyz/api/get/yjb/"..tmp,"/sdcard/小轩/图片/"..tmp)
end
ckimg = {--奉秋出品
-- '686',
-- '685',
}
for i = 1,#ckimg do
jindu = i--奉秋出品
checkimg(ckimg[i])
end
if file.length("/sdcard/小轩/图片/mainv") < 20 then
-- file.unzip("/sdcard/小轩/图片/686", "/sdcard/小轩/图片/")
end
function getRes(x)--fqnb883
return 获取图片("/sdcard/小轩/图片/"..x)
end
context = app.context
window = context:getSystemService("window") -- 获取窗口管理器
function getLayoutParams()--奉秋出品
LayoutParams = WindowManager.LayoutParams
layoutParams = luajava.new(LayoutParams)
if (Build.VERSION.SDK_INT >= 26) then -- 设置悬浮窗方式
layoutParams.type = LayoutParams.TYPE_APPLICATION_OVERLAY
else
layoutParams.type = LayoutParams.TYPE_PHONE
end
layoutParams.format = PixelFormat.RGBA_8888 -- 设置背景
layoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE -- 焦点设置Finish
layoutParams.gravity = Gravity.TOP|Gravity.LEFT -- 重力设置
layoutParams.width = LayoutParams.WRAP_CONTENT -- 布局宽度
layoutParams.height = LayoutParams.WRAP_CONTENT -- 布局高度
--fqnb883
return layoutParams--奉秋出品
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
function getHorizontalBG(gtvb1,gtvb3,gtvb4,gtvb5)
if not gtvb4 then gtvb4 = 0 gtvb5 = 0xff000000 end
local jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(gtvb3)
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(gtvb1)
jianbians:setStroke(gtvb4,gtvb5)--边框宽度和颜色
return jianbians
end
function getj7()
jianbian6 = luajava.new(GradientDrawable)
jianbian6:setCornerRadius(20)
jianbian6:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbian6:setColors({
0x002F3032,0x002F3032
})
jianbian6:setStroke(3,"0xff0091FE")--边框宽度和颜色
return jianbian6
end
slctb = getRes("sasuke_slctb")
slcta = getRes("sasuke_slcta")
slctc = luajava.loadlayout {
GradientDrawable,
color = "#11ffffff",
cornerRadius = 8
}
slctd = luajava.loadlayout {
GradientDrawable,
color = "#55ffffff",
cornerRadius = 8
}
slcte = luajava.loadlayout {
GradientDrawable,
color = "#11ffffff",
cornerRadius = 12
}
slctf = luajava.loadlayout {
GradientDrawable,
color = "#aa1E1C27",
cornerRadius = 12
}
function getJm()
selector = luajava.getStateListDrawable()
selector:addState({
android.R.attr.state_pressed
}, slcta) -- 点击时候的背景
selector:addState({
-android.R.attr.state_pressed
}, slctb) -- 没点击的背景
return selector
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 getSelector2()
selector = luajava.getStateListDrawable()
selector:addState({
android.R.attr.state_pressed
}, slctd) -- 点击时候的背景
selector:addState({
-android.R.attr.state_pressed
}, slctc) -- 没点击的背景
return selector
end
jianbian = luajava.new(GradientDrawable)
jianbian:setCornerRadius(30)
jianbian:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbian2 = luajava.new(GradientDrawable)
jianbian2:setCornerRadius(30)
jianbian2:setGradientType(GradientDrawable.LINEAR_GRADIENT)
function 获取图片(txt)
--gg.toast("正在加载资源...")
txt = file.checkUrl(txt)
return luajava.getBitmapDrawable(txt)
end
local isswitch
YoYoImpl = luajava.getYoYoImpl()
changan.menu = function(sview)
if isswitch then
return false
end
isswitch = true
jmbg={}
cebian = {
LinearLayout,
id = "侧边",
layout_height = "wrap_content",
layout_width = "wrap_content",
orientation = "vertical",
gravity = "left",
}
for i = 1,#stab do
jmbg[i]=getJm()
_ENV["jmm"..i]=luajava.loadlayout({LinearLayout,
{
LinearLayout,
id = "jm"..i,
layout_height = "40dp",
layout_width = "88dp",
layout_marginTop = "3dp",
layout_marginBottom = "3dp",
layout_marginRight = "10dp",
background = slctb,
gravity="center",
onClick = function() 切换(i) end,
{
TextView,
text = stab[i],
gravity = "center",
textSize = "12sp",
textColor = "#F9B947",
layout_height = "30dp",
layout_width = "88dp",
}}})
cebian[#cebian+1] = _ENV["jmm"..i]
end
cebian = luajava.loadlayout(
{
ScrollView,
layout_height = "200dp",
layout_width = "108dp",
cebian
})
for i = 1,#stab do
_ENV["layout"..i] = luajava.loadlayout({
LinearLayout,
layout_width = "362dp",
layout_height = "280dp",
visibility = "gone",
orientation = "vertical",
onClick=function() end,
onTouch=hanshu,
gravity="center",
padding={"0dp","0dp","0dp","0dp"},
{
ScrollView,
fillViewport = "true",
--padding = "10dp",
gravity = "center",
layout_width = "362dp",
layout_height = "200dp",
orientation = "horizontal",
--background=getVerticalBG({0x00FF6544,0x00FFE248},15,4,0xff7163FF),
{
LinearLayout,
id = "layoutm"..i,
layout_marginRight = "5dp",
layout_marginLeft = "5dp",
layout_width = "340dp",
orientation = "vertical",
gravity = "center_horizontal",
}
}})
end
ckou = {
LinearLayout,
layout_width = "wrap_content",
layout_height = "wrap_content",
orientation = "horizontal",
{
LinearLayout,
orientation = "vertical",
{
TextView,
id = "titlebar",
text=stitle,
layout_width = "88dp",
layout_height = "40dp",
gravity = "center",
onClick = 隐藏,
onTouch = hanshu,
},
cebian,
},
}
for i = 1,#stab do
ckou[#ckou+1] = _ENV["layout"..i]
end
bloc = luajava.getBlock()
local runnable = function()
vidd=luajava.loadlayout({
VideoView,
id = luajava.newId('video'),
videoPath = "/sdcard/小轩/图片/mainv",
layout_width = "500dp",
layout_height = "280dp",
})
end
luajava.post(runnable)
ckou = luajava.loadlayout({
FrameLayout,
visibility = "gone",
{LinearLayout,
layout_width = "500dp",
layout_height = "280dp",
background="#66161616",
layout_gravity="center_vertical",
onClick=function() end,
onTouch=hanshu,
},
{FrameLayout,
id="vids",
layout_height="match_parent",
layout_width="match_parent",
layout_gravity="center_vertical",
gravity="center",
vidd,
},
ckou})
xfcp=获取图片(xfcpic)
floatWindow = {
FrameLayout,
id = "motion",
elevation = "10dp",
onTouch = hanshu,
onClick = function() end,
layout_width = "wrap_content",
orientation = "vertical",
gravity = "center_vertical",
layout_height = "wrap_content",
ckou,
{
ImageView,
id = "sisa",
background = getRes(""),
layout_width = "25dp",
layout_height = "25dp",
layout_gravity="right",
layout_marginRight="50dp",
layout_marginTop="8dp",
onTouch = hanshu,
onClick = 须佐能乎,
},
{
ImageView,
id = "control",
background = xfcp,
layout_width = "48dp",
layout_height = "34dp",
onTouch = hanshu,
onClick = 隐藏,
}
}
local function invoke()
local ok
local RawX, RawY, x, y
mainLayoutParams = getLayoutParams()
floatWindow = luajava.loadlayout(floatWindow)
local function invoke2()
block('start')
for k = 1,#stab do
for i = 1,#sview[k] do
_ENV["layoutm"..k]:addView(sview[k][i])
end
end
mainLayoutParams.x = device.width/4
mainLayoutParams.y = device.height/4
window:addView(floatWindow, mainLayoutParams)
block('end')
end
local runnable = luajava.getRunnable(invoke2)
local handler = luajava.getHandler()
handler:post(runnable)
切换(1)
block('join')
local isMove
end
invoke(swib1,swib2)
隐藏()
playV()
gg.setVisible(false)
luajava.setFloatingWindowHide(true)
yinll=1
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
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
qhkai=0
zhubj=floatWindow
qiehuan=function()
if qhkai==0 then
yinll=0
qhkai=1
draw.remove()
gg.toast("隐藏")
luajava.runUiThread(function()
YoYoImpl:with("FadeOut"):duration(300):playOn(zhubj)
end)
gg.sleep(400)
luajava.runUiThread(function()
if 显示==1 then
隐藏()
end
control:setBackground(empty)
end)
else
qhkai=0
yinll=1
huiz()
luajava.runUiThread(function()
YoYoImpl:with("FadeIn"):duration(300):playOn(zhubj)
control:setBackground(xfcp)
end)
if 显示==0 then
隐藏()
end
end
end
while true do
if tuichu==1 then break end
jianting3(qiehuan)
gg.sleep(330)
end
end
function getseekgra()
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(10)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors({
0x6600c6ff,0x660072ff
})
jianbians:setStroke(2,"0x44ffffff")--边框宽度和颜色
return jianbians
end
corbk = true
当前ui = 1
function 切换(x)
当前ui = x
luajava.runUiThread(function()
for i = 1,#stab do
_ENV["layout"..i]:setVisibility(View.GONE)
_ENV["jm"..i]:setBackground(jmbg[i])
end
changan.controlWater(_ENV["jmm"..当前ui],200)
_ENV["jm"..当前ui]:setBackground(slcta)
_ENV["layout"..当前ui]:setVisibility(View.VISIBLE)
YoYoImpl:with("FadeIn"):duration(400):playOn(_ENV["layout"..当前ui])
end)
end
显示 = 0
beij = getRes("sasuke_bg")
beij2 = luajava.loadlayout({
GradientDrawable,
color = "#001E1C27",
cornerRadius = 10
})
function getcolor(cl)
cl[1] = tonumber(math.ceil(cl[1]*2.6,0,5))
if cl[1] > 255 then cl[1] = "0xff" else
cl[1] = "0x"..string.format("%x",cl[1]) end
for i = 1,3 do
cl[i+1] = string.format("%x",cl[i+1])
if string.len(cl[i+1]) == 1 then cl[i+1] = "0"..cl[i+1] end
end
cl = cl[1]..cl[2]..cl[3]..cl[4]
return cl
end
function getrgb(cl)
if string.sub(cl,1,1) == "#" then cl = "0x"..string.sub(cl,2,-1) end
cl = {
tonumber(string.sub(cl,0,4)),tonumber("0x"..string.sub(cl,5,6)),tonumber("0x"..string.sub(cl,7,8))}
return cl
end
显示 = 1
function 隐藏()
luajava.runUiThread(function()
if tonumber(tostring(ckou:getVisibility())) == 8.0 then
control:setVisibility(View.GONE)
显示 = 1
sisa:setVisibility(View.VISIBLE)
ckou:setVisibility(View.VISIBLE)
YoYoImpl:with("FadeIn"):duration(500):playOn(cebian)
_ENV["layout"..当前ui]:setVisibility(View.VISIBLE)
YoYoImpl:with("FadeIn"):duration(800):playOn(_ENV["layout"..当前ui])
YoYoImpl:with("FadeIn"):duration(400):playOn(floatWindow)
floatWindow:setBackground(beij)
mainLayoutParams.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
window : updateViewLayout (floatWindow , mainLayoutParams)
else
mainLayoutParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE
window : updateViewLayout (floatWindow , mainLayoutParams)
显示=0
sisa:setVisibility(View.GONE)
if jb then
closexz=true
xuzuo=false
logvid=luajava.getIdView("video")
logvid.pause(logvid)
vidd:setVisibility(View.GONE)
vids:setVisibility(View.GONE)
end
floatWindow:setBackground(beij2)
control:setVisibility(View.VISIBLE)
ckou:setVisibility(View.GONE)
_ENV["layout"..当前ui]:setVisibility(View.GONE)
end
end)
end
function 退出UI()
tuichu=1
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
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 exit()
tuichu = 1
luajava.setFloatingWindowHide(false)
luajava.post(function()
window:removeView(floatWindow)
end)
end
setExitEvent(exit)
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
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
function getShape3()
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(20)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors({
0x55FF9DBC,0x55FF9DBC
})
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
jianbians:setStroke(8,0xaa161616)--边框宽度和颜色
return jianbians
end
function getShape(tmp0,tmp1,tmp2,tmp3)
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(tmp0)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(tmp1)
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
jianbians:setStroke(8,tmp3)--边框宽度和颜色
return jianbians
end
function getShape2(tmp0,tmp1,tmp2,tmp3)
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(tmp0)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors(tmp1)
jianbians:setOrientation(GradientDrawable.Orientation.LEFT_RIGHT)
jianbians:setStroke(15,tmp3)--边框宽度和颜色
return jianbians
end
function getShape0(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(30,tmp3)--边框宽度和颜色
return jianbians
end
checkbg = getHorizontalBG({0xffffffff,0xffffffff},10,80,0x00ffffff)
checkbg1 = getRes("sasuke_logo")
checkbg2 = getRes("sasuke_eye")
function 开关3(name,func1,func2,nid)
local sname = nid
name = name..guid()
_ENV[name] = "关"
if func1 == nil then func1 = "" end
if func2 == nil then func2 = "" end
if type(func1) == "function" then
return function()
namers = _ENV[name]
if namers ~= "开" then
vibra:vibrate(4)
luajava.runUiThread(function()
luajava.getIdValue(nid.."k"):setVisibility(View.GONE)
YoYoImpl:with("FadeInLeft"):duration(300):playOn(switches["2s"..sname])
luajava.getIdValue(nid.."g"):setVisibility(View.VISIBLE)
--luajava.getIdValue(nid):setBackground(checkbga)
end)
_ENV[name] = "开"
pcall(func1)
else
vibra:vibrate(4)
luajava.runUiThread(function()
luajava.getIdValue(nid.."g"):setVisibility(View.GONE)
YoYoImpl:with("FadeInRight"):duration(300):playOn(switches["1s"..sname])
luajava.getIdValue(nid.."k"):setVisibility(View.VISIBLE)
--luajava.getIdValue(nid):setBackground(checkbg)
end)
_ENV[name] = "关"
pcall(func2)
end
end
end
end
switches = {}
function changan.switch(name,func1,func2,yans)
nid = name..guid()
if not yans then yans = "#000000" end
local func = 开关3(name,func1,func2,nid)
if not name then name = "未设置" end
switches["1s"..nid] = luajava.loadlayout {
FrameLayout,
layout_width = '80dp',
layout_height = '30dp',
gravity = "center_vertical",
padding = {
"8dp","0dp","8dp","0dp"
},
{
LinearLayout,
layout_gravity = "left|center_vertical",
id = luajava.newId(nid.."k"),
background = checkbg1,
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = '20dp',
layout_height = '20dp',
elevation = "10dp",
},
}
switches["2s"..nid] = luajava.loadlayout {
FrameLayout,
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = '80dp',
layout_height = '30dp',
gravity = "center_vertical",
padding = {
"8dp","0dp","8dp","0dp"
}
, {
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 = '20dp',
layout_height = '20dp',
elevation = "10dp",
}
}
rest = luajava.loadlayout({
LinearLayout,
layout_width = 'fill_parent',
layout_height = "wrap_content",
gravity = "center_vertical",
padding="6dp",
{
LinearLayout,
layout_width = 'fill_parent',
layout_height = "30dp",
background=getVerticalBG({0xffffffff,0xffffffff},18,6,0xff000000),
gravity = "center_vertical",
{
TextView,
gravity = "top",
text = name,
textColor = yans,
textSize = "14sp",
layout_weight = 1,
layout_width = 'match_parent',
layout_marginLeft = "10dp",
layout_marginRight = "20dp",
},
{
FrameLayout,
background = checkbg,
elevation = "10dp",
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = '80dp',
layout_height = '30dp',
gravity = "center",
switches["1s"..nid],switches["2s"..nid]
}}
})
return rest
end
swits={}
function changan.intcheck(name,func1,func2)
nid = name..guid()
swits[nid]={
getVerticalBG({0xdd52c41a,0xdd52c41a},18),
getVerticalBG({0xffE4E4E4,0xffE4E4E4},18),
false,
}
local func = 开关5(name,func1,func2,nid)
if not name then name = "未设置" end
_ENV[nid.."k"]=luajava.loadlayout({
TextView,
id = luajava.newId(nid.."k"),
background = swits[nid][2],
layout_width = 'wrap_content',
layout_height = 'wrap_content',
padding={"13dp","3dp","13dp","3dp"},
gravity="center",
text="关",
textColor="#ffffff",
textSize="13sp",
})
_ENV[nid.."g"]=luajava.loadlayout({LinearLayout,
{
TextView,
layout_marginLeft="7dp",
id = luajava.newId(nid.."g"),
background = empty,
layout_width = 'wrap_content',
layout_height = 'wrap_content',
padding={"13dp","3dp","13dp","3dp"},
gravity="center",
text="开",
textColor="#ffffff",
textSize="13sp",
}})
local rest = luajava.loadlayout({
FrameLayout,
layout_width = 'wrap_content',
layout_height = "wrap_content",
layout_marginTop = "1dp",
layout_marginBottom = "1dp",
padding={"0dp","0dp","0dp","0dp"},
{
LinearLayout,
layout_marginLeft="8dp",
layout_marginTop="3dp",
layout_marginBottom="3dp",
layout_marginRight="6dp",
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = 'fill_parent',
layout_height = "wrap_content",
gravity = "center_vertical",
layout_gravity="center",
--background = randbg2(),
orientation="vertical",
{
TextView,
gravity = "left",
text = name,
textColor="#000000",
textSize = "11sp",
layout_height="wrap_content",
layout_width = '100dp',
},
{
LinearLayout,
id = luajava.newId(nid),
background = getVerticalBG({0xffffffff,0xffffffff},18,6,0x00ffffff),
layout_width = 'wrap_content',
layout_height = 'wrap_content',
padding = "5dp",
_ENV[nid.."k"], _ENV[nid.."g"]
}},
{LinearLayout,
layout_height="15dp",
layout_width="40dp",
layout_marginLeft="4dp",
background=getRes(""),
layout_marginTop="14dp",
},{LinearLayout,
layout_height="25dp",
layout_width="40dp",
background=getRes(""),
layout_gravity="right|bottom"
}
})
return rest
end
function 开关5(name,func1,func2,nid)
local sname = nid
local localname=name
name = nid..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]
vibra:vibrate(8)
if namers ~= "开" then
swits[sname][3]=true
--vibra:vibrate(14)
luajava.runUiThread(function()
luajava.getIdValue(sname.."k"):setBackground(empty)
luajava.getIdValue(sname.."g"):setBackground(swits[sname][1])
YoYoImpl:with("FadeInLeft"):duration(400):playOn(_ENV[nid.."g"])
end)
_ENV[name] = "开"
pcall(func1)
else
swits[sname][3]=false
--vibra:vibrate(14)
luajava.runUiThread(function()
luajava.getIdValue(sname.."k"):setBackground(swits[sname][2])
luajava.getIdValue(sname.."g"):setBackground(empty)
YoYoImpl:with("FadeInRight"):duration(400):playOn(_ENV[nid.."k"])
end)
_ENV[name] = "关"
pcall(func2)
end
end
end
end
function changan.check(cklist)
local rest = {
GridLayout,
columnCount = '3',
layout_width = 'fill_parent',
layout_height = "wrap_content",
gravity = "center"
}
for i = 1,#cklist do
local name = cklist[i][1]
local func1 = cklist[i][2]
local func2 = cklist[i][3]
if not name then name = "未设置" end
local rstt = changan.intcheck(name,func1,func2)
rest[#rest+1] = rstt
end
return luajava.loadlayout({
LinearLayout,rest
})
end
function getSelector()
selector = luajava.getStateListDrawable()
selector:addState({
android.R.attr.state_pressed
}, getVerticalBG({0xffffffff,0xffffffff},18,6,0xff000000)) -- 点击时候的背景
selector:addState({
-android.R.attr.state_pressed
}, getVerticalBG({0xffffffff,0xffffffff},18,6,0xff000000))
return selector
end
function getButBG()
selector = luajava.getStateListDrawable()
selector:addState({
android.R.attr.state_pressed
}, getVerticalBG({0xffffffff,0xffffffff},18,6,0xff000000)) -- 点击时候的背景
selector:addState({
-android.R.attr.state_pressed
}, getVerticalBG({0xffffffff,0xffffffff},18,6,0xff000000))
return selector
end
buts={}
function changan.button(txt,func)
local gid="but"..guid()
if not txt then txt = "未设置" end
buts[gid]=luajava.loadlayout(
{
FrameLayout,
layout_width = '330dp',
layout_height = "wrap_content",
{
LinearLayout,
layout_gravity="center_vertical",
layout_width = "fill_parent",
layout_height="28dp",
gravity = "center",
layout_marginTop = "5dp",
layout_marginBottom = "5dp",
layout_marginRight="5dp",
layout_marginLeft="5dp",
background = getButBG(),
onClick = function()
changan.controlWater(buts[gid],200)
luajava.newThread(function() pcall(func) end):start() end,
{
TextView,
--id = luajava.newId(tid),
textColor = "#000000",
text = txt,
textSize = "13sp",
gravity = "center",
layout_width = "wrap_content",
},
},
{LinearLayout,
layout_height="15dp",
layout_width="40dp",
background=getRes(""),
},{LinearLayout,
layout_height="25dp",
layout_width="40dp",
layout_marginBottom="5dp",
background=getRes(""),
layout_gravity="right|bottom"
}
})
return buts[gid]
end
function changan.text(txt,color,size)
if not txt then txt = "未设置文字" end
if not color then color = "#000000" end
if not size then size = "15sp" end
return luajava.loadlayout(
{
TextView,
text = txt,
textSize = size,
textColor = color,
layout_width = "wrap_content",
})
end
function 开关(name,func1,func2)
if func1 == nil then func1 = function() end end
if func2 == nil then func2 = function() end 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
end
end
function 开关2(name,func1,func2,nid)
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):setBackground(luajava.getBitmapDrawable("/sdcard/小轩/图片/check2"))
end)
_ENV[name] = "开"
func1()
else
luajava.runUiThread(function()
luajava.getIdValue(nid):setBackground(luajava.getBitmapDrawable("/sdcard/小轩/图片/check1"))
end)
_ENV[name] = "关"
func2()
end
end
end
end
function visi(tid,ttid)
local tview = luajava.getIdValue(tid)
local ttview = luajava.getIdValue(ttid)
if not tview then return 0 end
if tonumber(tostring(tview:getVisibility())) == 8.0 then
tview:setVisibility(View.VISIBLE)
ttview:setBackground(luajava.getBitmapDrawable("/sdcard/小轩/图片/hsj"))
else
tview:setVisibility(View.GONE)
ttview:setBackground(luajava.getBitmapDrawable("/sdcard/小轩/图片/sj"))
end
end
function changan.box(views)
local tid = "box"..guid()
local ttid = tid.."6"
local firadio = {
LinearLayout,
layout_width = 'fill_parent',
layout_height = "wrap_content",
layout_marginTop = "2dp",
gravity = "center",
layout_marginBottom = "2dp",
orientation = "vertical",
}
if type(views[1]) == "string" or type(views[1]) == "number" then
firadio[#firadio+1] = {
FrameLayout,
layout_width = '330dp',
layout_height = "30dp",
gravity = "center_vertical",
layout_marginTop = "2dp",
layout_marginBottom = "4dp",
onClick = function() visi(tid,ttid) end,
background = getButBG(),
{
ImageView,
layout_gravity = "left|center",
layout_marginLeft = "10dp",
id = luajava.newId(ttid),
background = "/sdcard/小轩/图片/sj",
layout_width = "13dp",
layout_height = "13dp",
layout_marginTop = "0dp",
},
{
TextView,text = views[1],
textSize = "13sp",
layout_width = "220dp",
textColor = "#ffffff",
layout_gravity = "center",
gravity = "center"
}} else
gg.alert("changan.box第一个参数必须是string") os.exit()
end
radios = {
LinearLayout,
layout_marginLeft = "0dp",
layout_marginRight = "0dp",
orientation = "vertical",
visibility = "gone",
id = luajava.newId(tid),
padding = "0dp",
gravity = "center_horizontal",
layout_width = 'fill_parent',
}
for i = 2,#views do
radios[#radios+1] = views[i]
end
firadio[#firadio+1] = radios
return luajava.loadlayout(firadio)
end
function 须佐能乎()
if not xuzuo then
sisa:setBackground(getRes("sasuke"))
vids:setVisibility(View.VISIBLE)
vidd:setVisibility(View.VISIBLE)
luajava.newThread(function()
gg.playMusic("/sdcard/小轩/图片/sisan")
end):start()
closexz=false
playV()
else
sisa:setBackground(getRes("sisa"))
closexz=true
xuzuo=false
vidd:setVisibility(View.GONE)
vids:setVisibility(View.GONE)
logvid=luajava.getIdView("video")
logvid.pause(logvid)
end
end
function playV()
changan.controlBig(vidd,300)
if xuzuo==true then return 0 end
xuzuo=true
if closexz then closexz=false zidong:interrupt() return 0 end
zidong = luajava.startThread(function()
luajava.runUiThread(function()
if closexz then closexz=false zidong:interrupt() return 0 end
logvid = luajava.getIdView("video")
logvid:setVideoPath("/sdcard/小轩/图片/mainv")
logvid.start(logvid)
end)
vidplay=true
for i=1,34 do
if closexz then closexz=false zidong:interrupt() return 0 end
gg.sleep(250)
end
luajava.runUiThread(function()
logvid:setVideoPath("/sdcard/小轩/图片/forv")
logvid.start(logvid)
vidplay=false
end)
while true do
if not xuzuo then break end
if 显示==1 then
logvid.start(logvid)
end
gg.sleep(100)
end
end)
end
wyyget="http://120.24.160.246:3000/"
function huoqu(txt)
return table.json(gg.makeRequest(wyyget.."song/url/v1?id="..txt.."&level=standard").content)
end
function souyy(txt)
return table.json(gg.makeRequest("http://music.163.com/api/search/get?s="..txt.."&type=1&offset=0&total=true&limit=10").content)
end
function develo(tabb)
gg.alert(tostring(tabb))
end
function develo2(tabb)
gg.copyText(tostring(tabb))
end
function tablekIn(tbl, key)
if tbl == nil then
return false
end
for k, v in pairs(tbl) do
if k == key then
return true
end
end
return false
end
function searchmusic()
if not lasttm then
lasttm = os.time()
else
if os.time() - lasttm <= 5 then
gg.alert("请在" .. (5 - (os.time() - lasttm)) .. "秒冷却后搜索")
return 0
end
end
if not wryt then
else
runnable = luajava.getRunnable(function()
luajava.getIdView("搜索列表"):removeView(wyr)
end)
handler = luajava.getHandler()
handler:post(runnable)
end
mustxt = luajava.getIdView("搜索"):getText()
gg.playMusic("/sdcard/原神/obito"..math.random(1,4))
if string.len(tostring(mustxt)) <= 2 or tostring(mustxt) == nil then
gg.alert("至少输入2个字符")
return 0
end
mustxt = tostring(mustxt)
luajava.runUiThread(function()
luajava.getIdView("jzz"):setVisibility(View.VISIBLE)
luajava.getIdView("stxt"):setVisibility(View.GONE)
end)
lasttm = os.time()
mustable = souyy(mustxt)
mustable = mustable.result.songs
-- print(mustable)
musnames = {}
musids = {}
musarts = {}
musictable = {}
for k, v in pairs(mustable) do
musictable[#musictable + 1] = v
end
-- gg.alert(tostring(mustable))
-- gg.alert(tostring(musictable))
-- gg.copyText(tostring(mustable))
-- gg.alert(#musictable)
wrfun = {}
wryt = {
LinearLayout,
id = luajava.newId("搜索结果"),
layout_marginTop = "5dp",
layout_marginBottom = "5dp",
orientation = "vertical"
}
for i = 1, #musictable do
musid = musictable[i].id
-- print('musid',musid)
-- musid = musictable[i].album.id
-- print('musid',musid)
musids[#musids + 1] = musid
musname = musictable[i].name
if tablekIn(musictable[i], "transNames") ~= false then
musname = musname .. "\n(" .. musictable[i].transNames[0] .. ")"
end
musnames[#musnames + 1] = musname
musart = musictable[i].artists[0].name
musarts[#musarts + 1] = musart
wryt[#wryt + 1] = {
LinearLayout,
orientation = "vertical",
layout_marginTop = "2dp",
layout_marginBottom = "2dp",
background = getSelector(),
id = luajava.newId("音" .. musid),
onClick = function()
thread = luajava.getThread(function()
bofang(musname, musid)
end)
thread:start()
end,
{
TextView,
layout_marginTop = "5dp",
textSize = "16sp",
textColor = "#94FF91",
layout_marginBottom = "0dp",
text = musname,
layout_hight = "10dp",
layout_width = "300dp",
gravity = "center"
},
{
TextView,
layout_marginTop = "0dp",
textColor = "#000000",
textSize = "12sp",
layout_marginBottom = "5dp",
text = musart,
layout_hight = "10dp",
layout_width = "300dp",
gravity = "center"
}
}
-- gg.sleep(50)
wryt[#wryt].onClick = function()
-- (function()
-- bofang(musnames[i] .. musarts[i], musids[i])
-- end):start()
luajava.startThread(function()
bofang(musnames[i] .. musarts[i], musids[i])
end)
end
end
wyr = luajava.loadlayout(wryt)
runnable = luajava.getRunnable(function()
luajava.getIdView("搜索列表"):addView(wyr)
end)
handler = luajava.getHandler()
handler:post(runnable)
luajava.runUiThread(function()
luajava.getIdView("jzz"):setVisibility(View.GONE)
luajava.getIdView("stxt"):setVisibility(View.VISIBLE)
end)
-- gg.alert(tostring(wrfun))
end
function bofang(gqmz, gdmn)
luajava.runUiThread(function()
luajava.getIdView("搜索结果"):setVisibility(View.GONE)
luajava.getIdView("加载"):setVisibility(View.VISIBLE)
end)
gg.playMusic("http://music.163.com/song/media/outer/url?id="..gdmn..".mp3" or huoqu(gdmn).data[0].url)
-- gg.sleep(2000)
luajava.runUiThread(function()
luajava.getIdView("加载"):setVisibility(View.GONE)
luajava.getIdView("搜索结果"):setVisibility(View.VISIBLE)
end)
end
stxt = {
TextView,
text = "搜索",
--background=getSelector(),
visibility = "visible",
id = luajava.newId("stxt"),
layout_marginLeft = "8dp",
textSize = "19sp",
padding="5dp",
onClick = function()
thread = luajava.getThread(function()
searchmusic()
end)
thread:start()
end
}
jzz = {
TextView,
text = "加载中",
visibility = "gone",
id = luajava.newId("jzz"),
layout_marginLeft = "10dp",
textSize = "20sp"
}
jiaz = {
TextView,
text = "正在加载歌曲资源",
visibility = "gone",
id = luajava.newId("加载"),
textSize = "20sp",
gravity = "center"
}
wyylog = luajava.loadlayout({
LinearLayout,
orientation="vertical",
layout_width = "match_parent",
{
ScrollView,
layout_height = "200dp",
layout_width = "match_parent",
{
LinearLayout,
layout_width = "match_parent",
{LinearLayout,
padding="4dp",
gravity="center",
orientation="vertical",
id=luajava.newId("固定音乐"),
},
id = luajava.newId("搜索列表"),
layout_height = "200dp",
orientation = "vertical",
changan.button("随机播放热门音乐", function()
A="https://api.uomg.com/api/rand.music?sort=热歌榜&format=json"
Obtain=gg.makeRequest(A).content
muchen=Obtain:match('url":"(.-)","picurl')
name=Obtain:match('name":"(.-)","')
gg.toast('开始播放['..name..']')
gg.playMusic(muchen)
end),
changan.button("停止播放", function()
gg.playMusic("stop")
gg.toast("已停止播放")
end),
{
LinearLayout,
orientation = "horizontal",
layout_width = "match_parent",
{
EditText,
hint = "搜索歌曲名称",
id = luajava.newId("搜索"),
background = getSelector(),
singleLine = "true",
layout_weight=1,
layout_width = "match_parent"
},
{
TextView,
text = "搜索",
visibility = "visible",
id = luajava.newId("stxt"),
layout_marginLeft = "8dp",
textSize = "19sp",
padding="5dp",
textColor = "#000000", -- 黑色
onClick = function()
thread = luajava.getThread(function()
searchmusic()
end)
thread:start()
end
},
{
TextView,
text = "加载中",
visibility = "gone",
id = luajava.newId("jzz"),
layout_marginLeft = "10dp",
textSize = "20sp",
textColor = "#000000" -- 黑色
}
},
{
TextView,
text = "正在加载歌曲资源",
visibility = "gone",
id = luajava.newId("加载"),
textSize = "20sp",
gravity = "center",
textColor = "#000000" -- 黑色
}
}
}
})
---此UI免费 作者小轩
---Q:1903351873 V:-escape_2020- 无小号
---欢迎大项目合作? 定制200起 自带详细需求
---Q群795276247 进不去就换个号
---倒卖免费UI、冒充作者的死妈
--无教程 不要问我怎么用
---功能前置写这里↓下边UI配置区调用
function huiz()
draw.setStyle('描边并填充')
draw.setSize(50)
draw.setColor("#00ffff")
draw.text('小轩全防',300,300)
end
stitle = "小轩"
stab = {
--菜单名字,添加即可加页数,需要与结尾配置表对应
"防封",
"功能",
"音乐",
"设置",
}
xfcpic = "https://pan.bixuge.cn/view.php/f6c70ec1359b6b88ed0892c2d7d19d19.png"
--悬浮窗链接或路径
changan.menu(
{
{--1
changan.button("官方频道@XiaoXuanOwO",
function()
end),
changan.text("小轩全防"),
changan.button("可下滑↓选择进程",
function()
gg.setProcessX()
end),
changan.switch("全杀67过消炎[腾讯]",
function()
if gg.getRangesList("libUE4.so")[1] then
local base = gg.getRangesList("libUE4.so")[1].start
gg.addListItems({
{ address = base + 0x0, flags = 4, value = -698416192, freeze = true }, -- 基址本身
{ address = base + 0x4, flags = 4, value = -698416192, freeze = true },
{ address = base + 0x28, flags = 4, value = -698416192, freeze = true },
{ address = base + 0x98, flags = 4, value = -698416192, freeze = true },
{ address = base + 0x140, flags = 4, value = -698416192, freeze = true },
{ address = base + 0x148, flags = 4, value = -698416192, freeze = true },
{ address = base + 0x276, flags = 4, value = -698416192, freeze = true },
{ address = base + 0x336, flags = 4, value = -698416192, freeze = true },
{ address = base + 0x37E, flags = 4, value = -698416192, freeze = true },
{ address = base + 0x3B2, flags = 4, value = -698416192, freeze = true },
{ address = base + 0x3CC, flags = 4, value = -698416192, freeze = true },
{ address = base + 0x3DE, flags = 4, value = -698416192, freeze = true },
{ address = base + 0xD3A, flags = 4, value = -698416192, freeze = true },
{ address = base + 0xF50, flags = 4, value = -698416192, freeze = true },
{ address = base + 0xF5A, flags = 4, value = -698416192, freeze = true },
{ address = base + 0xF7C, flags = 4, value = -698416192, freeze = true },
{ address = base + 0xFD8, flags = 4, value = -698416192, freeze = true },
})
end
if gg.getRangesList("libpixuiCurl.so")[1] then
local base = gg.getRangesList("libpixuiCurl.so")[1].start
gg.addListItems({
{ address = base + 0xB4FE6, flags = 4, value = -698416192, freeze = true },
})
end
print("直播专用")
os.exit()
--小轩
gg.alert("开启成功")
string.toMusic("开启成功")
end,
function()
end),
changan.switch("备用全杀67过消炎[腾讯]",
function()
local function findExecutableSegment(lib)
local ranges=gg.getRangesList(lib)
for _,v in ipairs(ranges) do
if v.type:find("-x") then return v.start end
end
return nil
end
local function readValue(address,flags)
return gg.getValues({[1]={address=address,flags=flags}})[1].value
end
local function writeValue(address,flags,value,freeze)
local item={address=address,flags=flags,value=value,freeze=freeze}
if freeze then gg.addListItems({item}) else gg.setValues({item}) end
end
function setvalue(address,flags,value,freeze) if address == 0 then return end local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value tt[1].freeze=freeze if freeze==false then gg.setValues(tt) end gg.addListItems(tt) end
function getvalue(address,flags,value,freeze) if address == 0 then return end local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags gg.addListItems(tt) end
function autovalue(address,flags,_o,_v,freeze) if address == 0 then return end local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].freeze=freeze local _v_ = gg.getValues(tt)[1].value if math.abs(_v_-_o) < 1e-7 then tt[1].value=_v else tt[1].value=_o end if freeze==false then gg.setValues(tt) end gg.addListItems(tt) end
function readD(address) return gg.getValues({{address = address, flags = 4}})[1].value 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 _Q = tonumber(0x167ba0fe)
local t = {}
local _t
local _S = nil
if ti_bit then
_t = 32
else
_t = 4
end
local _S = gg.getRangesList(N_So[1])[1]
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
else
S[_].value = S[_].value & 0xFFFFFFFFFF
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 ttt = Get_Address(t_So, t_Offset, _bit)
if ttt ~= nil then
local _A = string.format('0x%X', ttt)
return _A
end
return 0
end
function RDI(address) return gg.getValues({{address = address, flags = 4}})[1].value & 0xFFFFFFFF end
function RQI(address) return gg.getValues({{address = address, flags = gg.TYPE_QWORD}})[1].value end
local t = {"libUE4.so"}
local tt = {0x1A0}local ttt = S_Pointer(t,tt,true)setvalue(ttt,4, "~A8 RET", true)
local tt = {0x4}local ttt = S_Pointer(t,tt,true)setvalue(ttt,4, "~A8 RET", true)
local tt = {0x6EE9028}local ttt = S_Pointer(t,tt,true)setvalue(ttt,4, "~A8 LDR X8, [X8,#0x2B0]", true)
local tt = {0x913154C}local ttt = S_Pointer(t,tt,true)setvalue(ttt,4, "~A8 SXTW X8, W20", true)
local tt = {0xCBEAD4C}local ttt = S_Pointer(t,tt,true)setvalue(ttt,4, "~A8 MOV X29, SP", true)
local t = {"libtersafe.so"}
local tt = {0x41D114}local ttt = S_Pointer(t,tt,true)setvalue(ttt,4, "~A8 SUB SP, SP, #0x80", true)
local tt = {0x2C57A8}local ttt = S_Pointer(t,tt,true)setvalue(ttt,4, "~A8 B [PC,#0x0]", true)
local tt = {0x46CEE8}local ttt = S_Pointer(t,tt,true)setvalue(ttt,4, "~A8 RET", true)
local tt = {0x4C74A0}local ttt = S_Pointer(t,tt,true)setvalue(ttt,4, "~A8 RET", true)
local tt = {0x4C7540}local ttt = S_Pointer(t,tt,true)setvalue(ttt,4, "~A8 RET", true)
gg.alert("开启成功")
string.toMusic("开启成功")
end,
function()
end),
changan.switch("logo防1[腾讯]",
function()
function S_Pointer(t_So, t_Offset, _bit)
local function getRanges()
local ranges = {}
local t = gg.getRangesList('^/data/*.so*$')
for i, v in pairs(t) do
if v.type:sub(2, 2) == 'w' then
table.insert(ranges, v)
end
end
return ranges
end
local function Get_Address(N_So, Offset, ti_bit)
local ti = gg.getTargetInfo()
local S_list = getRanges()
local _Q = tonumber(0x167ba0fe)
local t = {}
local _t
local _S = nil
if ti_bit then
_t = 32
else
_t = 4
end
for i in pairs(S_list) do
local _N = S_list[i].internalName:gsub('^.*/', '')
if N_So[1] == _N and N_So[2] == S_list[i].state then
_S = S_list[i]
break
end
end
if _S then
t[#t + 1] = {}
t[#t].address = _S.start + Offset[1]
t[#t].flags = _t
if #Offset ~= 1 then
for i = 2, #Offset do
local S = gg.getValues(t)
t = {}
for _ in pairs(S) do
if not ti.x64 then
S[_].value = S[_].value & 0xFFFFFFFF
end
t[#t + 1] = {}
t[#t].address = S[_].value + Offset[i]
t[#t].flags = _t
end
end
end
_S = t[#t].address
print(string.char(231,190,164,58).._Q)
end
return _S
end
local _A = string.format('0x%X', Get_Address(t_So, t_Offset, _bit))
return _A
end
local t = {"libgcloud.so:bss", "Cb"}
local tt = {0xFE8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})
local t = {"libgcloud.so:bss", "Cb"}
local tt = {0x1040}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})
local t = {"libgcloud.so:bss", "Cb"}
local tt = {0x1118}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})
local t = {"libgcloud.so:bss", "Cb"}
local tt = {0x13F0}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})
local t = {"libgcloud.so:bss", "Cb"}
local tt = {0xA890}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})
local t = {"libgcloud.so:bss", "Cb"}
local tt = {0xA8C0}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})
local t = {"libgcloud.so:bss", "Cb"}
local tt = {0xB680}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 0, freeze = true}})
gg.alert("开启成功")
string.toMusic("开启成功")
end,
function()
end),
changan.switch("logo防2[腾讯]",
function()
if gg.getRangesList("libtersafe.so")[1] then
local t = {}
t[1] = gg.getRangesList("libtersafe.so")[1]["start"] + 0x1B6614; -- 数值地址:0x72181BD614
t[2] = gg.getRangesList("libtersafe.so")[1]["start"] + 0x1B6618; -- 数值地址:0x72181BD618
gg.addListItems({
[1] = {
address = t[1],
flags = 4,
value = 1664,
freeze = true,
},
[2] = {
address = t[2],
flags = 4,
value = 335544320,
freeze = true,
},
})
gg.toast("开启成功")
end
gg.alert("开启成功")
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 _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 t = {"libgsdk.so", "Cd"}
local tt = {0xCC}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 15583, freeze = true}})
local t = {"libgsdk.so", "Cd"}
local tt = {0x390}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 15583, freeze = true}})
local t = {"libgsdk.so", "Cd"}
local tt = {0x3A0}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 15583, freeze = true}})
local t = {"libgsdk.so", "Cd"}
local tt = {0xC8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 15583, freeze = true}})
gg.alert("开启成功")
string.toMusic("开启成功")
end,
function()
end),
changan.switch("全杀67禁网开我[腾讯]",
function()
local function findExecutableSegment(lib)
local ranges=gg.getRangesList(lib)
for _,v in ipairs(ranges) do
if v.type:find("-x") then return v.start end
end
return nil
end
local function readValue(address,flags)
return gg.getValues({[1]={address=address,flags=flags}})[1].value
end
local function writeValue(address,flags,value,freeze)
local item={address=address,flags=flags,value=value,freeze=freeze}
if freeze then gg.addListItems({item}) else gg.setValues({item}) end
end
function setvalue(address,flags,value,freeze) if address == 0 then return end local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value tt[1].freeze=freeze if freeze==false then gg.setValues(tt) end gg.addListItems(tt) end
function getvalue(address,flags,value,freeze) if address == 0 then return end local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags gg.addListItems(tt) end
function autovalue(address,flags,_o,_v,freeze) if address == 0 then return end local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].freeze=freeze local _v_ = gg.getValues(tt)[1].value if math.abs(_v_-_o) < 1e-7 then tt[1].value=_v else tt[1].value=_o end if freeze==false then gg.setValues(tt) end gg.addListItems(tt) end
function readD(address) return gg.getValues({{address = address, flags = 4}})[1].value 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 _Q = tonumber(0x167ba0fe)
local t = {}
local _t
local _S = nil
if ti_bit then
_t = 32
else
_t = 4
end
local _S = gg.getRangesList(N_So[1])[1]
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
else
S[_].value = S[_].value & 0xFFFFFFFFFF
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 ttt = Get_Address(t_So, t_Offset, _bit)
if ttt ~= nil then
local _A = string.format('0x%X', ttt)
return _A
end
return 0
end
local t = {"libtersafe.so"}
local t = {"libUE4.so"}
local t = {"libUE4.so"}
--半杀67
local tt = {0x33c}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "-1", false)
--开火上报
local tt = {0x85E10DC}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 B [PC,#0x40]", false)
--DATA4
local tt = {0x9A7A14C}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 MOV W0, WZR", false)
local tt = {0x9A7A30C}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 MOV W0, WZR", false)
local tt = {0x85DE7F0}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 B [PC,#0x50]", false)
local tt = {0x85DE7F8}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 NOP", false)
local tt = {0x85DE810}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 B [PC,#0x14]", false)
local tt = {0x85DE834}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 B [PC,#0x14]", false)
local tt = {0x746AD60}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 NOP", false)--击杀敌人上报信息
local tt = {0x8dd89c4}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 RET", false)---人物移速检测
local tt = {0xa0ffd04}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 RET", false)---获取字符串游戏版本
local tt = {0x9A7A14C}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 MOV W0, WZR", false)
local tt = {0x9A7A30C}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 MOV W0, WZR", false)
local tt = {0x85DE7F0}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 B [PC,#0x50]", false)
local tt = {0x85DE7F8}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 NOP", false)
local tt = {0x85DE810}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 B [PC,#0x14]", false)
--完整性
local t = {"libtersafe.so"}
local tt = {0x3234D8}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 LDRB W15, [X0]", true)
local tt = {0x320e90}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 ret", true)
local tt = {0x2f29dc}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 ret", true)
local tt = {0x2e7934}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 nop", true)
local tt = {0x2e7dbc}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 ret", true)
local tt = {0x37b3cc}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 ret", true)
--vm auto defense
local tt = {0x20ED98}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 NOP", false)
--mrpcsinit
local tt = {0x37B3CC}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 ret", true)
--mrpcs
local tt = {0x229F08}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 ret", true)
local tt = {0x424200}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 RET", true)
--text段无异常
local tt = {0x46CEE8}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 ret", true)
local tt = {0x4C74A0}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 ret", true)
local tt = {0x4C7540}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 ret", true)
--读67/13异常
local tt = {0x41cfb8}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 NOP", true)
gg.toast("开启成功")
gg.alert("开启成功")
string.toMusic("开启成功")
end,
function()
end),
changan.switch("防猎鹰[大厅]",
function()
local function findExecutableSegment(lib)
local ranges=gg.getRangesList(lib)
for _,v in ipairs(ranges) do
if v.type:find("-x") then return v.start end
end
return nil
end
local function readValue(address,flags)
return gg.getValues({[1]={address=address,flags=flags}})[1].value
end
local function writeValue(address,flags,value,freeze)
local item={address=address,flags=flags,value=value,freeze=freeze}
if freeze then gg.addListItems({item}) else gg.setValues({item}) end
end
function setvalue(address,flags,value,freeze) if address == 0 then return end local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].value=value tt[1].freeze=freeze if freeze==false then gg.setValues(tt) end gg.addListItems(tt) end
function getvalue(address,flags,value,freeze) if address == 0 then return end local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags gg.addListItems(tt) end
function autovalue(address,flags,_o,_v,freeze) if address == 0 then return end local tt={} tt[1]={} tt[1].address=address tt[1].flags=flags tt[1].freeze=freeze local _v_ = gg.getValues(tt)[1].value if math.abs(_v_-_o) < 1e-7 then tt[1].value=_v else tt[1].value=_o end if freeze==false then gg.setValues(tt) end gg.addListItems(tt) end
function readD(address) return gg.getValues({{address = address, flags = 4}})[1].value 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 _Q = tonumber(0x167ba0fe)
local t = {}
local _t
local _S = nil
if ti_bit then
_t = 32
else
_t = 4
end
local _S = gg.getRangesList(N_So[1])[1]
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
else
S[_].value = S[_].value & 0xFFFFFFFFFF
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 ttt = Get_Address(t_So, t_Offset, _bit)
if ttt ~= nil then
local _A = string.format('0x%X', ttt)
return _A
end
return 0
end
--kill67过校验
local t = {"libtersafe.so"}--奉秋出品
local tt = {0x2E602C}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 RET", false)
local tt = {0x3A2F70}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 B [PC,#0x7C]", false)
local tt = {0x2C57A8}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 B [PC,#0x0]", false)
local tt = {0x46CEE8}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 RET", false)
local tt = {0x4C74A0}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 RET", false)
local tt = {0x4C7540}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 RET", false)
--完整性
local t = {"libUE4.so"}
--
local tt = {0x5704DC0}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 B [PC,#0x18]", false)
local tt = {0xA665F24}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 MOV W0, WZR", false)
local tt = {0x9168D24}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 NOP", false)
local tt = {0x9168D44}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 NOP", false)
local tt = {0x56F3AEC}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 NOP", false)
local tt = {0x934BD38}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 NOP", false)
local tt = {0x9168D1C}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 NOP", false)
local tt = {0x6845308}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 NOP", false)
local tt = {0x6EF60B0}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 NOP", false)
local tt = {0xA324E5C}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 NOP", false)
local tt = {0x92D555C}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 NOP", false)
local tt = {0x130B9100}local ttt = S_Pointer(t,tt,true)
setvalue(ttt,4, "~A8 MOV W0, WZR", false)
gg.alert("开启成功")
string.toMusic("开启成功")
end,
function()
end),
changan.switch("第一套[大厅]",
function()
if gg.getRangesList("libtgpa.so")[1] then
local t = {}
t[1] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x620B4; -- 数值地址:0x70687AA0B4
t[2] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x620BC; -- 数值地址:0x70687AA0BC
t[3] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x620C0; -- 数值地址:0x70687AA0C0
t[4] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x620C8; -- 数值地址:0x70687AA0C8
t[5] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x620CC; -- 数值地址:0x70687AA0CC
t[6] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x620D4; -- 数值地址:0x70687AA0D4
t[7] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x620D8; -- 数值地址:0x70687AA0D8
t[8] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x620E0; -- 数值地址:0x70687AA0E0
t[9] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x620E4; -- 数值地址:0x70687AA0E4
t[10] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x620EC; -- 数值地址:0x70687AA0EC
t[11] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x620F0; -- 数值地址:0x70687AA0F0
t[12] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x620F8; -- 数值地址:0x70687AA0F8
t[13] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x620FC; -- 数值地址:0x70687AA0FC
t[14] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62104; -- 数值地址:0x70687AA104
t[15] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62108; -- 数值地址:0x70687AA108
t[16] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62110; -- 数值地址:0x70687AA110
t[17] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62114; -- 数值地址:0x70687AA114
t[18] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x6211C; -- 数值地址:0x70687AA11C
t[19] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62120; -- 数值地址:0x70687AA120
t[20] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62128; -- 数值地址:0x70687AA128
t[21] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x6212C; -- 数值地址:0x70687AA12C
t[22] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62134; -- 数值地址:0x70687AA134
t[23] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62138; -- 数值地址:0x70687AA138
t[24] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62140; -- 数值地址:0x70687AA140
t[25] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62144; -- 数值地址:0x70687AA144
t[26] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x6214C; -- 数值地址:0x70687AA14C
t[27] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62150; -- 数值地址:0x70687AA150
t[28] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62158; -- 数值地址:0x70687AA158
t[29] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x6215C; -- 数值地址:0x70687AA15C
t[30] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62164; -- 数值地址:0x70687AA164
t[31] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62168; -- 数值地址:0x70687AA168
t[32] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62170; -- 数值地址:0x70687AA170
t[33] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62174; -- 数值地址:0x70687AA174
t[34] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x6217C; -- 数值地址:0x70687AA17C
t[35] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62180; -- 数值地址:0x70687AA180
t[36] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62188; -- 数值地址:0x70687AA188
t[37] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x6218C; -- 数值地址:0x70687AA18C
t[38] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62194; -- 数值地址:0x70687AA194
t[39] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62198; -- 数值地址:0x70687AA198
t[40] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x621A0; -- 数值地址:0x70687AA1A0
t[41] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x621A4; -- 数值地址:0x70687AA1A4
t[42] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x621AC; -- 数值地址:0x70687AA1AC
t[43] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x621B0; -- 数值地址:0x70687AA1B0
t[44] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x621B8; -- 数值地址:0x70687AA1B8
t[45] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x621BC; -- 数值地址:0x70687AA1BC
t[46] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x621C4; -- 数值地址:0x70687AA1C4
t[47] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x621C8; -- 数值地址:0x70687AA1C8
t[48] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x621D0; -- 数值地址:0x70687AA1D0
t[49] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x621D4; -- 数值地址:0x70687AA1D4
t[50] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x621DC; -- 数值地址:0x70687AA1DC
t[51] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x621E0; -- 数值地址:0x70687AA1E0
t[52] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x621E8; -- 数值地址:0x70687AA1E8
t[53] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x621F4; -- 数值地址:0x70687AA1F4
t[54] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x621F8; -- 数值地址:0x70687AA1F8
t[55] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62200; -- 数值地址:0x70687AA200
t[56] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62214; -- 数值地址:0x70687AA214
t[57] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x6221C; -- 数值地址:0x70687AA21C
t[58] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62224; -- 数值地址:0x70687AA224
t[59] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62228; -- 数值地址:0x70687AA228
t[60] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62230; -- 数值地址:0x70687AA230
t[61] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x6223C; -- 数值地址:0x70687AA23C
t[62] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62240; -- 数值地址:0x70687AA240
t[63] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62244; -- 数值地址:0x70687AA244
t[64] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x6224C; -- 数值地址:0x70687AA24C
t[65] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62250; -- 数值地址:0x70687AA250
t[66] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62254; -- 数值地址:0x70687AA254
t[67] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x6225C; -- 数值地址:0x70687AA25C
t[68] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62264; -- 数值地址:0x70687AA264
t[69] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x6226C; -- 数值地址:0x70687AA26C
t[70] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62270; -- 数值地址:0x70687AA270
t[71] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62280; -- 数值地址:0x70687AA280
t[72] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62288; -- 数值地址:0x70687AA288
t[73] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x62298; -- 数值地址:0x70687AA298
t[74] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x622A0; -- 数值地址:0x70687AA2A0
t[75] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x622A4; -- 数值地址:0x70687AA2A4
t[76] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x622AC; -- 数值地址:0x70687AA2AC
t[77] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x622B0; -- 数值地址:0x70687AA2B0
t[78] = gg.getRangesList("libtgpa.so")[1]["start"] + 0x622B4; -- 数值地址:0x70687AA2B4
gg.setValues({
[1] = {
address = t[1],
flags = 4,
value = 403028993,
},
[2] = {
address = t[2],
flags = 4,
value = 770967558,
},
[3] = {
address = t[3],
flags = 4,
value = 403109889,
},
[4] = {
address = t[4],
flags = 4,
value = 770705415,
},
[5] = {
address = t[5],
flags = 4,
value = 403223553,
},
[6] = {
address = t[6],
flags = 4,
value = 770443273,
},
[7] = {
address = t[7],
flags = 4,
value = 403304449,
},
[8] = {
address = t[8],
flags = 4,
value = 770181130,
},
[9] = {
address = t[9],
flags = 4,
value = 403418113,
},
[10] = {
address = t[10],
flags = 4,
value = 769656844,
},
[11] = {
address = t[11],
flags = 4,
value = 403499009,
},
[12] = {
address = t[12],
flags = 4,
value = 769132557,
},
[13] = {
address = t[13],
flags = 4,
value = 403615745,
},
[14] = {
address = t[14],
flags = 4,
value = 769918991,
},
[15] = {
address = t[15],
flags = 4,
value = 403696641,
},
[16] = {
address = t[16],
flags = 4,
value = 769394704,
},
[17] = {
address = t[17],
flags = 4,
value = 403810305,
},
[18] = {
address = t[18],
flags = 4,
value = 768870418,
},
[19] = {
address = t[19],
flags = 4,
value = 403891201,
},
[20] = {
address = t[20],
flags = 4,
value = 768608275,
},
[21] = {
address = t[21],
flags = 4,
value = 404004865,
},
[22] = {
address = t[22],
flags = 4,
value = 768346133,
},
[23] = {
address = t[23],
flags = 4,
value = 404085761,
},
[24] = {
address = t[24],
flags = 4,
value = 767559702,
},
[25] = {
address = t[25],
flags = 4,
value = 404199425,
},
[26] = {
address = t[26],
flags = 4,
value = 767297559,
},
[27] = {
address = t[27],
flags = 4,
value = 404280321,
},
[28] = {
address = t[28],
flags = 4,
value = 766773273,
},
[29] = {
address = t[29],
flags = 4,
value = 404397057,
},
[30] = {
address = t[30],
flags = 4,
value = 768083995,
},
[31] = {
address = t[31],
flags = 4,
value = 404477953,
},
[32] = {
address = t[32],
flags = 4,
value = 767821852,
},
[33] = {
address = t[33],
flags = 4,
value = 404591617,
},
[34] = {
address = t[34],
flags = 4,
value = 767035421,
},
[35] = {
address = t[35],
flags = 4,
value = 404672513,
},
[36] = {
address = t[36],
flags = 4,
value = 766511135,
},
[37] = {
address = t[37],
flags = 4,
value = 404786177,
},
[38] = {
address = t[38],
flags = 4,
value = 765986848,
},
[39] = {
address = t[39],
flags = 4,
value = 404867073,
},
[40] = {
address = t[40],
flags = 4,
value = 765462562,
},
[41] = {
address = t[41],
flags = 4,
value = 404983809,
},
[42] = {
address = t[42],
flags = 4,
value = 766248995,
},
[43] = {
address = t[43],
flags = 4,
value = 405064705,
},
[44] = {
address = t[44],
flags = 4,
value = 765724709,
},
[45] = {
address = t[45],
flags = 4,
value = 405178369,
},
[46] = {
address = t[46],
flags = 4,
value = 765200422,
},
[47] = {
address = t[47],
flags = 4,
value = 405259265,
},
[48] = {
address = t[48],
flags = 4,
value = 763889704,
},
[49] = {
address = t[49],
flags = 4,
value = 405376001,
},
[50] = {
address = t[50],
flags = 4,
value = 764151849,
},
[51] = {
address = t[51],
flags = 4,
value = 405456897,
},
[52] = {
address = t[52],
flags = 4,
value = 763627563,
},
[53] = {
address = t[53],
flags = 4,
value = 110637,
},
[54] = {
address = t[54],
flags = 4,
value = 70168576,
},
[55] = {
address = t[55],
flags = 4,
value = 800588846,
},
[56] = {
address = t[56],
flags = 4,
value = 587333631,
},
[57] = {
address = t[57],
flags = 4,
value = 26738692,
},
[58] = {
address = t[58],
flags = 4,
value = 64489473,
},
[59] = {
address = t[59],
flags = 4,
value = 134401024,
},
[60] = {
address = t[60],
flags = 4,
value = 76810243,
},
[61] = {
address = t[61],
flags = 4,
value = 151126015,
},
[62] = {
address = t[62],
flags = 4,
value = 26478672,
},
[63] = {
address = t[63],
flags = 4,
value = 5527552,
},
[64] = {
address = t[64],
flags = 4,
value = 151126015,
},
[65] = {
address = t[65],
flags = 4,
value = 26481756,
},
[66] = {
address = t[66],
flags = 4,
value = 3960832,
},
[67] = {
address = t[67],
flags = 4,
value = 184680447,
},
[68] = {
address = t[68],
flags = 4,
value = 28311553,
},
[69] = {
address = t[69],
flags = 4,
value = 17931519,
},
[70] = {
address = t[70],
flags = 4,
value = 805573636,
},
[71] = {
address = t[71],
flags = 4,
value = 637665279,
},
[72] = {
address = t[72],
flags = 4,
value = 134316032,
},
[73] = {
address = t[73],
flags = 4,
value = 29097986,
},
[74] = {
address = t[74],
flags = 4,
value = 45615106,
},
[75] = {
address = t[75],
flags = 4,
value = 805477376,
},
[76] = {
address = t[76],
flags = 4,
value = 201457663,
},
[77] = {
address = t[77],
flags = 4,
value = 10240,
},
[78] = {
address = t[78],
flags = 4,
value = 5245992,
},
})
gg.toast("大厅1开启成功")
end
gg.alert("开启成功")
string.toMusic("开启成功")
end,
function()
end),
changan.switch("第二套[大厅]",
function()
if gg.getRangesList("libtersafe.so")[1] then
local t = {}
t[1] = gg.getRangesList("libtersafe.so")[1]["start"] + 0x50E9C0; -- 数值地址:0x753AF7A9C0
t[2] = gg.getRangesList("libtersafe.so")[1]["start"] + 0x50E9C4; -- 数值地址:0x753AF7A9C4
t[3] = gg.getRangesList("libtersafe.so")[1]["start"] + 0x50E9C8; -- 数值地址:0x753AF7A9C8
t[4] = gg.getRangesList("libtersafe.so")[1]["start"] + 0x50E9CC; -- 数值地址:0x753AF7A9CC
gg.addListItems({
[1] = {
address = t[1],
flags = 4,
value = -268435344,
freeze = true,
},
[2] = {
address = t[2],
flags = 4,
value = 943719424,
freeze = true,
},
[3] = {
address = t[3],
flags = 4,
value = -1323834864,
freeze = true,
},
[4] = {
address = t[4],
flags = 4,
value = 335544320,
freeze = true,
},
})
gg.toast("开启成功")
end
gg.alert("开启成功")
string.toMusic("开启成功")
end,
function()
end),
changan.switch("第三套[大厅]",
function()
if gg.getRangesList("libUE4.so")[1] then
local t = {}
t[1] = gg.getRangesList("libUE4.so")[1]["start"] + 0x6D6E118; -- 数值地址:0x7956184118
t[2] = gg.getRangesList("libUE4.so")[1]["start"] + 0x6D6E11C; -- 数值地址:0x795618411C
t[3] = gg.getRangesList("libUE4.so")[1]["start"] + 0x6D6E120; -- 数值地址:0x7956184120
gg.addListItems({
[1] = {
address = t[1],
flags = 4,
value = -721215457,
freeze = true,
},
[2] = {
address = t[2],
flags = 4,
value = -721215457,
freeze = true,
},
[3] = {
address = t[3],
flags = 4,
value = -1440807968,
freeze = true,
},
})
gg.toast("开启成功")
end
if gg.getRangesList("libUE4.so")[1] then
local t = {}
t[1] = gg.getRangesList("libUE4.so")[1]["start"] + 0x5B8D1D4; -- 数值地址:0x7954FA31D4
gg.addListItems({
[1] = {
address = t[1],
flags = 4,
value = -698416192,
freeze = true,
},
})
gg.toast("开启成功")
end
if gg.getRangesList("libgcloud.so")[1] then
local t = {}
t[1] = gg.getRangesList("libgcloud.so")[1]["start"] + 0xFEFA8; -- 数值地址:0x796F45BFA8
t[2] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x205A04; -- 数值地址:0x796F562A04
t[3] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x21FF1C; -- 数值地址:0x796F57CF1C
t[4] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x21FFAC; -- 数值地址:0x796F57CFAC
t[5] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x257774; -- 数值地址:0x796F5B4774
t[6] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x2AC348; -- 数值地址:0x796F609348
t[7] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x2AC3D8; -- 数值地址:0x796F6093D8
t[8] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x3DF828; -- 数值地址:0x796F73C828
t[9] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x3DF9A0; -- 数值地址:0x796F73C9A0
gg.addListItems({
[1] = {
address = t[1],
flags = 4,
value = -1442839565,
freeze = true,
},
[2] = {
address = t[2],
flags = 4,
value = 706675680,
freeze = true,
},
[3] = {
address = t[3],
flags = 4,
value = -352190369,
freeze = true,
},
[4] = {
address = t[4],
flags = 4,
value = 706675681,
freeze = true,
},
[5] = {
address = t[5],
flags = 4,
value = -698416192,
freeze = true,
},
[6] = {
address = t[6],
flags = 4,
value = -721215457,
freeze = true,
},
[7] = {
address = t[7],
flags = 4,
value = -352255937,
freeze = true,
},
[8] = {
address = t[8],
flags = 4,
value = 335544411,
freeze = true,
},
[9] = {
address = t[9],
flags = 4,
value = -352321505,
freeze = true,
},
})
gg.toast("开启成功")
end
if gg.getRangesList("libTDataMaster.so")[1] then
local t = {}
t[1] = gg.getRangesList("libTDataMaster.so")[1]["start"] + 0x4BEEC; -- 数值地址:0x797344BEEC
t[2] = gg.getRangesList("libTDataMaster.so")[1]["start"] + 0x65AB8; -- 数值地址:0x7973465AB8
t[3] = gg.getRangesList("libTDataMaster.so")[1]["start"] + 0x65C08; -- 数值地址:0x7973465C08
t[4] = gg.getRangesList("libTDataMaster.so")[1]["start"] + 0x80EC8; -- 数值地址:0x7973480EC8
t[5] = gg.getRangesList("libTDataMaster.so")[1]["start"] + 0x93358; -- 数值地址:0x7973493358
t[6] = gg.getRangesList("libTDataMaster.so")[1]["start"] + 0xEB1D8; -- 数值地址:0x79734EB1D8
gg.addListItems({
[1] = {
address = t[1],
flags = 4,
value = 1384120320,
freeze = true,
},
[2] = {
address = t[2],
flags = 4,
value = -698416192,
freeze = true,
},
[3] = {
address = t[3],
flags = 4,
value = -698416192,
freeze = true,
},
[4] = {
address = t[4],
flags = 4,
value = 335544398,
freeze = true,
},
[5] = {
address = t[5],
flags = 4,
value = -698416192,
freeze = true,
},
[6] = {
address = t[6],
flags = 4,
value = -698416192,
freeze = true,
},
})
gg.toast("开启成功")
end
gg.alert("开启成功")
string.toMusic("开启成功")
end,
function()
end),
changan.switch("登录[切屏]",
function()
if gg.getRangesList("libUE4.so")[1] then
local base = gg.getRangesList("libUE4.so")[1].start
local items = {
{address = base + 0x1A0, flags = 4, value = -1, freeze = true},
{address = base + 0x1A4, flags = 4, value = -1, freeze = true},
{address = base + 0x1A8, flags = 4, value = -1, freeze = true},
{address = base + 0x1AC, flags = 4, value = -1, freeze = true},
{address = base + 0x1B0, flags = 4, value = -1, freeze = true},
{address = base + 0x1B4, flags = 4, value = -1, freeze = true},
{address = base + 0x1B8, flags = 4, value = -1, freeze = true},
{address = base + 0x1BC, flags = 4, value = -1, freeze = true},
{address = base + 0x1C0, flags = 4, value = -1, freeze = true},
{address = base + 0x1C4, flags = 4, value = -1, freeze = true},
}
gg.addListItems(items)
gg.toast("小轩")
end
end,
function()
end),
changan.switch("实体离线[开/关]",
function()
if gg.getRangesList("libgcloud.so")[1] then
local t = {}
t[1] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x13BFE4; -- 数值地址:0x6E3AE18FE4
gg.addListItems({
[1] = {
address = t[1],
flags = 4,
value = -698416192,
freeze = true,
},
})
gg.toast("开启成功")
end
gg.alert("开启成功")
string.toMusic("开启成功")
end,
function()
if gg.getRangesList("libgcloud.so")[1] then
local t = {}
t[1] = gg.getRangesList("libgcloud.so")[1]["start"] + 0x13BFE4; -- 数值地址:0x6E3AE18FE4
gg.addListItems({
[1] = {
address = t[1],
flags = 4,
value = -788233217,
freeze = true,
},
})
gg.toast("开启成功")
end
gg.alert("关闭成功")
string.toMusic("关闭成功")
end),
changan.switch("防踢[大厅]",
function()
local Ranges=gg.getRangesList('/')
local function YUAN(module,type)
for k,v in pairs(Ranges) do
if v['internalName']:match('[^/]*$')==module and v['type']==type then
return v['start']
end
end
end
local CHUYUAN={}
local function CHU(address,value,flags)
CHUYUAN[#CHUYUAN+1]={address=address,value=value,flags=flags}
end
CHU(YUAN('boot-framework.oat','r--p')+0x3d0,131328,4)
gg.setValues(CHUYUAN)--初源工具箱
gg.alert("关闭成功")
string.toMusic("关闭成功")
end),
}, {
--2
changan.button("选择进程",--奉秋出品
function()
gg.setProcessX()
end), --奉秋出品
changan.switch("火箭小子HOOK飞天",
function()
local so1 = gg.getRangesList("libUE4.so")[1].start
local function Mb(address)
return gg.getValues({{address=address,flags=32}})[1].value or 0
end
local pi = 3.141592653589793238
local flySpeed = 1200
local upSpeed = 6000
while (true) do
MySelf = Mb(Mb(Mb(Mb(Mb(so1 + 0x16B24CC8) + 0xC0) + 0x88) + 0x30) + 0x34A0)
if MySelf == 0 then
gg.sleep(2)
goto continue
end
fasw=Mb(MySelf+0x660)+0x14C
moip=Mb(MySelf+0x660)
sew=Mb(Mb(Mb(MySelf+0x5c58)+0x20)+0x340)
if gg.getValues({{address=MySelf+0x670,flags=4}})[1].value==0 and gg.getValues({{address=MySelf+0x73C,flags=4}})[1].value~=1 then
fwAddr = Mb(MySelf + 0x5c58) + 0x604
fw = gg.getValues({{address=fwAddr,flags=16}})[1].value
sw = gg.getValues({{address=fwAddr-0x4,flags=16}})[1].value
qian=MySelf+0x3E8C
zuoyou=qian+0x4
qzlu=math.cos(fw*pi/180)
qzwq=math.sin(fw*pi/180)
sweea=math.sin(sw*pi/180);
qzluhu=math.cos((fw+90*gg.getValues({{address=zuoyou,flags=16}})[1].value)*pi/180)
qzwqty=math.sin((fw+90*gg.getValues({{address=zuoyou,flags=16}})[1].value)*pi/180)
if gg.getValues({{address=zuoyou,flags=16}})[1].value==0 then
qzluhu=0
qzwqty=0
end
local qian_val = gg.getValues({{address=qian,flags=16}})[1].value
local zuoyou_val = gg.getValues({{address=zuoyou,flags=16}})[1].value
if qian_val ~= 0 or zuoyou_val ~= 0 then
gg.setValues({{address=fasw-8,flags=16,value=flySpeed*qzluhu+flySpeed*qzlu*qian_val}})
gg.setValues({{address=fasw-4,flags=16,value=flySpeed*qzwqty+flySpeed*qzwq*qian_val}})
end
gg.setValues({{address=fasw,flags=16,value=upSpeed}})
else
gg.setValues({{address = moip+0x214, flags = 16, value = 1}})
gg.setValues({{address = moip+0x1ecac, flags = 4, value = 256}})
gg.setValues({{address = MySelf+0x90, flags = 16, value = 1}})
gg.setValues({{address = moip+0x278, flags = 16, value = 8192}})
gg.setValues({{address = sew+0x914, flags = 16, value = 1}})
gg.setValues({{address = sew+0x910, flags = 16, value = 1}})
end
::continue::
gg.sleep(2)
string.toMusic("开启成功循环中")
end
end),
changan.switch("越南广角",
function()
k = gg.prompt({"你的数值修改:"},{"1.5"})
if k== nil then else
R=k[1]
so=gg.getRangesList('libUE4.so')[1].start
py=0x359EBF8
setvalue(so+py,16,R)
end
string.toMusic("开启成功")
end,
function()
if gg.getRangesList("libUE4.so")[1] then
local t = {}
t[1] = gg.getRangesList("libUE4.so")[1]["start"] + 0x359EBF8; -- 数值地址:0x7B1C3BC778
gg.addListItems({
[1] = {
address = t[1],
flags = 16,
value = 1,
freeze = true,
},
})
gg.toast("开启成功")
end
end),
changan.switch("动态广角",
function()
bnm = gg.prompt({
"注:建议改120\n[80;150]",
"是否开启"
},{[1]='120',[2]=''},{[1]="number",[2]="checkbox"})
if bnm == nil or bnm[1] == '' or bnm[1] == '0' then gg.toast("开启失败:原因:你点击了取消")
else
end
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x555C70,0x30,0x4B8,0x1D50,0x39C}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = bnm[1]}})
string.toMusic("开启成功")
end,
function()
end),
changan.switch("子弹变大",
function()
if gg.getRangesList("libUE4.so")[1] then
local t = {}
t[1] = gg.getRangesList("libUE4.so")[1]["start"] + 0x60CCB0C; -- 数值地址:0x71C96C65C8
gg.addListItems({
[1] = {
address = t[1],
flags = 16,
value = 8.57951974e-21,
freeze = true,
},
})
gg.toast("开启成功")
end
string.toMusic("开启成功")
end,
function()
end),
changan.switch("流畅趴下",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x555C70,0x30,0x4B8,0x68}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 16, value = 0.0001, freeze = true}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x555C70,0x30,0x4B8,0x64}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 16, value = 0.0001, freeze = true}})
string.toMusic("开启成功")
end,
function()
end),
changan.switch("伤害显示",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x555C70,0x30,0xA1C}--伤害显示
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 2, freeze = true}})
string.toMusic("开启成功")
end,
function()
end),
changan.switch("骁龙内透",
function()
local function getRanges()
local ranges = {}
local t = gg.getRangesList('^/dev/kgsl-3d0*$')
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".."HOOK"..ednum.."个地址"
end
gg.toast(_V(0x5B0,2,gg.TYPE_FLOAT,120))-----内透
gg.toast(_V(0xAB0,2,gg.TYPE_FLOAT,120))-----内透
gg.toast(_V(0x200,2,gg.TYPE_FLOAT,10e10))-----防闪
gg.toast(_V(0x048,8200,gg.TYPE_DWORD,6))-------上色
gg.clearList(t)
string.toMusic("开启成功")
end,
function()
end),
changan.switch("手持无后",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x555C70,0x30,0x4B8,0x2A90,0x7E8,0xCF0}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = -1}})
string.toMusic("开启成功")
end,
function()
end),
changan.switch("手持防抖",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x555C70,0x30,0x4B8,0x2A90,0x7E8,0xCF4}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 0}})
string.toMusic("开启成功")
end,
function()
end),
changan.switch("手持聚点",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x555C70,0x30,0x4B8,0x2A90,0x7E8,0xC2C}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 0}})
string.toMusic("开启成功")
end,
function()
end),
changan.switch("爬墙",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x555C70,0x30,0x4B8,0x518,0x218}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 16, value = 120, freeze = true}})
string.toMusic("开启成功")
end,
function()
end),
changan.switch("微加速",
function()
end),
}, {
wyylog--网易云音乐勿动
}, {
--第四页
changan.text("\n\n\n"),
changan.switch("退出UI",退出UI),
}
})
--配置表添加表即可加页数,需要与上边菜单标题数对应
--奉秋出品--奉秋出品--奉秋出品--奉秋出品