do
if type(getrlyunyz) ~= 'function' then
gg.alert('请使用RLGG执行')
os.exit()
return
end
local info = {
example_version = '1.0.3',
name = '无名的人',
appid = '99489',
appkey = '4b4WSp9MBw4mM41i',
rc4key = 'vy2yKFEjy9hEeMF2',
version = '1.5',
mi_type = '3'
}
local rlyunyz = getrlyunyz(info)
local ret = rlyunyz.start()
if not ret or not isTable(ret) or ret.sign ~= '4f812cad75db425e176e6c656f1b8c04' then
os.exit()
return
end
end
local loadingBox = getLoadingBox('正在检测您是否获取了root权限?')
loadingBox['显示']()
gg.sleep(2000)
loadingBox['关闭']()
local loadingBox = getLoadingBox('已获取root权限')
loadingBox['显示']()
gg.sleep(1000)
loadingBox['关闭']()
local loadingBox = getLoadingBox('即将HOOK腾讯服务器')
loadingBox['显示']()
gg.sleep(2000)
string.toMusic("欢迎使用无名全防助各位能稳定上大分,天天开心!")
gg.setVisible(false)
luajava.setFloatingWindowHide(true)
changan = {} swits={
}
swits["第一页"]={}
swits["第二页"]={}
swits["第三页"]={}
swits["第四页"]={}
swits["第五页"]={}
swits["标题"]={
{},{},{},{},{},
}
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 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/无名全防文件请勿动/配置文件/"..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/无名全防文件请勿动/配置文件/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/无名全防文件请勿动/配置文件/"..lujing,neirong)
end
function rdcf(lujing)
return read("/sdcard/无名全防文件请勿动/配置文件/"..lujing)
end
开 = "开" 关 = "关"
function checkimg(tmp)
if panduan("/sdcard/无名全防文件请勿动/图片/"..tmp) ~= true then
gg.toast("正在下载资源"..tmp.."\n请耐心等待")
download("https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/"..tmp,"/sdcard/无名全防文件请勿动/图片/"..tmp)
end
end
ckimg = {
"80ht",
"80.css",
"backg.zip",
"pubgT","pubgY","pubgR","pubgG"
}
for i = 1,#ckimg do
jindu = i
checkimg(ckimg[i])
end
local zip_path="/sdcard/无名全防文件请勿动/图片/backg.zip"
local out_path = zip_path:getdir():appendPath('backg')
file.unzip(zip_path, out_path)
local listFiles = out_path:listFiles()
local duration = 100
photos = {}
for i = 1, #listFiles do
local path = string.format('%s/%s.png', out_path, i)
photos[#photos+1] = path
end
empty=luajava.loadlayout {
GradientDrawable,
color = "#BC8F8F",
cornerRadius = 30
}
empty2=luajava.getBitmap("https://escape2020-1303126286.cos.ap-shenzhen-fsi.myqcloud.com/jot8z1zy")
currentBack = 1
saveBitmaps = {}
saveBitmap = {}
function changeBack()
if currentBack == 5 then
if not webbg then
webbg=broser("file:///sdcard/无名全防文件请勿动/图片/80ht")
end
luajava.newThread(function()
file.write("/sdcard/无名全防文件请勿动/配置文件/currentBack","5")
end):start()
mainbg:setBackground(empty)
setback:setImageBitmap(empty2)
web_:setVisibility(View.VISIBLE)
local function invoke()
web_:addView(webbg)
end
luajava.post(invoke)
showweb=true
currentBack = -1
else
if showweb then
local function invoke()
web_:removeView(webbg)
end
luajava.post(invoke)
web_:setVisibility(View.GONE)
end
currentBack = currentBack+1
if saveBitmaps[currentBack] == nil then
saveBitmaps[currentBack] = luajava.getBitmapDrawable(photos[currentBack])
saveBitmap[currentBack] = luajava.getBitmap(photos[currentBack])
end
mainbg:setBackground(saveBitmaps[currentBack])
setback:setImageBitmap(saveBitmap[currentBack])
luajava.newThread(function()
file.write("/sdcard/无名全防文件请勿动/配置文件/currentBack",currentBack)
end):start()
end
end
function broser(tmp)
import('android.webkit.*')
Color = luajava.bindClass('android.graphics.Color')
local function web(url)
local function invoke()
local web = luajava.loadlayout(
{WebView,
background = "#802A2A"
})
local settings = web:getSettings()
settings:setJavaScriptEnabled(true);
settings:setDomStorageEnabled(true);
settings:setUseWideViewPort(true);
settings:setLoadWithOverviewMode(true);
settings:setBlockNetworkImage(false);
settings:setBuiltInZoomControls(false);
settings:setSupportZoom(false);
settings:setPluginState(WebSettings.PluginState.ON);
settings:setJavaScriptCanOpenWindowsAutomatically(true);
settings:setAllowFileAccess(true);
settings:setLoadWithOverviewMode(true);
settings:setUseWideViewPort(true);
web:setWebChromeClient(luajava.new(WebChromeClient))
web:setLayerType(View.LAYER_TYPE_HARDWARE)
web:setWebViewClient(webViewClient)
web:setVerticalScrollBarEnabled(false)
web:setHorizontalScrollBarEnabled(false)
web:setScrollContainer(false)
web:loadUrl(url)
web:setBackgroundColor(0x0)
return web
end
return luajava.post(invoke)
end
return web(tmp)
end
function fresh()
if file.checkFile("/sdcard/无名全防文件请勿动/配置文件/currentBack")~=false then
if file.read("/sdcard/无名全防文件请勿动/配置文件/currentBack")=="" then return 0 end
currentBack=tonumber(file.read("/sdcard/无名全防文件请勿动/配置文件/currentBack"))
luajava.runUiThread(function()
if currentBack == 5 then
if not webbg then
webbg=broser("file:///sdcard/无名全防文件请勿动/图片/80ht")
end
mainbg:setBackground(empty)
setback:setImageBitmap(empty2)
local function invoke()
web_:addView(webbg)
end
luajava.post(invoke)
web_:setVisibility(View.VISIBLE)
showweb=true
currentBack = 1
else
if showweb then
local function invoke()
web_:removeView(webbg)
end
luajava.post(invoke)
web_:setVisibility(View.GONE)
end
if saveBitmaps[currentBack] == nil then
saveBitmaps[currentBack] = luajava.getBitmapDrawable(photos[currentBack])
saveBitmap[currentBack] = luajava.getBitmap(photos[currentBack])
end
mainbg:setBackground(saveBitmaps[currentBack])
setback:setImageBitmap(saveBitmap[currentBack])
end
end)
end
end
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 -- 布局高度
return layoutParams
end
mainLayoutParams = getLayoutParams()
function changan.menu()
cebian = {
LinearLayout,
layout_height = "wrap_content",
layout_width = "100dp",
gravity = "center_vertical",
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 = "38dp",
layout_width = "90dp",
background = _ENV["jm"..i.."bg"],
onTouch = hanshu,
onClick = function() 切换(i) end,
{
TextView,
id = "jmt"..i,
textSize = "13sp",
textColor = "#802A2A",
text = stab[i],
}
})
cebian[#cebian+1] = _ENV["jm"..i]
end
leftbar = luajava.loadlayout({
LinearLayout,
layout_height = "fill_parent",
layout_width = "100dp",
orientation = "vertical",
{
ImageView,
onTouch = hanshu,
id="control1",
onClick = 隐藏,
gravity = "center",
layout_height = "50dp",
layout_width = "100dp",
padding = "8dp",
src = 获取图片(xfcpic),
background = luajava.loadlayout {
GradientDrawable,
color = "#802A2A",
cornerRadius = 30
},
}, {
ScrollView,
layout_height = "228dp",
layout_marginTop = "8dp",
layout_width = "100dp",
background = luajava.loadlayout {
GradientDrawable,
color = "#802A2A",
cornerRadius = 30
},
cebian
}
})
for i=1,2 do
_ENV["layout"..i]=luajava.loadlayout({
ScrollView,
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 = "50dp",
layout_width = "match_parent",
gravity = "center",
orientation = "vertical",
layout_marginLeft = "8dp",
background = luajava.loadlayout {
GradientDrawable,
color = "#802A2A",
cornerRadius = 30
},
--onClick = changeLanguage,
{
TextView,
text = swits["标题"][i][1],
textSize = "20dp",
gravity = "center",
}, {
TextView,
text = swits["标题"][i][2],
textSize = "13dp",
gravity = "center",
}
}, {
LinearLayout,
layout_height = "match_parent",
layout_width = "match_parent",
layout_marginLeft = "3dp",
orientation="horizontal",
gravity = "center",
padding = "5dp",
{LinearLayout,
background = luajava.loadlayout {
GradientDrawable,
color = "#802A2A",
cornerRadius = 30
},
id="switchs"..i.."1",
orientation="vertical",
gravity="center_horizontal",
layout_height = "match_parent",
layout_width = "match_parent",
layout_weight=1,
},{LinearLayout,
gravity="top",
layout_height = "match_parent",
layout_width = "match_parent",
layout_weight=1,
layout_marginLeft="8dp",
orientation="vertical",
{LinearLayout,
layout_height = "wrap_content",
layout_width = "match_parent",
id="switchs"..i.."2",
background = luajava.loadlayout {
GradientDrawable,
color = "#802A2A",
cornerRadius = 30
},
gravity="center_vertical",
orientation="vertical",
},
{LinearLayout,
layout_height = "wrap_content",
layout_width = "fill_parent",
layout_marginTop = "8dp",
layout_weight=1,
id="switchs"..i.."3",
background = luajava.loadlayout {
GradientDrawable,
color = "#802A2A",
cornerRadius = 30
},
gravity="top",
orientation="vertical",
},
}
}
}})
end
for i=3,3 do
_ENV["layout"..i]=luajava.loadlayout({
ScrollView,
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 = "50dp",
layout_width = "match_parent",
gravity = "center",
orientation = "vertical",
layout_marginLeft = "8dp",
background = luajava.loadlayout {
GradientDrawable,
color = "#802A2A",
cornerRadius = 30
},
--onClick = changeLanguage,
{
TextView,
text = swits["标题"][i][1],
textSize = "20dp",
gravity = "center",
}, {
TextView,
text = swits["标题"][i][2],
textSize = "13dp",
gravity = "center",
}
}, {
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",
{LinearLayout,
layout_height = "wrap_content",
layout_width = "match_parent",
id="switchs"..i.."1",
background = luajava.loadlayout {
GradientDrawable,
color = "#802A2A",
cornerRadius = 30
},
gravity="center_vertical",
orientation="vertical",
},{LinearLayout,
layout_height = "wrap_content",
layout_width = "match_parent",
id="switchs"..i.."2",
background = luajava.loadlayout {
GradientDrawable,
color = "#802A2A",
cornerRadius = 30
},
gravity="center_vertical",
orientation="vertical",
},
{LinearLayout,
layout_height = "wrap_content",
layout_width = "fill_parent",
layout_marginTop = "8dp",
layout_weight=1,
id="switchs"..i.."3",
background = luajava.loadlayout {
GradientDrawable,
color = "#802A2A",
cornerRadius = 30
},
gravity="top",
orientation="vertical",
},
},{LinearLayout,
gravity="top",
layout_height = "match_parent",
layout_width = "match_parent",
layout_weight=1,
layout_marginLeft="8dp",
orientation="vertical",
{LinearLayout,
layout_height = "wrap_content",
layout_width = "match_parent",
id="switchs"..i.."4",
background = luajava.loadlayout {
GradientDrawable,
color = "#802A2A",
cornerRadius = 30
},
gravity="center_vertical",
orientation="vertical",
},{LinearLayout,
layout_height = "wrap_content",
layout_width = "match_parent",
id="switchs"..i.."5",
background = luajava.loadlayout {
GradientDrawable,
color = "#802A2A",
cornerRadius = 30
},
gravity="center_vertical",
orientation="vertical",
},
{LinearLayout,
layout_height = "wrap_content",
layout_width = "fill_parent",
layout_marginTop = "8dp",
layout_weight=1,
id="switchs"..i.."6",
background = luajava.loadlayout {
GradientDrawable,
color = "#802A2A",
cornerRadius = 30
},
gravity="top",
orientation="vertical",
},
}
}
}})
end
layout4 = luajava.loadlayout({
HorizontalScrollView,
id = "layout4",
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 = "260dp",
layout_width = "170dp",
gravity="center",
{
FrameLayout,
layout_height = "260dp",
layout_width = "150dp",
--layout_weight = 1,
gravity = "center",
layout_gravity="center_horizontal",
background = luajava.loadlayout {
GradientDrawable,
color = "#802A2A",
cornerRadius = 30
},
{
ImageView,
src = "/sdcard/无名全防文件请勿动/图片/pubgT",
layout_marginTop="20dp",
layout_gravity="center_horizontal",
layout_height="60dp",
layout_width="60dp",
},
{
TextView,
text = "小缘",
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 = getShape(90,0xff28FEB9,0xff28FEB9,0xff28FEB9),
layout_height = "25dp",
layout_width = "55dp",
layout_gravity="center_horizontal",
layout_marginTop = "190dp",
gravity = "center",
{
TextView,
textColor = "#000000",
text = "创作者",
textSize = "12sp",
layout_height = "20dp",
gravity = "center",
layout_width = "30dp",
}
}
},
},
{FrameLayout,
layout_height = "260dp",
layout_width = "170dp",
gravity="center",
{
FrameLayout,
layout_height = "260dp",
layout_width = "150dp",
--layout_weight = 1,
gravity = "center",layout_gravity="center_horizontal",
background = luajava.loadlayout {
GradientDrawable,
color = "#802A2A",
cornerRadius = 30
},
{
ImageView,
src = "/sdcard/无名全防文件请勿动/图片/pubgY",
layout_marginTop="20dp",
layout_gravity="center_horizontal",
layout_height="70dp",
layout_width="70dp",
},
{
TextView,
text = "无名",
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 = getShape(90,0xFF00FFFF,0xFFFF8AC9,0x802A2A),
layout_height = "25dp",
layout_width = "55dp",
layout_gravity="center_horizontal",
layout_marginTop = "190dp",
gravity = "center",
{
TextView,
textColor = "#000000",
text = "赞助者",
textSize = "12sp",
layout_height = "20dp",
gravity = "center",
layout_width = "30dp",
}
}
},
},
{FrameLayout,
layout_height = "260dp",
layout_width = "170dp",
gravity="center",
{
FrameLayout,
layout_height = "260dp",
layout_width = "150dp",
--layout_weight = 1,
gravity = "center",layout_gravity="center_horizontal",
background = luajava.loadlayout {
GradientDrawable,
color = "#802A2A",
cornerRadius = 30
},
{
ImageView,
src = "/sdcard/无名全防文件请勿动/图片/pubgR",
layout_marginTop="20dp",
layout_gravity="center_horizontal",
layout_height="60dp",
layout_width="60dp",
},
{
TextView,
text = "小黑屋的原因:①设备不干净导致\n②吃举报导致",
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 = getShape(90,0xFF00FFFF,0xFFFF8AC9,0x802A2A),
layout_height = "25dp",
layout_width = "55dp",
layout_gravity="center_horizontal",
layout_marginTop = "190dp",
gravity = "center",
{
TextView,
textColor = "#000000",
text = "",
textSize = "12sp",
layout_height = "20dp",
gravity = "center",
layout_width = "30dp",
}
}
},
},
{FrameLayout,
layout_height = "260dp",
layout_width = "170dp",
gravity="center",
{
FrameLayout,
layout_height = "260dp",
layout_width = "150dp",
--layout_weight = 1,
gravity = "center",layout_gravity="center_horizontal",
background = luajava.loadlayout {
GradientDrawable,
color = "#802A2A",
cornerRadius = 30
},
{
ImageView,
src = "/sdcard/无名全防文件请勿动/图片/pubgG",
layout_marginTop="20dp",
layout_gravity="center_horizontal",
layout_height="60dp",
layout_width="60dp",
},
{
TextView,
text = "高风险的原因:①行为问题\n②防封问题请及时反馈",
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 = getShape(90,0xFF00FFFF,0xFFFF8AC9,0x802A2A),
layout_height = "25dp",
layout_width = "55dp",
layout_gravity="center_horizontal",
layout_marginTop = "190dp",
gravity = "center",
{
TextView,
textColor = "#000000",
text = "",
textSize = "12sp",
layout_height = "20dp",
gravity = "center",
layout_width = "30dp",
}
}
},
}
}})
layout5 = luajava.loadlayout({
ScrollView,
id = "layout5",
visibility = "gone",
layout_height = "fill_parent",
layout_width = "match_parent",
{
LinearLayout,
id = "layoutm5",
layout_height = "wrap_content",
layout_width = "match_parent",
orientation = "vertical",
{LinearLayout,
layout_height = "wrap_content",
layout_width = "match_parent",
orientation = "horizontal",{
LinearLayout,
layout_height = "120dp",
layout_width = "match_parent",
layout_weight = 1,
gravity = "center",
layout_marginLeft = "8dp",
background = luajava.loadlayout {
GradientDrawable,
color = "#802A2A",
cornerRadius = 30
},
onClick = changeLanguage,
{
TextView,
id = "langt",
text = "中文",
textSize = "23dp",
gravity = "center",
}
}, {
ImageView,
id = "setback",
layout_height = "120dp",
layout_width = "match_parent",
layout_weight = 1,
layout_marginLeft = "8dp",
background = luajava.loadlayout {
GradientDrawable,
color = "#802A2A",
cornerRadius = 30
},
gravity = "center",
padding = "5dp",
src = photos[currentBack],
onClick = changeBack,
}},
{LinearLayout,
orientation="vertical",
layout_width="fill_parent",
layout_height="fill_parent",
layout_weight=1,
gravity="center_horizontal",
{TextView,
text="TG@wuming78nb",
textColor="#802A2A",
layout_marginTop="60dp",
layout_width="fill_parent",
gravity="center",
textSize="14sp",
onClick=function() 隐藏() luajava.newThread(function() gg.intent("https://t.me/HJNByyds") end):start() end,
},
{TextView,
text="退出",
textColor="#000000",
layout_marginTop="20dp",
layout_width="wrap_content",
background=luajava.loadlayout {
GradientDrawable,
color = "#802A2A",
cornerRadius = 20
},
gravity="center",
padding={"35dp","0dp","35dp","0dp",},
textSize="15sp",
onClick=function() tuichu = 1 end,
}
}
}})
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",
{LinearLayout,
layout_gravity="center",
id="web_",
visibility="gone",
layout_height = "300dp",
layout_width = "535dp",
background=luajava.loadlayout {
GradientDrawable,
color = "#FFFF8AC9",
cornerRadius = 40,
},
},
{
LinearLayout,
orientation = "horizontal",
id = "mainbg",
padding = "8dp",
background = photos[1],
onTouch = hanshu,
layout_height = "300dp",
layout_width = "535dp",
leftbar,
layout1,
layout2,
layout3,
layout4,
layout5,
},
}
})
local function invoke()
mainLayoutParams.x = -device.width/4
mainLayoutParams.y = device.height/4
window:addView(floatWindow,mainLayoutParams)
--web_:addView(webbg)
end
luajava.post(invoke)
--print(os.clock()-tlt)
切换(1)
local function invoke()
for i=1,#swits["第一页"]["第一板块"] do
_ENV["switchs11"]:addView(swits["第一页"]["第一板块"][i])
end
for i=1,#swits["第一页"]["第二板块"] do
_ENV["switchs12"]:addView(swits["第一页"]["第二板块"][i])
end
for i=1,#swits["第一页"]["第三板块"] do
_ENV["switchs13"]:addView(swits["第一页"]["第三板块"][i])
end
for i=1,#swits["第二页"]["第一板块"] do
_ENV["switchs21"]:addView(swits["第二页"]["第一板块"][i])
end
for i=1,#swits["第二页"]["第二板块"] do
_ENV["switchs22"]:addView(swits["第二页"]["第二板块"][i])
end
for i=1,#swits["第二页"]["第三板块"] do
_ENV["switchs23"]:addView(swits["第二页"]["第三板块"][i])
end
for i=1,#swits["第三页"]["第一板块"] do
_ENV["switchs31"]:addView(swits["第三页"]["第一板块"][i])
end
for i=1,#swits["第三页"]["第二板块"] do
_ENV["switchs32"]:addView(swits["第三页"]["第二板块"][i])
end
for i=1,#swits["第三页"]["第三板块"] do
_ENV["switchs33"]:addView(swits["第三页"]["第三板块"][i])
end
for i=1,#swits["第三页"]["第四板块"] do
_ENV["switchs34"]:addView(swits["第三页"]["第四板块"][i])
end
for i=1,#swits["第三页"]["第五板块"] do
_ENV["switchs35"]:addView(swits["第三页"]["第五板块"][i])
end
for i=1,#swits["第三页"]["第六板块"] do
_ENV["switchs36"]:addView(swits["第三页"]["第六板块"][i])
end
for i=1,#swits["第四页"]["第一板块"] do
_ENV["switchs41"]:addView(swits["第四页"]["第一板块"][i])
end
for i=1,#swits["第四页"]["第二板块"] do
_ENV["switchs42"]:addView(swits["第四页"]["第二板块"][i])
end
for i=1,#swits["第四页"]["第三板块"] do
_ENV["switchs43"]:addView(swits["第四页"]["第三板块"][i])
end
end
luajava.post(invoke)
fresh()
setOnExitListener(function()
tuichu = 1
local function invoke()
return window:removeView(floatWindow)
end
luajava.post(invoke)
luajava.setFloatingWindowHide(false)
end)
qhkai = 0
qiehuan = function()
if qhkai == 0 then
qhkai = 1
draw.remove()
luajava.runUiThread(function()
changan.controlSmall(floatWindow,400)
end)
gg.sleep(400)
luajava.runUiThread(function()
floatWindow:setVisibility(View.GONE)
end)
else
qhkai = 0
huiz()
draw.text('.', -9200,-9200)
luajava.runUiThread(function() floatWindow:setVisibility(View.VISIBLE) end)
luajava.runUiThread(function()
changan.controlBig(floatWindow,400)
end)
end
end
huiz()
draw.text('.', -9200,-9200)
while true do
if tuichu == 1 then break end
jianting3(qiehuan)
gg.sleep(300)
end
local function invoke()
return window:removeView(floatWindow)
end
luajava.post(invoke)
luajava.setFloatingWindowHide(false)
end
slcta = luajava.loadlayout {
GradientDrawable,
color = "#FFFF8AC9",
cornerRadius = 40
}
slctb = luajava.loadlayout {
GradientDrawable,
color = "0xFF000000",
cornerRadius = 30
}
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)
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"])
end
end
_ENV["layout"..当前ui]:setVisibility(View.VISIBLE)
YoYoImpl:with("FadeIn"):duration(300):playOn(_ENV["layout"..当前ui])
_ENV["jm"..当前ui]:setBackground(slcta)
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
chuangk : setVisibility ( View.VISIBLE )
control2 : setVisibility ( View.GONE )
changan.controlBig ( floatWindow , 250 )
else
显示=0
chuangk : setVisibility ( View.GONE )
control2 : setVisibility ( View.VISIBLE )
changan.controlWater ( floatWindow , 300 )
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
langj = 1
function changeLanguage()
if langj<#language[1] then
langj = langj+1
else
langj = 1
end
langt:setText(language[1][langj][1])
for i = 1,#stab do
_ENV["jmt"..i]:setText(language[i][langj][2])
end
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(14,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(0,tmp3)--边框宽度和颜色
return jianbians
end
checkbg=getShape(
45,
{0xFF00FFFF,0xFFFF8AC9},
0x802A2A)
checkbga=getShape(
45,
{0xFF00FFFF,0xFFFF8AC9},
0x802A2A)
checkbg1=getShape2(
45,
{0xFF00FFFF,0xFFFF8AC9},
0x802A2A)
checkbg2=getShape2(
45,
{0xFF00FFFF,0xFFFF8AC9},
0x802A2A)
function 开关3(name,func1,func2,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
luajava.runUiThread(function()
luajava.getIdValue(nid.."k"):setVisibility(View.GONE)
luajava.getIdValue(nid.."g"):setVisibility(View.VISIBLE)
luajava.getIdValue(nid):setBackground(checkbga)
end)
_ENV[name] = "开"
vibra:vibrate(10)
pcall(func1)
else
luajava.runUiThread(function()
luajava.getIdValue(nid.."g"):setVisibility(View.GONE)
luajava.getIdValue(nid.."k"):setVisibility(View.VISIBLE)
luajava.getIdValue(nid):setBackground(checkbg)
end)
_ENV[name] = "关"
vibra:vibrate(10)
pcall(func2)
end
end
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.switch(name,func1,func2,yans)
nid = name..guid()
if not yans then yans="#ffffff" end
local func = 开关3(name,func1,func2,nid)
if not name then name = "未设置" end
rest = luajava.loadlayout({
LinearLayout,
layout_width = 'fill_parent',
layout_height = "36dp",
gravity = "center_vertical",
{
LinearLayout,
layout_width = 'fill_parent',
layout_height = "35dp",
gravity = "center_vertical",
{
TextView,
gravity = "top",
text = name,
textColor=yans,
textSize="14sp",
layout_weight=1,
layout_width = 'match_parent',
layout_marginLeft = "10dp",
layout_marginRight = "10dp",
},
{
FrameLayout,
id = luajava.newId(nid),
background = checkbg,
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = '43dp',
layout_marginRight="10dp",
layout_marginLeft="-10dp",
layout_height = 'wrap_content',
padding="0dp",
{
LinearLayout,
layout_gravity="left",
id = luajava.newId(nid.."k"),
background = checkbg1,
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = '21dp',
layout_height = '21dp',
},{
LinearLayout,
visibility="gone",
layout_gravity="right",
id = luajava.newId(nid.."g"),
background = checkbg2,
onClick = function() luajava.newThread(function() func() end):start() end,
layout_width = '21dp',
layout_height = '21dp',
}
}}
})
return rest
end
function getShape(tmp0,tmp1,tmp2,tmp3)
jianbians = luajava.new(GradientDrawable)
jianbians:setCornerRadius(tmp0)
jianbians:setGradientType(GradientDrawable.LINEAR_GRADIENT)
jianbians:setColors({
tmp1,tmp2
})
return jianbians
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",
})
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 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)--模块设置, 偏移量, 功能参数, 修改值, 类型, 功能
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
-- telegram: @XZNB886
-- 仙执PUBG
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
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("音乐配置"..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 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 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 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 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 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 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
swits={
}
swits["第一页"]={}
swits["第二页"]={}
swits["第三页"]={}
swits["第四页"]={}
swits["第五页"]={}
swits["标题"]={
{},{},{},{},{},
}
function huiz()
---绘制需要全部写在这里否则会消失
draw.text('无名防人脸主频道(冲91k)', 200,150)draw.setColor('#ff0000')
draw.text('@wuming78nb', 200,200)draw.setColor('#ff0000')
end
--悬浮窗图标链接
xfcpic ="http://pan.rlyun.asia/api/v3/file/get/60640/mmexport1700364199853.jpg?sign=WZ2u7-RDbPEwnFurNXDjuih0ZzMw0oxIGgMmk0C0-qo%3D%3A0"
stab = {---初始标题
"防封",
"待更新",
"待更新",
"游戏",
"设置",
}
language = {--标题翻译
{
{
"中文","防封"
},
{
'English','Players'
},
{
'にほんご','プレイヤーズ'
},
{
'한국어','선수'
}},
{
{
"中文","功能"
},
{
'英语','Functions'
},
{
'日语','機能メニュー'
},
{
'韩语','기능메뉴'
}},
{
{
"中文","美化"
},
{
'英语','Beautify'
},
{
'日语','身なり'
},
{
'韩语','미화'
}},
{
{
"中文","介绍公告"
},
{
'英语','Game startup area'
},
{
'日语','ゲーム起動エリア'
},
{
'韩语','게임 실행 영역'
}},
{
{
"中文","设置"
},
{
'英语','Settings'
},
{
'日语','設定'
},
{
'韩语','설정'
}}
}
swits["标题"][1][1]="防封菜单"
swits["标题"][1][2]="logo和防闪过86在腾讯界面开"
swits["第一页"]["第一板块"]={
changan.text(string.fromHtml("防封区")),
changan.text("全局离线在游戏内开启 吃鸡或者撤离关闭",nil,"14sp"),
changan.switch(
"选择进程",
function()
string.toMusic("请选择游戏进程")
gg.setProcessX()
end),
changan.switch(
"LOGO1防",
function()
So_RepairList("libGCloudVoice.so", {
{offset=0x166DC8, value=335544337},
{offset=0x18F82C, value=-698416192}
})
if gg.getRangesList("libUE4.so:bss")[1] then
local t = {}
t[1] = gg.getRangesList("libUE4.so:bss")[1]["start"] + 0x2D4090
t[2] = gg.getRangesList("libUE4.so:bss")[1]["start"] + 0x2D41D0
t[3] = gg.getRangesList("libUE4.so:bss")[1]["start"] + 0x2D5930
t[4] = gg.getRangesList("libUE4.so:bss")[1]["start"] + 0x2D5998
gg.addListItems({
{
address = t[1],
flags = 4,
value = 256,
freeze = true,
},
{
address = t[2],
flags = 4,
value = 256,
freeze = true,
},
{
address = t[3],
flags = 4,
value = 256,
freeze = true,
},
{
address = t[4],
flags = 4,
value = 256,
freeze = true,
},
})
end
gg.toast("oneLOGO防开启成功")
string.toMusic('oneLOGO防开启成功')
end),
changan.switch(
"登录1防",
function()
so=gg.getRangesList('libUE4.so')[1].start
py=0x2506c60
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x2506cc8
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x2506cfc
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x2507360
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x2507394
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x2507658
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x250768c
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x25076c0
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x25078cc
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x25080dc
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x250c06c
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x250f0a0
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x25102dc
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x2510c50
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x2510c84
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x2511804
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x251263c
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x2513294
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x2516fb0
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x251aaec
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x251ab20
setvalue(so+py,4,17024)
so=gg.getRangesList('libUE4.so')[1].start
py=0x251b4fc
setvalue(so+py,4,17024)
gg.toast("大厅第Two套开启成功")
string.toMusic("大厅第Two套开启成功")
end),
changan.switch(
"登录2防",
function()
string.toMusic("正在开启中")
local function setOffsetValues(py_arr, base_address, flags, value)
local values = {}
for i, py in ipairs(py_arr) do
values[i] = {
address = base_address + py,
flags = flags,
value = value
}
end
return gg.setValues(values)
end
do
local py_arr = { 0x
, 0x
, 0x
, 0x
, 0x
, 0x
, 0x
, 0x
, 0x
, 0x
,}
local so = gg.getRangesList('libUE4.so')[1]
if not so then
os.exit()
end
local base_address = so.start
setOffsetValues(py_arr, base_address, gg.TYPE_DWORD, 17024)
end
gg.toast("大厅three开启成功")
string.toMusic("大厅tree防开启成功")
end),
changan.switch(
"全局离线[开/关]",
function()
so=gg.getRangesList('libgcloud.so')[1].start
py=0xE687C
setvalue(so+py,4,-698416192)
draw.setColor("#00FFFF")
string.toMusic('全局离线开启成功')---语音
end,
function()
so=gg.getRangesList('libgcloud.so')[1].start
py=0xE687C
setvalue(so+py,4,-702610912)
string.toMusic("全局离线关闭成功")
end),
}
swits["第一页"]["第二板块"]={
changan.text(string.fromHtml("防闪")),
changan.switch(
"logo防闪",
function()
local t = {"libanogs.so:bss", "Cb"}
local tt = {0x628}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 64, freeze = true}})
gg.toast("开启成功")
string.toMusic('开启成功')
end),
}
swits["第一页"]["第三板块"]={
changan.text(string.fromHtml("过86")),
changan.switch(
"虚拟机过86",
function()
local t = {"libanogs.so:bss", "Cb"}
local tt = {0x628}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 64, freeze = true}})
gg.alert("开启成功")
string.toMusic('开启成功')
end),
}
swits["标题"][2][1]="功能菜单"
swits["标题"][2][2]="安全功能随便开,中危高危娱乐"
swits["第二页"]["第一板块"]={
changan.text(string.fromHtml("安全功能")),
changan.switch(
"锁120帧",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x469600, 0x34}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 16, value = 120, freeze = true}})
gg.toast("开启成功")
string.toMusic('开启成功')
end),
changan.switch(
"人物上色",
function()
local t = {"libUE4.so:bss", "Cb"}--上色
local tt = {0x456750, 0x20, 0x48, 0x3F8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 16, value = 4300, freeze = true}})
gg.toast("开启成功")
string.toMusic('开启成功')
end),
changan.switch(
"子弹大小",
function()
OP=gg.prompt({'1至50'},{[1]='10'},{[1]='number'})
if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
else
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0xDC8,0x50,0xF78}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = OP[1]}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0xDC8,0x50,0xF7C}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = OP[1]}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0xDC8,0x50,0xF80}
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()
local m = gg.prompt({'自测 自改音量'}, {'70'}, {'text'})
if m then
so=gg.getRangesList('libUE4.so')[1].start
py=0X397B58C
setvalue(so+py,16,m[1])--声音变大
end
gg.toast("开启成功")
string.toMusic('开启成功')
end),
changan.switch(
"枪械大小",
function()
OP=gg.prompt({'1至10'},{[1]='3'},{[1]='number'})
if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
else
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0xDC8,0x50,0x580}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = OP[1]}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0xDC8,0x50,0x584}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = OP[1]}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0xDC8,0x50,0x588}
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()
local r = gg.prompt({'自改人物大小[可改小可改大]'}, {'1.0'}, {'text'})
if r then
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x458, 0x194}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = r[1]}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x458, 0x198}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = r[1]}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x458, 0x19C}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = r[1]}})
end
gg.toast("开启成功")
string.toMusic('开启成功')
end),
changan.switch(
"破解xt",
function()
local t = {"libxontwol.so", "Cd"}
local tt = {0xD3E4}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 1, freeze = true}})
local t = {"libxontwol.so", "Cd"}
local tt = {0xD3E8}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 1, freeze = true}})
local t = {"libxontwol.so", "Cd"}
local tt = {0xD438}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 1, freeze = true}})
local t = {"libxontwol.so", "Cd"}
local tt = {0xD420}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = 5201314, freeze = true}})
gg.alert("破解xt开启成功")
string.toMusic('破解xt开启成功')
end),
changan.switch(
"破解xdz",
function()
local t = {"libzoel-native.so", "Cd"}
local tt = {0xD400}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 4, value = 6}})
local t = {"libzoel-native.so", "Cd"}
local tt = {0xD404}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 4, value = 6}})
local t = {"libzoel-native.so", "Cd"}
local tt = {0xD408}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 4, value = 6}})
gg.alert("破解xdz开启成功")
string.toMusic('破解xdz开启成功')
end),
changan.switch(
"枪械聚点",
function()
so=gg.getRangesList('libUE4.so')[1].start
py=0x53F6AC4
setvalue(so+py,16,8.47963525e-21)
gg.toast("开启成功")
string.toMusic('开启成功')
end),
changan.switch(
"环境除雾",
function()
so=gg.getRangesList('libUE4.so')[1].start
py=0x7A11948
gg.toast("开启成功")
string.toMusic('开启成功')
end),
changan.switch(
"人物反向",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x1B0,0x194}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 16, value = -1, freeze = true}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x1B0,0x198}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 16, value = -1, freeze = true}})
gg.alert("开启成功")
string.toMusic('开启成功')
end),
changan.switch(
"人物倒立",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x1B0, 0x19C}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = -1}})
gg.alert("开启成功")
string.toMusic('开启成功')
end),
changan.switch(
"打击特效",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x449590, 0x30, 0x488, 0x568, 0x10}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 9999}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x449590, 0x30, 0x488, 0x568, 0x50}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 9999}})
gg.alert("开启成功")
string.toMusic('开启成功')
end),
changan.switch(
"自改广角",
function()
local r = gg.prompt({'自改基址超广角[推荐1.7]'}, {'1.0'}, {'text'})
local so=gg.getRangesList('libUE4.so')[1].start
local offset =0x32d8ce8
setvalue(so+offset, 16, r[1])
string.toMusic('开启成功')
gg.alert("开启成功")
end),
changan.switch(
"轻微防抖",
function()
so=gg.getRangesList('libUE4.so')[1].start--轻微防抖
py=0x88195C4
setvalue(so+py,4,505872707)
so=gg.getRangesList('libUE4.so')[1].start
py=0x5FA1000
setvalue(so+py,4,1409287341)
gg.alert("开启成功")
string.toMusic('开启成功')
end),
}
swits["第二页"]["第二板块"]={
changan.text(string.fromHtml("中危功能")),
changan.switch(
"攀爬穿墙",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x3A1D8,0x0,0x2F0,0x1E0,0x2CC}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 999999}})
draw.setColor("#00FFFF")
string.toMusic("基址攀爬穿墙开启成功")
end,
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x390, 0x58, 0x2CC}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 9999}})
gg.toast("开启成功")
string.toMusic('开启成功')
end),
changan.switch(
"枪械瞬击",
function()
so=gg.getRangesList('libUE4.so')[1].start--瞬击
py=0x896AB84
setvalue(so+py,16,8.95671814e-21)
gg.toast("开启成功")
string.toMusic('开启成功')
end),
changan.switch(
"单发改自动[特征功能]",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0xDC8,0x50,0xEB4}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 4, value = 2306}})
gg.alert("开启成功")
string.toMusic('开启成功')
end),
changan.switch(
"跳远[开/关]",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39488,0x0,0x460,0x208}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 99999}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39488,0x0,0x1010}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 7}})
gg.toast("开启成功")
string.toMusic('开启成功')
end,
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39488,0x0,0x460,0x208}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 8192}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39488,0x0,0x1010}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 1}})
gg.toast("关闭成功")
string.toMusic('关闭成功')
end),
changan.switch(
"自改范围",
function()
OP=gg.prompt({'40~200'},{[1]='70'},{[1]='number'})
if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
else
so=gg.getRangesList('libUE4.so')[1].start--自改范围开
py=0x3209128
setvalue(so+py,16,OP[1])
gg.toast("开启成功")
string.toMusic('开启成功')
end
end),
changan.switch(
"探头路飞[开/关]",
function()
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) 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]) end
ddsl = readPointer('libUE4.so', {0xC093AA8,0x0,0x48,0x8,0x17C}, 1)
--定点锁链
lhsl = readPointer('libUE4.so', {0xC4A3590,0x30,0x608,0x38}, 1)
--灵魂锁链
local ttsl = readPointer('libUE4.so', {0xC093AA8,0x0,0x458,0x9B0,0x490,0x560}, 1)
--探头锁链
local jznbsl = readPointer('libUE4.so', {0xC49C588,0x20,0x270}, 1)--矩阵头
--矩阵南北
local jzdxsl = readPointer('libUE4.so', {0xC49C588,0x20,0x27C}, 1)--矩阵头+C
--矩阵东西
local jzsxsl = readPointer('libUE4.so', {0xC49C588,0x20,0x29C}, 1)--矩阵头+2C
--矩阵上下
zbxsl = readPointer('libUE4.so', {0xC093AA8,0x0,0x1B0,0x1B0}, 1)
--坐标x实体
zbysl = readPointer('libUE4.so', {0xC093AA8,0x0,0x1B0,0x1B4}, 1)
--坐标y实体
zbzsl = readPointer('libUE4.so', {0xC093AA8,0x0,0x1B0,0x1B8}, 1)
--坐标z实体
ttlf={}
ttlf[1]={}
ttlf[1].address=ttsl
ttlf[1].flags=16
ttlf[2]={}
ttlf[2].address=jznbsl
ttlf[2].flags=16
ttlf[3]={}
ttlf[3].address=jzdxsl
ttlf[3].flags=16
ttlf[4]={}
ttlf[4].address=jzsxsl
ttlf[4].flags=16
ttlf[5]={}
ttlf[5].address=zbxsl
ttlf[5].flags=16
ttlf[6]={}
ttlf[6].address=zbysl
ttlf[6].flags=16
ttlf[7]={}
ttlf[7].address=zbzsl
ttlf[7].flags=16
jznb=gg.getValues(ttlf)[2].value
jzdx=gg.getValues(ttlf)[3].value
jzsx=gg.getValues(ttlf)[4].value
zbx=gg.getValues(ttlf)[5].value
zby=gg.getValues(ttlf)[6].value
zbz=gg.getValues(ttlf)[7].value
while(true)do
tt=gg.getValues(ttlf)[1].value
if tt<0 then
gg.edits(ddsl, {{0, 16, 0, false}})
gg.edits(lhsl, {{0, 4, 0, false}})
if jzsx>-0.8 and jzsx<0.5 then
if jznb<-0.5 and jznb>-1.2 then--南
gg.edits(zbxsl, {{zbx+100, 16, 0, true}})
gg.edits(zbysl, {{zby+280, 16, 0, true}})
gg.edits(zbzsl, {{zbz, 16, 0, true}})
gg.toast("南")
else
if jznb>0.5 and jznb<1.2 then--北
gg.edits(zbxsl, {{zbx-100, 16, 0, true}})
gg.edits(zbysl, {{zby-280, 16, 0, true}})
gg.edits(zbzsl, {{zbz, 16, 0, true}})
gg.toast("北")
else
if jzdx<-0.5 and jzdx>-1.2 then--西
gg.edits(zbxsl, {{zbx-280, 16, 0, true}})
gg.edits(zbysl, {{zby+100, 16, 0, true}})
gg.edits(zbzsl, {{zbz, 16, 0, true}})
gg.toast("西")
else
if jzdx>0.5 and jzdx<1.2 then--东
gg.edits(zbxsl, {{zbx+280, 16, 0, true}})
gg.edits(zbysl, {{zby-100, 16, 0, true}})
gg.edits(zbzsl, {{zbz, 16, 0, true}})
gg.toast("东")
end end end end
end
if jzsx>0.5 then--视角上
gg.edits(zbxsl, {{zbx, 16, 0, true}})
gg.edits(zbysl, {{zby, 16, 0, true}})
gg.edits(zbzsl, {{zbz+300, 16, 0, true}})
end
if jzsx<-0.8 then--视角下
gg.edits(zbxsl, {{zbx, 16, 0, true}})
gg.edits(zbysl, {{zby, 16, 0, true}})
gg.edits(zbzsl, {{zbz-300, 16, 0, true}})
end
end
if tt>0 then--右探头
gg.edits(ddsl, {{0, 16, 0, false}})
gg.edits(lhsl, {{0, 4, 0, false}})
if jzsx>-0.8 and jzsx<0.5 then--视角中
if jznb<-0.5 and jznb>-1.2 then--南
gg.edits(zbxsl, {{zbx-100, 16, 0, true}})
gg.edits(zbysl, {{zby+280, 16, 0, true}})
gg.edits(zbzsl, {{zbz, 16, 0, true}})
else
if jznb>0.5 and jznb<1.2 then--北
gg.edits(zbxsl, {{zbx+100, 16, 0, true}})
gg.edits(zbysl, {{zby-280, 16, 0, true}})
gg.edits(zbzsl, {{zbz, 16, 0, true}})
else
if jzdx>-1.2 and jzdx<-0.5 then--西
gg.edits(zbxsl, {{zbx-280, 16, 0, true}})
gg.edits(zbysl, {{zby-100, 16, 0, true}})
gg.edits(zbzsl, {{zbz, 16, 0, true}})
else
if jzdx>0.5 and jzdx<1.2 then--东
gg.edits(zbxsl, {{zbx+280, 16, 0, true}})
gg.edits(zbysl, {{zby+100, 16, 0, true}})
gg.edits(zbzsl, {{zbz, 16, 0, true}})
end end end end--东南西北结束
end
if jzsx>0.5 then--视角上
gg.edits(zbxsl, {{zbx, 16, 0, true}})
gg.edits(zbysl, {{zby, 16, 0, true}})
gg.edits(zbzsl, {{zbz+280, 16, 0, true}})
end--视角上结束
if jzsx<-0.8 then--视角下
gg.edits(zbxsl, {{zbx, 16, 0, true}})
gg.edits(zbysl, {{zby, 16, 0, true}})
gg.edits(zbzsl, {{zbz-280, 16, 0, true}})
end
end
if tt == 0 then--不探头
gg.edits(lhsl, {{1000000, 4, 0, false}})
gg.edits(ddsl, {{1, 16, 0, false}})
gg.removeListItems(ttlf)
jznb=gg.getValues(ttlf)[2].value
jzdx=gg.getValues(ttlf)[3].value
jzsx=gg.getValues(ttlf)[4].value
zbx=gg.getValues(ttlf)[5].value
zby=gg.getValues(ttlf)[6].value
zbz=gg.getValues(ttlf)[7].value
end
end
draw.setColor("#00FFFF")
gg.toast("开启成功")
string.toMusic('开启成功')
end,
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x48,0x8,0x1D8}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 8192}})--惯性
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x1010}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 1}})
gg.toast("关闭成功")
string.toMusic('关闭成功')
end),
}
swits["第二页"]["第三板块"]={
changan.text(string.fromHtml("高危功能")),
changan.switch(
"跳伞落地",
function()
gg.toast("将于12秒后关闭")
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x84}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 3}})
gg.sleep(12000)
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x84}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 1}})
draw.setColor("#00FFFF")
string.toMusic('跳伞加速开启成功12秒自动关闭')
gg.toast("开启成功")
string.toMusic('开启成功')
end),
changan.switch(
"灵魂高跳[开/关]",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x48, 0x8, 0x184}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 8000}})--高挑
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x1010}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 50}})--跳远
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x449590,0x30,0x608,0x38}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 0}})--灵魂
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x460, 0x22C}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 999999}})--蛇皮跳跃
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x460,0x208}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 99999}})--飞速
gg.toast("开启成功")
string.toMusic('开启成功')
end,
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x48, 0x8, 0x184}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 443}})--高挑
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x1010}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 1}})--跳远
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x449590,0x30,0x608,0x38}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 1}})--灵魂
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8, 0x0, 0x460, 0x22C}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 8192}})--蛇皮跳跃
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x460,0x208}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 9999}})--飞速
gg.toast("关闭成功")
string.toMusic('关闭成功')
end),
changan.switch(
"加速[开/关]",
function()
so=gg.getRangesList('libUE4.so')[1].start--开启加速
py=0x89294B4
setvalue(so+py,16,-3.4564993e10)
gg.toast("开启成功")
string.toMusic('开启成功')
end,
function()
so=gg.getRangesList('libUE4.so')[1].start--关闭加速
py=0x89294B4
setvalue(so+py,16,8.50279631e-21)
gg.toast("关闭成功")
string.toMusic('关闭成功')
end),
changan.switch(
"踏空跳[开/关]",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x84}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 0.1}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x2F0,0x40,0x160,0x170,0x0}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 5}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x528}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 99999}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x2F0,0x40,0x160,0x120,0xD0}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 70}})
OP=gg.prompt({'443到4000,飞行高度'},{[1]='1000'},{[1]='number'})
if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
else
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x3A1D8, 0x0, 0x48, 0x8, 0x184}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = OP[1]}})
OP=gg.prompt({'9999到999999,飞行速度'},{[1]='99999'},{[1]='number'})
if OP == nil or OP[1] == '' or OP[1] == '0' then gg.toast("取消")
else
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x460,0x208}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = OP[1]}})
so=gg.getRangesList('libUE4.so')[1].start
py=0x8675E3C
setvalue(so+py,16,-3.4564993e10)
end
end
draw.setColor("#00FFFF")
gg.toast("踏空跳开启成功")
string.toMusic("踏空跳开启成功")
end,
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x84}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 1}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x2F0,0x40,0x160,0x170,0x0}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 1}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x528}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 1.40129846e-45}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x2F0,0x40,0x160,0x120,0xD0}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 70}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x460,0x1B4}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 443}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x460,0x208}
local ttt = S_Pointer(t, tt, true)
gg.setValues({{address = ttt, flags = 16, value = 8192}})
so=gg.getRangesList('libUE4.so')[1].start
py=0x8675E3C
setvalue(so+py,16,8.50279631e-21)
gg.toast("踏空跳关闭成功")
string.toMusic("踏空跳关闭成功")
end),
changan.switch(
"无敌加速",
function()
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39488,0x0,0xEA0,0x8C8}
zs=readAdd(readAdd(getAdd('libUE4.so:bss','0x39488')+0x0)+0xEA0)
so=gg.getRangesList('libUE4.so')[1].start
py=0x89294B4
while(true)do
if gg.isVisible(true)then
gg.setVisible(false)
else panduan=gg.getValues({[1]={address=zs+0x8c8,flags=4}})[1].value
if panduan == "1" then local ttt = S_Pointer(t, tt, true)
setvalue(so+py,16,-3.4564993e10)--开启
else
setvalue(so+py,16,8.50279631e-21)--关闭
end
if gg.isVisible(true) then
Yk = gg.alert("检测循环时打开修改器 是否退出?","关闭","继续")
gg.sleep(0)
if Yk~=1 and CB~=2 then
gg.setVisible(false)
else end end if Yk== 1 then
HOME() end end end
gg.toast("挥拳加速开启成功")
string.toMusic('挥拳加速开启成功')
end),
}
swits["标题"][3][1]="美化菜单"
swits["标题"][3][2]="美化裸奔即可 下载资源包使用 DIY美化切换配件即可生效"
swits["第三页"]["第一板块"]={
changan.text(string.fromHtml("人物美化")),
changan.switch(
"局内外观",
function()
local UE4 = gg.getRangesList("libUE4.so")
if not UE4 or #UE4 == 0 then
string.toMusic("不选进程开你妈")
os.exit()
end
local base_pointer = readPointer('libUE4.so', {0xC093AA8,0x0,0x340,0x30,0x390,0x0}, 1)
local pointers = {
[1] = {pointer = base_pointer + 0x3C, name = "脸部"},
[2] = {pointer = base_pointer + 0x74, name = "头发"},
[3] = {pointer = base_pointer + 0x11C, name = "衣服"},
[4] = {pointer = base_pointer + 0x154, name = "裤子"},
[5] = {pointer = base_pointer + 0x18C, name = "鞋子"},
[6] = {pointer = base_pointer + 0x1C4, name = "背包"},
[7] = {pointer = base_pointer + 0x1FC, name = "头盔"}
}
local config_path = gg.EXT_FILES_DIR:gsub("%lua$", "") .. "/xianzhi.ini"
local config_data = loadfile(config_path)
local config = config_data and config_data()
if not config or #config == 0 then
config = {}
end
local values = {}
local names = {}
for i, p in ipairs(pointers) do
table.insert(names, p.name.."代码:")
table.insert(values, config[i])
end
table.insert(names, "是否修改背包和头盔")
table.insert(values, config[8])
local options = gg.prompt(names, values, {"number", "number", "number", "number", "number", "number", "number", "checkbox"})
if options then
gg.saveVariable(options, config_path)
for i, p in ipairs(pointers) do
if i==6 or i==7 or options[i]==""then else
gg.edits(p.pointer-4, {{options[i], 4, 0}}, p.name)
end
end
if options[8] then
if options[6]==""then else
gg.edits(pointers[6].pointer-4, {{options[6], 4, 0}}, pointers[6].name)
end
if options[7]==""then else
gg.edits(pointers[7].pointer-4, {{options[7], 4, 0}}, pointers[7].name)
end
end
end
end,
function()
string.toMusic("无法关闭")
end
),
changan.text(""),
changan.text(string.fromHtml("人物美化")),
changan.switch(
"Enemys info",
function()
end,
function()
end),
changan.text(""),
changan.text(string.fromHtml("人物美化")),
changan.switch(
"Enemys info",
function()
end,
function()
end),
}
swits["第三页"]["第二板块"]={
changan.text(string.fromHtml("通用diy美化")),
changan.switch(
"手持武器美化【外观 播报 击中特效】",
function()
gg.setConfig("冻结间隔", 0)
gg.setConfig("快速冻结", 1)
xianzhi = gg.prompt({"AKM华丽浮雕击杀播报 1101001042 AKM怒海争锋击杀播报1101001063 AKM白虎咆哮击杀播报 1101001068 AKM冰霜核心击杀播报 1101001089 AKM积木龙骨击杀播报1101001103 AKM奇异之夜击杀播报 1101001116 AKM金牌海盗击杀播报 1101001143 AKM吉利龙王击杀播报 1101001128 AKM奇幻工坊击杀播报 1101001154 AKM部落之王击杀播报1101001174 AKM星海提督击杀播报 1101001213 AKM俏皮兔宝击杀播报 1101001231M16A4血风暴击杀播报1101002029 M16A4极光脉冲击杀播报 1101002056 M16A4缤纷利刃击杀播报 1101002068 M16A4猩红血月击杀播报 1101002081M16A4古堡龙卫击杀播报1101002103死噶梦幻水枪击杀播报 1101003057死噶魔法南瓜击杀播报1101003070死噶翌日行动击杀播报 1101003080 死噶诡秘之夜击杀播报 1101003099 死噶魔力结晶击杀播报 1101003119死噶邪能植物击杀播报 1101003146 死噶血魂魔皇击杀播报 1101003167M416冰霜核心击杀播报1101004046 M416愚人小丑击杀播报 1101004062M416异域游者击杀播报 1101004078 M416萌龙咆哮击杀播报1101004086M416野性呼唤击杀播报 1101004098 M416科技核心击杀播报 1101004138 M416潮鸣宫廷击杀播报 1101004163 M416庇护之潮击杀播报1101004209Groza幻夜音乐击杀播报1101005025 Groza绚烂之战1101005043 Groza冥河烈焰1101005052AUG流浪马戏团 1101006033 AUG第四使徒 1101006044 QBZ极致绝杀 1101007036 QBZ瑰绮灵姬1101007046 M762比特宝莉 1101008026"},nil,{"number"})
if xianzhi ~= nil then
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0x430,0x78,0x15A0}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = xianzhi[1], freeze = true}})
local t = {"libUE4.so:bss", "Cb"}
local tt = {0x39AA8,0x0,0xDC8,0x50,0x9C8,0x11C}
local ttt = S_Pointer(t, tt, true)
gg.addListItems({{address = ttt, flags = 4, value = xianzhi[1], freeze = true}})
end
end),
}
swits["第三页"]["第三板块"]={
changan.text(string.fromHtml("经典瞄具美化")),
changan.switch(
"经典瞄具美化",
function()
if not gg.getRangesList(("libUE4.so")) or #gg.getRangesList(("libUE4.so")) == 0 then
os.exit(print(("so模块不存在 libUE4.so 请检查游戏进程是否正确?")))
end
local cfg_file = gg.EXT_FILES_DIR.."/"..gg.getFile():match("[^/]+$")..'(经典配件.).lua'
local chunk = loadfile(cfg_file)
local cfg = nil
if chunk ~= nil then
cfg = chunk()
end
if cfg == nil then
cfg = {number,true}
end
kb = gg.prompt({
"红点",
"全息",
"二倍",
"四倍",
"八倍",
},cfg,{"text","text","text","text","text","text","text"})
if kb == nil then else
gg.saveVariable(kb, cfg_file)
if kb[1] == true then kb1() end
if kb[2] == true then kb2() end
if kb[3] == true then kb3() end
if kb[4] == true then kb4() end
if kb[5] == true then kb5() end
if kb[6] == true then kb6() end
if kb[7] == true then kb7() end
a=0x0
while(a <=0xAB0)
do
a=a+0x10
mk=gg.getRangesList('libUE4.so')[1].start
add = RUI(RUI(RUI(RUI(RUI(mk + 0xC11DFE8) + 0x548) + a) + 0x30) + 0x30)
adpd = RUI(RUI(RUI(RUI(RUI(RUI(mk + 0xC11DFE8) + 0x548) + a) + 0x30) + 0x3) +0x8) +0x18
if readD(adpd) == 1000 then
gg.alert("历遍完成")
addListltems(add,4,0,false)
break
add=add
end
end
nmsl=0x5000
while(nmsl <=0x866E218)
do
nmsl=nmsl+0x18
addr=RUI(add+nmsl)
if readD(addr+0x58) == 203001 then
setvalue(addr+0x18,4,kb[1])
end
if readD(addr+0x58) == 203002 then
setvalue(addr+0x18,4,kb[2])
end
if readD(addr+0x58) == 203003 then
setvalue(addr+0x18,4,kb[3])
end
if readD(addr+0x58) == 203004 then
setvalue(addr+0x18,4,kb[4])
end
if readD(addr+0x58) == 203005 then
setvalue(addr+0x18,4,kb[5])
end
if readD(addr+0x58) == 203006 then
setvalue(addr+0x18,4,kb[6])
string.toMusic('开启成功')
end
end
end
string.toMusic("重复开启即可弹出")
end),
}
swits["第三页"]["第四板块"]={
changan.text(string.fromHtml("经典枪口美化")),
changan.switch(
"经典枪口美化",
function()
if not gg.getRangesList(("libUE4.so")) or #gg.getRangesList(("libUE4.so")) == 0 then
os.exit(print(("so模块不存在 libUE4.so 请检查游戏进程是否正确?")))
end
local cfg_file = gg.EXT_FILES_DIR.."/"..gg.getFile():match("[^/]+$")..'(经典枪口.).lua'
local chunk = loadfile(cfg_file)
local cfg = nil
if chunk ~= nil then
cfg = chunk()
end
if cfg == nil then
cfg = {number,true}
end
kb = gg.prompt({
"步枪补偿器",
"步枪消焰器",
"步枪消音器",
},cfg,{"text","text","text"})
if kb == nil then else
gg.saveVariable(kb, cfg_file)
if kb[1] == true then xz() end
if kb[2] == true then xz() end
if kb[3] == true then xz() end
a=0x0
while(a <=0xAB0)
do
a=a+0x10
mk=gg.getRangesList('libUE4.so')[1].start
add = RUI(RUI(RUI(RUI(RUI(mk + 0xC11DFE8) + 0x548) + a) + 0x30) + 0x30)
adpd = RUI(RUI(RUI(RUI(RUI(RUI(mk + 0xC11DFE8) + 0x548) + a) + 0x30) + 0x30) +0x8) +0x18
if readD(adpd) == 1000 then
gg.alert("历遍完成")
addListltems(add,4,0,false)
break
add=add
end
end
nmsl=0x5000
while(nmsl <=0x866E218)
do
nmsl=nmsl+0x18
addr=RUI(add+nmsl)
if readD(addr+0x58) == 201009 then
setvalue(addr+0x18,4,kb[1])
end
if readD(addr+0x58) == 201010 then
setvalue(addr+0x18,4,kb[2])
end
if readD(addr+0x58) == 201011 then
setvalue(addr+0x18,4,kb[3])
string.toMusic('枪口开启成功')
end
end
end
string.toMusic("重复开启即可弹出")
end),
}
swits["第三页"]["第五板块"]={
changan.text(string.fromHtml("经典枪托美化")),
changan.switch(
"经典枪托美化",
function()
if not gg.getRangesList(("libUE4.so")) or #gg.getRangesList(("libUE4.so")) == 0 then
os.exit(print(("so模块不存在 libUE4.so 请检查游戏进程是否正确?")))
end
local cfg_file = gg.EXT_FILES_DIR.."/"..gg.getFile():match("[^/]+$")..'(经典枪托.).lua'
local chunk = loadfile(cfg_file)
local cfg = nil
if chunk ~= nil then
cfg = chunk()
end
if cfg == nil then
cfg = {number,true}
end
kb = gg.prompt({
"战术枪托",
"uzi枪托",
},cfg,{"text","text"})
if kb == nil then else
gg.saveVariable(kb, cfg_file)
if kb[1] == true then xz() end
if kb[2] == true then xz() end
a=0x0
while(a <=0xAB0)
do
a=a+0x10
mk=gg.getRangesList('libUE4.so')[1].start
add = RUI(RUI(RUI(RUI(RUI(mk + 0xC11DFE8) + 0x548) + a) + 0x30) + 0x30)
adpd = RUI(RUI(RUI(RUI(RUI(RUI(mk + 0xC11DFE8) + 0x548) + a) + 0x30) + 0x30) +0x8) +0x18
if readD(adpd) == 1000 then
gg.alert("历遍完成")
addListltems(add,4,0,false)
break
add=add
end
end
nmsl=0x5000
while(nmsl <=0x866E218)
do
nmsl=nmsl+0x18
addr=RUI(add+nmsl)
if readD(addr+0x58) == 205002 then
setvalue(addr+0x18,4,kb[1])
end
if readD(addr+0x58) == 205001 then
setvalue(addr+0x18,4,kb[2])
string.toMusic('枪托开启成功')
end
end
end
string.toMusic("重复开启即可弹出")
end),
}
swits["第三页"]["第六板块"]={
changan.text(string.fromHtml("经典弹夹美化")),
changan.switch(
"经典弹夹美化",
function()
if not gg.getRangesList(("libUE4.so")) or #gg.getRangesList(("libUE4.so")) == 0 then
os.exit(print(("so模块不存在 libUE4.so 请检查游戏进程是否正确?")))
end
local cfg_file = gg.EXT_FILES_DIR.."/"..gg.getFile():match("[^/]+$")..'(经典弹夹.).lua'
local chunk = loadfile(cfg_file)
local cfg = nil
if chunk ~= nil then
cfg = chunk()
end
if cfg == nil then
cfg = {1,true}
end
kb = gg.prompt({
"扩容弹夹",
"快速弹夹",
"快速扩容弹夹",
},cfg,{"text","text","text"})
if kb == nil then else
gg.saveVariable(kb, cfg_file)
if kb[1] == true then xz() end
if kb[2] == true then xz() end
if kb[3] == true then xz() end
a=0x0
while(a <=0xAB0)
do
a=a+0x10
mk=gg.getRangesList('libUE4.so')[1].start
add = RUI(RUI(RUI(RUI(RUI(mk + 0xC11DFE8) + 0x548) + a) + 0x30) + 0x30)
adpd = RUI(RUI(RUI(RUI(RUI(RUI(mk + 0xC11DFE8) + 0x548) + a) + 0x30) + 0x30) +0x8) +0x18
if readD(adpd) == 1000 then
gg.alert("历遍完成")
addListltems(add,4,0,false)
break
add=add
end
end
nmsl=0x5000
while(nmsl <=0x866E218)
do
nmsl=nmsl+0x18
addr=RUI(add+nmsl)
if readD(addr+0x58) == 204011 then
setvalue(addr+0x18,4,kb[1])
end
if readD(addr+0x58) == 204012 then
setvalue(addr+0x18,4,kb[2])
end
if readD(addr+0x58) == 204013 then
setvalue(addr+0x18,4,kb[3])
string.toMusic('弹夹开启成功')
end
end
end
string.toMusic("重复开启即可弹出")
end),
}
swits["标题"][4][1]="开发中"
swits["标题"][4][2]="介绍公告"
swits["第四页"]["第一板块"]={
}
swits["第四页"]["第二板块"]={
}
swits["第四页"]["第三板块"]={
}
changan.menu()