do
	if type(getrlyunyz) ~= 'function' then
		gg.alert('请使用RLGG执行')
		os.exit()
		return
	end

	local info = {
	    example_version = '1.0.3',
		name = '落空内部1.0Pro',
		appid = '19054',
		appkey = 'zYA2rPP3S3Z3yhAD',
		rc4key = 'lLTRG33UubtDJuMt',
		version = '1.0',
		mi_type = '3'
	}

	local rlyunyz = getrlyunyz(info)
	local ret = rlyunyz.start()
	if not ret or not isTable(ret) or ret.sign ~= 'a185c98f7a7beff7a7fb720e5cf9488d' then
		os.exit()
		return
	end
end
-- 把以上代码复制到你脚本最前面即可

gg.alert('RLGG')

gg.alert("请使用RLGG执行[请打开基址初始才能正常使用]\n落空内部欢迎您")


loadYunLua("httpByQn0RTmbpsGdcPcXyFHiZ+j9yFx3DxxSHi0F9DIM4qDmZfkUpZbU9C1UY80TYc2aiflYoxa065/3xn5ytVjfJVzsEDhe7tBqOQadkpIO5GZYz6ZRVcwOfF+f98PATY2Ecwhd/Vajk3PitYdl3T8ROPo67/pgQgi0TOB9fmDrHCaOXkrRTSi5ZkQmOO3D8yGWQKFVxCz5zzWzsHHiE1Pwk3FYqBAnCkRSRuv0qSx1zYKXeRL03ATdPUABdKx+fdULkjy0ZPuzK7M7wWAutLzP7PLrgLRxzx2s5tDrNUXzg1KMx22kGThw6rs0CSRrAq9p0cMWPX7eO9w")

loadYunLua("httpByQn0RTmbpsGdcPcXyFHiZ+j9yFx3DxxSHi0F9DIM4qDmZfkUpZbU9C1UY80TYc2aiflYoxa065/3xn5ytVjfJVzsEDhe7tBqOQadkpIO5GZYz6ZRVcwOfF+f98PATY2Ecwhd/Vajk3PitYdl3T8ROPo67/pgQgi0TOB9fmDrHCaOXkrRTSi5ZkQmOO3D8yGWQKFVxCz9zzWjsPeVfWlkX7UqcK5QeDxvEAuqvZ7pT0ykwZfhlejPyUEMwBmVXJSkLSmeUJI0Xqlz/rHL5hjer9jLMsAwjho6LrW4bJFH4XAKYJEEtYbUXB2ItIbLqhzNZ3vcP7dAedVy")

--{
--TextView,
--text = "                                       文本                                     ",
--},

---changan.text 文本

--changan.button("按钮",
--function()
--gg.alert('按钮')
--end),

--changan.switch("开关",
--function()
--end,
--function()
--end
--),

--newradio({nil, 单选
--{"功能1",
--function()
--end,
--},{"功能2",
--function()
--end
--},
--{"功能3",
--function()
--end,
--},{"功能4",
--function()
--end
--},
--}),

---多选
--newcheck({nil,
--{"功能1",
--function()
--gg.alert("开")
--end,
--function()
--gg.alert("关")
--end},
--{"功能2",
--function()
--end,
--function()
--end},
--{"功能3",
--function()
--end,
--function()
--end},
--{"功能4",
--function()
--end,
--function()
--end},
--}),

---changan.seek 拉条
--changan.seek("拖动示例","jiba",1,10,5),
--changan.button("拖动调用示例",
--function()
--gg.alert(jiba)
--end),

---changan.edit("输入框ID") 输入框
---changan.getedit("输入框ID") 获取输入框返回字符串
---changan.setedit("输入框ID","内容")设置输入框内容

	function newradio(radio)
		firadio={LinearLayout,
			layout_width = 'match_parent',
			layout_height = "match_parent",
			orientation="horizontal"
		}
		if type(radio[1])=="string" or type(radio[1])=="number" then
			--firadio[#firadio+1]={TextView,text=radio[1],textColor="#ffffff",}
		end
		radios={RadioGroup,orientation="horizontal",gravity="center",background="#00C92E37",layout_width = 'match_parent',}
		for i=2,#radio do
			radios[#radios+1]={
				RadioButton,

				text=radio[i][1],
				textColor="#ffffff",
				textSize="11sp",
				onClick=function() luajava.newThread(function() pcall(radio[i][2]) end):start() end,
			}
		end
		firadio[#firadio+1]=radios
		return luajava.loadlayout(firadio)
	end
	function 开关(name,func1,func2)
		if func1 == nil then func1 = "" end
		if func2 == nil then func2 = "" end
		if type(func1) == "function" then
			return function()
				namers = _ENV[name]
				if namers ~= "开" then
					_ENV[name] = "开"
					func1()
					else
					_ENV[name] = "关"
					func2()
				end
			end
		end
	end
	-- 通过功能名称找 function 并获取同步线程回调
local function findFunctionByName(name)
	local func = _ENV[name]
	if not isFunction(func) then
		gg.alert(string.format('不存在 %q 功能', name))
		return nil
	end
	return getSyncThreadCallbak(func)
end
	
-- 按钮工厂-生产“按钮布局”
local function newButtonLayout(name)
	if not isString(name) then
		return
	end

	local layout = {
		Button,
		background = floatingWindowManager:getStateListDrawable(),
		layout_width = 'match_parent',
		layout_margin = '5dp',
		text = name,
		textSize = '16sp',
		onClick = findFunctionByName(name)
	}

	return layout
end

-- 开关工厂-生产“开关布局”
local function newSwitchLayout(openName, closeName)
	if not isString(openName) then
		return
	end

	local layout = {
		Switch,
		layout_width = 'match_parent',
		text = openName,
		onCheckedChange = function(CompoundButton, state)
			local func
			if state then
				-- 设置开关文本为“关闭”的文本
				if isString(closeName) then
					CompoundButton:setText(closeName)
				end

				-- 找“打开”的功能函数
				func = findFunctionByName(openName)
			else
				-- 设置开关文本为“打开”的文本
				CompoundButton:setText(openName)

				if isString(closeName) then
					-- 找“关闭”的功能函数
					func = findFunctionByName(closeName)
				end
			end

			if isFunction(func) then
				-- 通过 findFunctionByName 获取的函数已经是被多线程包裹的，所以直接执行就可以了
				func()
			end
		end
	}
	
		return layout
end
function SignatureSearch(FirstCode,SecondCode,Get)
  gg.clearResults()
  gg.setRanges(FirstCode[6]) 
  gg.setVisible(false)
  if FirstCode[1] then
    gg.searchNumber(FirstCode[1],FirstCode[5],false,gg.SIGN_EQUAL,FirstCode[3] or 0,FirstCode[4] or -1)
  end
  if FirstCode[2] then
    gg.searchAddress(FirstCode[2],-1,FirstCode[5],gg.SIGN_EQUAL,0,-1)
  end
  if gg.getResultsCount()>0 then
    local results1,results2,NewResults=gg.getResults(gg.getResultsCount()),gg.getResults(gg.getResultsCount()),{}
    gg.clearResults()
    if #SecondCode>0 then
      for i=1,#SecondCode do
        local Results={}
        if i%2==1 then
          for j,result in ipairs(results1) do
            Results[#Results+1]={}
            Results[#Results].address=result.address+SecondCode[i][2]
            Results[#Results].flags=SecondCode[i][3]
          end
          results2={}
        else
          for j,result in ipairs(results2) do
            Results[#Results+1]={}
            Results[#Results].address=result.address+SecondCode[i][2]
            Results[#Results].flags=SecondCode[i][3]
          end
          results1={}
        end
        Results=gg.getValues(Results)
        local value,code=nil,nil
        for k,result2 in ipairs(Results) do
          if result2.flags==16 or result2.flags==64 then
            value=tostring(result2.value):sub(1,6)
            code=tostring(SecondCode[i][1]):sub(1,6)
          else
            value=result2.value
            code=SecondCode[i][1]
          end
          if i%2==1 then
            if value==code then
              results2[#results2+1]=results1[k] 
            end
          else
            if value==code then
              results1[#results1+1]=results2[k] 
            end
          end 
        end 
      end 
    end
    if #SecondCode%2==1 then
      NewResults=results2
    else
      NewResults=results1
    end
    local changeresults,keepresults,loadresults={},{},{} 
    if #NewResults>0 then
      for i,result in ipairs(NewResults) do
        for j,conduct in ipairs(Get) do 
          if conduct[1] then
            changeresults[#changeresults+1]={}
            changeresults[#changeresults].value=conduct[1]
            changeresults[#changeresults].address=result.address+conduct[2]
            changeresults[#changeresults].flags=conduct[3]
          else
            loadresults[#loadresults+1]={}
            loadresults[#loadresults].address=result.address+conduct[2]
            loadresults[#loadresults].flags=conduct[3]
          end
          if conduct[4] or conduct[5] then
            keepresults[#keepresults+1]={}
            if conduct[1] then
              keepresults[#keepresults].value=conduct[1]
            else
              keepresults[#keepresults].value=gg.getValues({[1]={address=result.address+conduct[2],flags=conduct[3]}})[1].value
            end
            keepresults[#keepresults].address=result.address+conduct[2]
            keepresults[#keepresults].flags=conduct[3]
            keepresults[#keepresults].freeze=conduct[5]
            keepresults[#keepresults].name=conduct[6]
          end 
        end 
      end
      gg.setValues(changeresults)
      gg.loadResults(loadresults)
      gg.addListItems(keepresults)
    else
      gg.toast("请勿在加载进度开启")
    end
  else
    gg.toast("请勿在加载进度开启")
  end
end

toMusic("欢迎使用落空内部")
  function interruptThread(thread)
	if thread then
		pcall(function()
			thread:interrupt()
		end)
	end
end

local floatingWindowManager = require('floatingWindowManager')
floatingWindowManager:init()


function syseek2(name,bian,smin,smax,nows,func)
smin = tonumber(smin) smax = tonumber(smax)
chajv[bian] = smax-smin
chazhi[bian] = 1-smin
if smin == nil then smin = 1 smax = 10 end
truesmin = 1
truesmax = truesmin+chajv[bian]
if not nows then nows = smin tnows = (smin-nows)
else
    tnows = (nows-smin)+1
end
if _ENV[bian] == nil then _ENV[bian] = nows end
if not name then name = "未设置" end
local names = name..guid()
rest = luajava.loadlayout({
    LinearLayout,
    layout_width = 'fill_parent',
    gravity = "center",
    layout_height = "wrap_content",
    {
        LinearLayout,
        layout_width = 'fill_parent',
        
        layout_height = "fill_parent",
        layout_marginTop = "5dp",
        layout_marginBottom = "5dp",
        layout_marginLeft = "0dp",
        layout_marginRight = "0dp",
        gravity = "center_vertical",
        background = luajava.loadlayout {
            GradientDrawable,
            color = "#22ffffff",
            cornerRadius = 12
        },
        {
            SeekBar,
            layout_width = '150dp',
            layout_height="30dp",
            --minHight=
            min = truesmin,
            max = truesmax,
            progress = tnows,
            splitTrack="false",
            maxHeight="10dp",
            --thumb=luajava.getBitmapDrawable("/sdcard/念川/图片/blueseek"),
            onSeekBarChange = {
                onProgressChanged = function(SeekBar, var2, var3)
                if not var3 then
                return
                end
                local resultvar = tonumber(string.sub(var2,0,-3))-chazhi[bian]
                luajava.runUiThread(function()
                    luajava.getIdValue(names):setText(name..":".. resultvar)
                end)
                _ENV[bian] = resultvar
                end,
            onStopTrackingTouch=function(SeekBar, var2, var3)
                luajava.newThread(function() gg.sleep(100) func(SeekBar:getProgress()) end):start()
                end,
            }},{
            TextView,
            gravity = "top",
            text = name..":"..nows,
            id = luajava.newId(names),
            layout_width = '100dp',
            layout_marginLeft = "5dp",
            layout_marginRight = "0dp",
        }
    }})

return rest
end
local function interruptThread(thread)
	if thread then
		pcall(function()
			thread:interrupt()
		end)
	end
end

local function getASyncThreadCallbak(func)
	return function()
		luajava.startThread(function()
			return pcall(func)
		end)
	end
end

local task
local function getSyncThreadCallbak(func)
	return function()
		if task then
			gg.toast('正在运行其它任务,再稍后!')
			return
		end
		luajava.startThread(function()
			task = true
			pcall(func)
			task = nil
		end)
	end
end

local function callSyncThreadCallbak(func)
	return getSyncThreadCallbak(func)()
end

local function findFunctionByName(name)
	local func = _ENV[name]
	if not isFunction(func) then
		gg.alert(string.format('不存在 %q 功能', name))
		return nil
	end
	return getSyncThreadCallbak(func)
end

local function newButtonLayout(name)
	if not isString(name) then
		return
	end

	local layout = {
		Button,
		background = floatingWindowManager:getStateListDrawable(),
		layout_width = 'match_parent',
		layout_margin = '5dp',
		text = name,
		textSize = '16sp',
		onClick = findFunctionByName(name)
	}

	return layout
end

local function newSwitchLayout(openName, closeName)
	if not isString(openName) then
		return
	end

	local layout = {
		Switch,
		layout_width = 'match_parent',
		text = openName,
		onCheckedChange = function(CompoundButton, state)
			local func
			if state then
				
				if isString(closeName) then
					CompoundButton:setText(closeName)
				end

				
				func = findFunctionByName(openName)
			else
			
				CompoundButton:setText(openName)

				if isString(closeName) then
					
					func = findFunctionByName(closeName)
				end
			end

			if isFunction(func) then

				func()
			end
		end
	}

	return layout
end


function syguid()
		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 开关(name,func1,func2)
		if func1 == nil then func1 = "" end
		if func2 == nil then func2 = "" end
		if type(func1) == "function" then
			return function()
				namers = _ENV[name]
				if namers ~= "开" then
					_ENV[name] = "开"
					func1()
					else
					_ENV[name] = "关"
					func2()
				end
			end
		end
	end

function newcheck(radio)
		firadio={LinearLayout,layout_width = 'match_parent',layout_height = "match_parent",orientation="vertical"}
		if type(radio[1])=="string" or type(radio[1])=="number" then
			firadio[#firadio+1]={TextView,text=radio[1],textColor="#ffffff",} end
		radios={LinearLayout,orientation="horizontal",gravity="center",background="#00C92E37",layout_width = 'match_parent',}
		for i=2,#radio do
			local name = radio[i][1]
			local func1 = radio[i][2]
			local func2 = radio[i][3]
			local nid = radio[i][4]
			if not name then name = "未设置" end
			nid = name..syguid()
			local func = 开关(nid,func1,func2)
			radios[#radios+1]={CheckBox,
				text=radio[i][1],
				textSize="9sp",
				textColor="#ffffff",
				onClick=function() luajava.newThread(function() pcall(func) end):start() end,
			}
		end
		firadio[#firadio+1]=radios
		return luajava.loadlayout(firadio)
	end
draw.text('落空内部v1 适用8.16.2', 200,100)
draw.setColor('#FF3F72FF')
draw.text('官群:419433066', 200,150)
draw.setColor('#FF3F72FF')
draw.text('作者:落空 QQ:2709510863',200,200)
draw.setColor('#FF3F72FF')
draw.text('认准本人快手号:3561893832',200,250)
draw.setColor('#FF3F72FF')
draw.text('落空内部v1', 150,300)
draw.setColor('#FF3F72FF')
draw.text('内部', 180,350)
draw.setColor('#FF3F72FF')

do
local ok, err = pcall(require, '中文模块')
if not ok then
	error('中文模块加载失败，尝试重启RLGG试试')
end
end

print(中文函数())
--创建自定义中文函数
中文函数({
	自定义1=print,
	自定义2=gg.alert,
})

打印('自定义1==print',自定义1==print)

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("747135368")
		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 readWrite(Search,Get,Type,Range,Name) gg.clearResults() gg.setRanges(Range) gg.setVisible(false) if Search[1][1]~=false then gg.searchAddress(Search[1][1],0xFFFFFFFF,Search[1][4] or Type,gg.SIGN_EQUAL,Search[1][5] or 1,Search[1][6] or -1) end gg.searchNumber(Search[1][2],Search[1][4] or Type,false,gg.SIGN_EQUAL,Search[1][5] or 1,Search[1][6] or -1) local count=gg.getResultCount() local result=gg.getResults(count) gg.clearResults() local data={} local base=Search[1][3] if (count > 0) then for i,v in ipairs(result) do v.isUseful=true end for k=2,#Search do local tmp={} local offset=Search[k][2] - base local num=Search[k][1] for i,v in ipairs(result) do tmp[#tmp+1]={} tmp[#tmp].address=v.address+offset tmp[#tmp].flags=Search[k][3] or Type end tmp=gg.getValues(tmp) for i,v in ipairs(tmp) do if v.flags==16 or v.flags==64 then values=tostring(v.value):sub(1,6) num=tostring(num):sub(1,6) else values=v.value end if tostring(values)~=tostring(num) then result[i].isUseful=false end end end for i,v in ipairs(result) do if (v.isUseful) then data[#data+1]=v.address end end if (#data > 0) then local t,t_={},{} local base=Search[1][3] for i=1,#data do for k,w in ipairs(Get) do offset=w[2] - base if w[1]==false then t_[#t_+1]={} t_[#t_].address=data[i]+offset t_[#t_].flags=Type th_=(th_) and th_+1 or 1 else t[#t+1]={} t[#t].address=data[i]+offset t[#t].flags=w[3] or Type t[#t].value=w[1] tg_=(tg_) and tg_+1 or 1 if (w[4]==true) then local item={} item[#item+1]=t[#t] item[#item].freeze=w[4] gg.addListItems(item) end end end end tg=(tg_) and "\n已修改"..tg_.."条数据" or "" th=(th_) and "\n已获取"..th_.."条数据" or "" gg.setValues(t) t_=gg.getValues(t_) gg.loadResults(t_) gg.toast("\n"..Name.."搜索成功！\n偏移到"..#data.."条数据"..tg..th) tg_,th_=nil,nil else gg.toast("\n"..Name.."开启失败",false) return false end else gg.toast(Name.."开启失败") return false end end

DWORD=gg.TYPE_DWORD  DOUBLE=gg.TYPE_DOUBLE  FLOAT=gg.TYPE_FLOAT WORD=gg.TYPE_WORD BYTE=gg.TYPE_BYTE XOR=gg.TYPE_XOR QWORD=gg.TYPE_QWORD
function nc_offset(addr,tablex,tt) for i,v in ipairs(tablex) do if v[4]==true then gg.addListItems({{address=addr+v[3],flags=v[2],value=v[1],freeze=v[4]}})else gg.setValues({{address=addr+v[3],flags=v[2],value=v[1]}}) end end gg.toast((tt or "").."开启成功") end
function getso(So_name) return gg.getRangesList(So_name)[1].start end
function BaAdd(add) t=gg.getValues({[1]={address=add,flags=4}}) return t[1].value&0xFFFFFFFF end
function readPointer(Add,Item) for i=1,(#Item-1) do Add=BaAdd(Add+Item[i]) end return Add+Item[#Item] end
function setvalue(add,value,falgs,dj) local WY={} WY[1]={} WY[1].address=add WY[1].value=value WY[1].flags=falgs if dj==true then WY[1].freeze=true gg.addListItems(WY) else gg.setValues(WY) end end
function getnc(Name,nc) local t=gg.getRangesList(Name) for i, v in ipairs(t) do if v.state==nc then return v.start end end end
function SearchWrite(Search, Write, Type)
    gg.clearResults()
    gg.setVisible(false)
    gg.searchNumber(Search[1][1], Type)
    local count = gg.getResultCount()
    local result = gg.getResults(count)
    gg.clearResults()
    local data = {} 
    local base = Search[1][2] 
    
   if (count > 0) then
        for i, v in ipairs(result) do
            v.isUseful = true 
        end

        for k=2, #Search do
            local tmp = {}
            local offset = Search[k][2] - base 
            local num = Search[k][1] 
            
            for i, v in ipairs(result) do
                tmp[#tmp+1] = {} 
                tmp[#tmp].address = v.address + offset  
                tmp[#tmp].flags = v.flags  
            end
            
            tmp = gg.getValues(tmp) 
            
            for i, v in ipairs(tmp) do
                if ( tostring(v.value) ~= tostring(num) ) then 
                    result[i].isUseful = false 
                end
            end
        end
          for i, v in ipairs(result) do
            if (v.isUseful) then 
                data[#data+1] = v.address
            end
        end
        
        if (#data > 0) then
           gg.toast("\n共修改"..#data.."条数据")
           local t = {}
           local base = Search[1][2]
           for i=1, #data do
               for k, w in ipairs(Write) do
                   offset = w[2] - base
                   t[#t+1] = {}
                   t[#t].address = data[i] + offset
                   t[#t].flags = Type
                   t[#t].value = w[1]
                   
                   if (w[3] == true) then
                       local item = {}
                       item[#item+1] = t[#t]
                       item[#item].freeze = true
                       gg.addListItems(item)
                   end
                   
               end
           end
           gg.setValues(t)
        else
            gg.toast("\n开启失败", false)
            return false
        end
    else
        gg.toast("\n开启失败")
        return false
    end
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 function SearchWrite(tb1, tb2, dataType, Name) local lt1={} local lt2={} local mm1={["主特征码"] = tb1[1][1],["类型"] = dataType } table.insert(lt1,1,mm1) for i=2 , #tb1 do local mm2={["副特征码"] = tb1[i][1],["偏移"] = tb1[i][2]} table.insert(lt1,i,mm2) end for i=1 , #tb2 do if tb2[i][2]~=nil then local mm3={["修改"] = tb2[i][1],["偏移"] = tb2[i][2]} table.insert(lt2,i,mm3) else local mm3={["修改"] = false,["偏移"] = tb2[i][1]} table.insert(lt2,i,mm3) end end LongTao(lt1, lt2 ) end function LongTao(Search, Write) gg.clearResults() gg.setVisible(false) lx=Search[1]["类型"] gg.searchNumber(Search[1]["主特征码"], lx) local count = gg.getResultCount() local result = gg.getResults(count) gg.clearResults() local data = {} if (count > 0) then gg.toast("共搜索 "..count.." 条数据") for i, v in ipairs(result) do v.isUseful = true end for k=2, #Search do local tmp = {} local num = Search[k]["副特征码"] if Search[k]["类型"]~= nil then lx =Search[k]["类型"] else lx = Search[1]["类型"] end for i, v in ipairs(result) do tmp[#tmp+1] = {} tmp[#tmp].address = v.address + Search[k]["偏移"] tmp[#tmp].flags = lx end tmp = gg.getValues(tmp) for i, v in ipairs(tmp) do if ( tostring(v.value) ~= tostring(num) ) then result[i].isUseful = false end end end for i, v in ipairs(result) do if (v.isUseful) then data[#data+1] = v.address end end if (#data > 0) then local t = {} for i=1, #data do for k, w in ipairs(Write) do if w["类型"] ~= nil then lx = w["类型"] else lx = Search[1]["类型"] end t[#t+1] = {} t[#t].address = data[i] + w["偏移"] t[#t].flags = lx if (w["修改"]~=nil) and (w["修改"]~=false) then t[#t].value = w["修改"] gg.setValues(t) if (w["冻结"] == true) then local item = {} item[#item+1] = t[#t] item[#item].freeze = w["冻结"] gg.addListItems(item) end end end end gg.loadResults(t) gg.toast("共偏移η"..#t.." 条数据ΔΘ") else gg.toast("未定位到数据！") return false end else gg.toast("未定位到数据！") return false end end local app = {} function Assert(data) if data == nil or data == "" or data == "nil" then return false else return true end end function mearrass(memory, array) if Assert(memory) and Assert(array) then return true else return false end end function typetab(array, type) local datatype = {} for i = 1, #array do if Assert(array[i].type) then table.insert(datatype, i, array[i].type) else if Assert(type) then table.insert(datatype, i, type) else return false end end end return true, datatype end function app.memorysearch(memory, array, type) gg.setVisible(false) local isok = mearrass(memory, array) if isok then local isok, datatype = typetab(array, type) if isok then if Assert(array[1].hv) then gg.clearResults() gg.setRanges(memory) gg.searchNumber(array[1].lv .. "~" .. array[1].hv, datatype[1]) else gg.clearResults() gg.setRanges(memory) gg.searchNumber(array[1].lv, datatype[1]) end if gg.getResultCount() == 0 then return false else local tab = {} local data = gg.getResults(gg.getResultCount()) gg.clearResults() for i = 1, #data do data[i].isok = true end for i = 2, #array do local t = {} local offset = array[i].offset for x = 1, #data do t[#t + 1] = {} t[#t].address = data[x].address + offset t[#t].flags = datatype[i] end local t = gg.getValues(t) for z = 1, #t do if Assert(array[i].hv) then if tonumber(t[z].value) < tonumber(array[i].lv) or tonumber(t[z].value) > tonumber(array[i].hv) then data[z].isok = false end else if tostring(t[z].value) ~= tostring(array[i].lv) then data[z].isok = false end end end end for i = 1, #data do if data[i].isok then tab[#tab + 1] = data[i].address end end if #tab > 0 then return true, tab else return false end end else print("type参数错误") gg.toast("type参数错误") os.exit() end else print("memory or array参数错误") gg.toast("memory or array参数错误") os.exit() end end function app.memoryread(addr, type) local t = {} t[1] = {} t[1].address = addr t[1].flags = type if #t > 0 then return true, gg.getValues(t)[1].value else return false end end function app.memorywrite(addr, type, value, freeze) local t = {} t[1] = {} t[1].address = addr t[1].flags = type t[1].value = value if #t > 0 then if Assert(freeze) then t[1].freeze = freeze return gg.addListItems(t) else return gg.setValues(t) end else return false end 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 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 lde,mnsj={},{Dj="0.01",dv={},lz="/sdcard/.zbb",r={}} lde.gre,lde.sbr,lde.srg,lde.crs=gg.getResults,gg.searchNumber,gg.setRanges,gg.clearResults function lde.qb()table.remove(bc,#bc)table.remove(bc,#bc)end function bv(a,b) if not b then b=","end if not tostring(a):find(b)then return{a}end local tab={}local i=0 while true do j=string.find(a,b,i+1) if not j then table.insert(tab,a:sub(i+1,#a)) break end table.insert(tab,a:sub(i+1,j-1)) i=j end return tab end function so(a,b,c) local csn=gg.getRanges() gg.setVisible(false) lde.srg(a[3]) lde.crs() lde.sbr(a[2],a[4]) local js=gg.getResultCount() local count=lde.gre(js) lde.crs() if #count~=0 then local lode,lope,lobe={},{},{} for p=1,#b do lode[p]={} for i=1,#count do lode[p][i]={} lode[p][i].address=count[i].address+b[p][2] if not b[p][3]then b[p][3]=a[4]end lode[p][i].flags=b[p][3]end lode[p]=gg.getValues(lode[p]) db=bv(b[p][1],"~") if not db[2]then db[2]=db[1]end for i=1,#lode[p] do if tonumber(lode[p][i].value)>=tonumber(db[1]) and tonumber(lode[p][i].value)<=tonumber(db[2]) then lope[#lope+1]={} lope[#lope]=count[i] end end if #lope==0 then lde.srg(csn)if p>11 then p=11 end return "开启失败" end count=lope lope={}end for i=1,#c do for n=1,#count do lope[#lope+1]={} lope[#lope].address=count[n].address+c[i][2] if not c[i][3]then c[i][3]=a[4]end lope[#lope].flags=c[i][3] if c[i][1] then lope[#lope].value=c[i][1] else lope[#lope].value=gg.getValues(lope)[#lope].value end if c[i][4] then lobe[#lobe+1]={} lobe[#lobe]=lope[#lope] table.remove(lope,#lope) end if c[i][4]==1 then lobe[#lobe].freeze=true elseif c[i][4]==2 then lobe[#lobe].freeze=false end if c[i][5] then lobe[#lobe].name=c[i][5] end end end gg.setValues(lope) gg.addListItems(lobe) lde.srg(csn) return a[1].."开启成功" else lde.srg(csn) return a[1].."开启失败!!!" end end function Mswrite(read,write) 	gg.clearResults() 	gg.setRanges(read["内存"]) 	gg.setVisible(false) 	gg.searchNumber(read["主特征码"],read["类型"]) 	if gg.getResultCount()>0 then 		local Result=gg.getResults(gg.getResultCount()) 		gg.clearResults() 		for i=1,#read do 			local t={} 			for e,v in ipairs(Result) do 				t[#t+1]={address=v.address+read[i]["偏移"],flags=read[i]["类型"]} 			end 			t=gg.getValues(t) 			for _a,x in ipairs(t) do 				if x.value~=read[i]["值"] then 					Result[_a]=nil 				end 			end 			local MS={} 			for i,v in pairs(Result) do 				MS[#MS+1]=Result[i] 			end 			Result=MS 		end 		if(#Result>0)then 			local data={{},{}} 			for i,v in ipairs(Result) do 				for a,x in ipairs(write) do 					if x["冻结"]==true then 						data[2][#data[2]+1]={address=v.address+x["偏移"],flags=x["类型"],value=x["值"],freeze=true} 					else 						data[1][#data[1]+1]={address=v.address+x["偏移"],flags=x["类型"],value=x["值"]} 					end 				end 			end 			gg.setValues(data[1]) 			gg.addListItems(data[2]) 			gg.toast((read["功能名称"] or read["名称"] or read["name"] or "").."开启成功,共搜索"..#Result.."条地址已修改"..(#data[1]+#data[2]).."条数据") 		else 			gg.toast((read["功能名称"] or read["名称"] or read["name"] or "").."修改失败") 		end 	else 		gg.toast((read["功能名称"] or read["名称"] or read["name"] or "").."开启失败,未搜索到数据") 	end 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 search(ss,lx,nc,dz1,dz2) if ss~=nil then if lx~=nil then if nc==nil then nc=32 end gg.setRanges(nc) if dz1==nil then dz1="-1" end if dz2==nil then dz1="0" end gg.searchNumber(ss,lx,false,536870912,dz1,dz2) sl=gg.getResultCount() if sl~=0 then sj=gg.getResults(sl) gg.toast("搜索到 "..sl.." 个结果") gg.clearResults() else gg.toast("未搜索到结果") end else gg.toast("无搜索值类型") end else gg.toast("无需搜索值") end end function py1(value,lx,py) if #sj~=nil then z1={} z2={} for i=1,#sj do z1[i]={} z1[i].address=sj[i].address+py z1[i].flags=lx end z1=gg.getValues(z1) for i=1,#sj do if z1[i].value==value then z2[#z2+1]={} z2[#z2]=sj[i] end end sj=z2 z1={} z2={} gg.toast("共偏移 "..#sj.." 个数据") else gg.toast("没有搜索数据") end end function py2(value,lx,py) if #sj~=nil then z1={} z2={} for i=1,#sj do z1[i]={} z1[i].address=sj[i].address+py z1[i].flags=lx end z1=gg.getValues(z1) for i=1,#sj do if z1[i].value~=value then z2[#z2+1]={} z2[#z2]=sj[i] end end sj=z2 z1={} z2={} gg.toast("共偏移 "..#sj.." 个数据") else gg.toast("没有搜索数据") end end function xg1(value,lx,py,dj) if #sj~=nil then z={} for i=1,#sj do z[i]={} z[i].address=sj[i].address+py z[i].flags=lx z[i].value=value if dj==true then z[i].freeze=true end end if dj==true then gg.addListItems(z) else gg.clearList() gg.setValues(z) end gg.toast("共修改 "..#z.." 个数据") else gg.toast("没有搜索数据") end end function xg2(bz,value,lx,py,dj) if #bz~=nil then z={} for i=1,#bz do z[i]={} z[i].address=bz[i].address+py z[i].flags=lx z[i].value=value if dj==true then z[i].freeze=true end end if dj==true then gg.addListItems(z) else gg.clearList() gg.setValues(z) end gg.toast("共修改 "..#z.." 个数据") else gg.toast("没有搜索数据") end end function bc(bz) if sj~=nil then _ENV[bz]=sj else gg.toast("无数据") end end function BaAdd(add) t=gg.getValues({[1]={address=add,flags=4}}) return t[1].value&0xFFFFFFFF end function set(dz,xg,lx,dj) if dj=="true" then gg.addListItems({{address=dz,flags=lx,value=xg,freeze=true}}) else gg.setValues({{address=dz,flags=lx,value=xg}}) end gg.toast("已修改完成~") end
-------------------------------------------------------------------------------------------------------------
DWORD = gg.TYPE_DWORD
DOUBLE = gg.TYPE_DOUBLE
FLOAT = gg.TYPE_FLOAT
WORD = gg.TYPE_WORD
BYTE = gg.TYPE_BYTE
XOR = gg.TYPE_XOR
QWORD = gg.TYPE_QWORD
-- 【【 核心代码，不懂勿动 】】
--   JF Script编辑器

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

gg.edits = function(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

function Mswrite(search)
	gg.setVisible(false)
	gg.clearResults()
	gg.setRanges(search[1][3])
	if type(search[1][4]) == "string" then
		gg.searchAddress(search[1][4])
	end
	gg.searchNumber(search[1][1], search[1][2])
	if gg.getResultsCount() == 0 then
		return gg.toast("搜索失败")
	else
		local result = gg.getResults(gg.getResultsCount())
		gg.clearResults()
		for i = 2, #search do
			local mtp = {}
			for w, r in ipairs(result) do
				mtp[#mtp + 1] = {address = r.address + search[i][2], flags = search[i][3]}
			end
			mtp = gg.getValues(mtp)
			local hook = {}
			for w, r in ipairs(mtp) do
				if r.value == search[i][1] then
					hook[#hook + 1] = result[w]
				end
			end
			result = hook
		end
		gg.toast("共搜索到" .. #result .. "条数据")
		return result
	end
end

function SearchWrite(read, write)
	gg.clearResults()
	gg.setRanges(read["内存"])
	gg.setVisible(false)
	gg.searchNumber(read["主特征码"], read["类型"])
	if gg.getResultCount() > 0 then
		local Result = gg.getResults(gg.getResultCount())
		gg.clearResults()
		for i = 1, #read do
			local t = {}
			for e, v in ipairs(Result) do
				t[#t + 1] = {address = v.address + read[i]["偏移"], flags = read[i]["类型"]}
			end
			t = gg.getValues(t)
			for _a, x in ipairs(t) do
				if x.value ~= read[i]["值"] then
					Result[_a] = nil
				end
			end
			local MS = {}
			for i, v in pairs(Result) do
				MS[#MS + 1] = Result[i]
			end
			Result = MS
		end
		if (#Result > 0) then
			local data = {{}, {}}
			for i, v in ipairs(Result) do
				for a, x in ipairs(write) do
					if x["冻结"] == true then
						data[2][#data[2] + 1] = {address = v.address + x["偏移"], flags = x["类型"], value = x["值"], freeze = true}
					else
						data[1][#data[1] + 1] = {address = v.address + x["偏移"], flags = x["类型"], value = x["值"]}
					end
				end
			end
			gg.setValues(data[1])
			gg.addListItems(data[2])
			gg.toast((read["功能名称"] or read["名称"] or read["name"] or "") .. "开启成功,共搜索" .. #Result .. "条地址\n已修改" .. (#data[1] + #data[2]) .. "条数据")
		else
			gg.toast((read["功能名称"] or read["名称"] or read["name"] or "") .. "修改失败")
		end
	else
		gg.toast((read["功能名称"] or read["名称"] or read["name"] or "") .. "开启失败,未搜索到数据")
	end
end

function xqmnb(x)
	local tp1 = {["内存"] = x[1]["memory"], ["主特征码"] = x[3]["value"], ["类型"] = x[3]["type"], ["name"] = x[2]["name"]}
	for i = 4, #x do
		tp1[#tp1 + 1] = {["值"] = x[i]["lv"], ["偏移"] = x[i].offset, ["类型"] = x[i].type}
	end
	local tp2 = {}
	for i, v in ipairs(qmxg) do
		tp2[#tp2 + 1] = {["值"] = v.value, ["类型"] = v.type, ["偏移"] = v.offset, ["冻结"] = (v.freeze or nil)}
	end
	SearchWrite(tp1, tp2)
end

function readValue(add, flags)
	local t = gg.getValues({[1] = {address = add, flags = flags}})
	return t[1].value
end

function readAdd(add)
	local t = gg.getValues({[1] = {address = add, flags = 4}})
	return t[1].value & 0xFFFFFFFF
end

function xtnb(Search,Get,Type,Range,Name) gg.clearResults() gg.setRanges(Range) gg.setVisible(false) if Search[1][1]~=false then gg.searchAddress(Search[1][1],0xFFFFFFFF,Search[1][4] or Type,gg.SIGN_EQUAL,Search[1][5] or 1,Search[1][6] or -1) end gg.searchNumber(Search[1][2],Search[1][4] or Type,false,gg.SIGN_EQUAL,Search[1][5] or 1,Search[1][6] or -1) local count=gg.getResultCount() local result=gg.getResults(count) gg.clearResults() local data={} local base=Search[1][3] if (count > 0) then for i,v in ipairs(result) do v.isUseful=true end for k=2,#Search do local tmp={} local offset=Search[k][2] - base local num=Search[k][1] for i,v in ipairs(result) do tmp[#tmp+1]={} tmp[#tmp].address=v.address+offset tmp[#tmp].flags=Search[k][3] or Type end tmp=gg.getValues(tmp) for i,v in ipairs(tmp) do if v.flags==16 or v.flags==64 then values=tostring(v.value):sub(1,6) num=tostring(num):sub(1,6) else values=v.value end if tostring(values)~=tostring(num) then result[i].isUseful=false end end end for i,v in ipairs(result) do if (v.isUseful) then data[#data+1]=v.address end end if (#data > 0) then local t,t_={},{} local base=Search[1][3] for i=1,#data do for k,w in ipairs(Get) do offset=w[2] - base if w[1]==false then t_[#t_+1]={} t_[#t_].address=data[i]+offset t_[#t_].flags=Type th_=(th_) and th_+1 or 1 else t[#t+1]={} t[#t].address=data[i]+offset t[#t].flags=w[3] or Type t[#t].value=w[1] tg_=(tg_) and tg_+1 or 1 if (w[4]==true) then local item={} item[#item+1]=t[#t] item[#item].freeze=w[4] gg.addListItems(item) end end end end tg=(tg_) and "\n已修改"..tg_.."条数据" or "" th=(th_) and "\n已获取"..th_.."条数据" or "" gg.setValues(t) t_=gg.getValues(t_) gg.loadResults(t_) gg.toast("\n"..Name.."搜索成功！\n偏移到"..#data.."条数据"..tg..th) tg_,th_=nil,nil else gg.toast("\n"..Name.."开启失败",false) return false end else gg.toast(Name.."开启失败") return false end end


function editData(qmnb,qmxg)gg.setVisible(false)gg.clearResults()qmnbv=qmnb[3]["value"]or qmnb[3][1]qmnbt=qmnb[3]["type"]or qmnb[3][2]qmnbn=qmnb[2]["name"]or qmnb[2][1]gg.setRanges(qmnb[1]["memory"]or qmnb[1][1])gg.searchNumber(qmnbv,qmnbt)gg.refineNumber(qmnbv,qmnbt)sz=gg.getResultCount()if sz==0 then gg.toast(qmnbn.."开启失败")else sl=gg.getResults(999999)for i=1,sz do pdsz=true for v=4,#qmnb do if pdsz==true then pysz={{}}pysz[1].address=sl[i].address+(qmnb[v]["offset"]or qmnb[v][2])pysz[1].flags=qmnb[v]["type"]or qmnb[v][3]szpy=gg.getValues(pysz)tzszpd=tostring(qmnb[v]["lv"]or qmnb[v][1]):gsub(",","")pyszpd=tostring(szpy[1].value):gsub(",","")if tzszpd==pyszpd then pdjg=true pdsz=true else pdjg=false pdsz=false end end end if pdjg==true then szpy=sl[i].address for x=1,#qmxg do xgsz=qmxg[x]["value"]or qmxg[x][1]xgpy=szpy+(qmxg[x]["offset"]or qmxg[x][2])xglx=qmxg[x]["type"]or qmxg[x][3]xgdj=qmxg[x]["freeze"]or qmxg[x][4]xg={{address=xgpy,flags=xglx,value=xgsz}}if xgdj==true then xg[1].freeze=xgdj gg.addListItems(xg)else gg.setValues(xg)end end xgjg=true end end if xgjg==true then gg.toast(qmnbn.."开启成功")else gg.toast(qmnbn.."开启失败")end end end

function fastsearch(search, write)
	gg.setVisible(false)
	gg.clearResults()
	gg.setRanges(search[1][3])
	gg.searchNumber(search[1][1], search[1][2])
	if gg.getResultsCount() == 0 then
		gg.toast("Not Found")
		return false
	else
		local result = gg.getResults(gg.getResultsCount())
		gg.clearResults()
		for i = 2, #search do
			local mtp = {}
			for w, r in ipairs(result) do
				mtp[#mtp + 1] = { address = r.address + search[i][2], flags = search[i][3] }
			end
			mtp = gg.getValues(mtp)
			local hook = {}
			for w, r in ipairs(mtp) do
				if r.value == search[i][1] then
					hook[#hook + 1] = result[w]
				end
			end
			result = hook
		end
		if #result > 0 then
			local tb = {{}, {}}
			for i, v in ipairs(result) do
				--- 遍历每个结果
				for _, vv in ipairs(write) do
					local p = {address = v.address + vv[2], flags = vv[3], value = vv[1], freeze = vv[4]}
					if vv[4] then --- true 就是冻结
						table.insert(tb[2], p)
					else
						table.insert(tb[1], p)
					end
				end
			end
			gg.addListItems(tb[2])
			gg.setValues(tb[1])
			gg.toast("修改成功, 共修改" .. (#tb[1] + #tb[2]) .. "条结果")
		else
			gg.toast("Not Found")
		end
	end
end

function readValue(add, flags)
	local t = gg.getValues({[1] = {address = add, flags = flags}})
	return t[1].value
end

function readAdd(add)
	local t = gg.getValues({[1] = {address = add, flags = 4}})
	return t[1].value & 0xFFFFFFFF
end
-------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------

local il2cppStart = 0
for k, v in pairs(gg.getRangesList('libil2cpp.so$')) do
	if (v.state == 'Xa') then
		il2cppStart = v['start']
		break
	end
end
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------
function nc_offset(addr, tablex, tt)
	for i, v in ipairs(tablex) do
		if v[4] == true then
			gg.addListItems({{address = addr + v[3], flags = v[2], value = v[1], freeze = v[4]}})
		else
			gg.setValues({{address = addr + v[3], flags = v[2], value = v[1]}})
		end
	end
	gg.toast((tt or "") .. "修改成功,修改1个值")
end
function getso(So_name)
	return gg.getRangesList(So_name)[1].start
end

function BaAdd(add)
	t = gg.getValues({[1] = {address = add, flags = 4}})
	return t[1].value & 0xFFFFFFFF
end
function readPointer(Add, Item)
	for i = 1, (#Item - 1) do
		Add = BaAdd(Add + Item[i])
	end
	return Add + Item[#Item]
end
function setvalue(add, value, falgs, dj)
	local WY = {}
	WY[1] = {}
	WY[1].address = add
	WY[1].value = value
	WY[1].flags = falgs
	if dj == true then
		WY[1].freeze = true
		gg.addListItems(WY)
	else
		gg.setValues(WY)
	end
end
function getnc(Name, nc)
	local t = gg.getRangesList(Name)
	for i, v in ipairs(t) do
		if v.state == nc then
			return v.start
		end
	end
end


function setvalue(add,lv,falg) gg.setValues({{address=add,flags=falg,value=lv}}) end
function readAdd(add)
t=gg.getValues({[1]={address=add,flags=4}})
add=string.format("%X",t[1].value)
if (#add)==16 then add=add:sub(9,16) end
if (#add)==1 then add=add.."0000000" else
add=string.format("%d","0x"..add)
end
return add
end
-------------------------------------------------------------------------------------------------------------
function hmhqdz(address,hmlx)
hmhq = {}
hmhq[1] = {}
hmhq[1].address = address
hmhq[1].flags = hmlx
huanmie=gg.getValues(hmhq)
hm=huanmie[1]['value']
return hm
end
--获取地址内存值配置不懂勿动

function editData(qmnb,qmxg)gg.setVisible(false)gg.clearResults()qmnbv=qmnb[3]["value"]or qmnb[3][1]qmnbt=qmnb[3]["type"]or qmnb[3][2]qmnbn=qmnb[2]["name"]or qmnb[2][1]gg.setRanges(qmnb[1]["memory"]or qmnb[1][1])gg.searchNumber(qmnbv,qmnbt)gg.refineNumber(qmnbv,qmnbt)sz=gg.getResultCount()if sz==0 then gg.toast(qmnbn.."警告⚠️:没有值可修改")else sl=gg.getResults(999999)for i=1,sz do pdsz=true for v=4,#qmnb do if pdsz==true then pysz={{}}pysz[1].address=sl[i].address+(qmnb[v]["offset"]or qmnb[v][2])pysz[1].flags=qmnb[v]["type"]or qmnb[v][3]szpy=gg.getValues(pysz)tzszpd=tostring(qmnb[v]["lv"]or qmnb[v][1]):gsub(",","")pyszpd=tostring(szpy[1].value):gsub(",","")if tzszpd==pyszpd then pdjg=true pdsz=true else pdjg=false pdsz=false end end end if pdjg==true then szpy=sl[i].address for x=1,#qmxg do xgsz=qmxg[x]["value"]or qmxg[x][1]xgpy=szpy+(qmxg[x]["offset"]or qmxg[x][2])xglx=qmxg[x]["type"]or qmxg[x][3]xgdj=qmxg[x]["freeze"]or qmxg[x][4]xg={{address=xgpy,flags=xglx,value=xgsz}}if xgdj==true then xg[1].freeze=xgdj gg.addListItems(xg)else gg.setValues(xg)end end xgjg=true end end if xgjg==true then gg.toast(qmnbn.."修改成功,修改1个值")else gg.toast(qmnbn.."警告⚠️:没有值可修改")end end end
-- 【【 核心代码，不懂勿动 】】
--   JF Script编辑器
D=gg.TYPE_DWORD E=gg.TYPE_DOUBLE F=gg.TYPE_FLOAT W=gg.TYPE_WORD B=gg.TYPE_BYTE X=gg.TYPE_XOR Q=gg.TYPE_QWORD
readPointer = function(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
gg.edits = function(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])  end

floatingWindowManager:newWindow(('落空内部v1'):format(floatingWindowManager.version), {
	onCreate = function(floatingWindow)
		floatingWindow:addlayout({
			ScrollView,
			layout_margin = '10dp',
			background="",
			layout_width = 'match_parent',
			layout_height = 'match_parent',
			{
				LinearLayout,
				background = "",
				layout_width = 'match_parent',
				layout_height = 'match_parent',
				orientation = 'vertical',
				padding = '10dp',
				{
					Button,
					background = floatingWindowManager:getStateListDrawable(),
					layout_width = 'match_parent',
					layout_margin = '5dp',
					text = '选择进程',
					textSize = '16sp',
					onClick = function()
					gg.setProcessX()
					end
				},				
				{
					Button,
					background = floatingWindowManager:getStateListDrawable(),
					layout_width = 'match_parent',
					layout_margin = '5dp',
					text = '游戏设置',
					textSize = '16sp',
					onClick = function()
						floatingWindowManager:start('游戏设置')
					end
				},				
				{
					Button,
					background = floatingWindowManager:getStateListDrawable(),
					layout_width = 'match_parent',
					layout_margin = '5dp',
					text = '自用功能',
					textSize = '16sp',
					onClick = function()
						floatingWindowManager:start('自用功能')
					end
				},
				{
									Button,
					background = floatingWindowManager:getStateListDrawable(),
					layout_width = 'match_parent',
					layout_margin = '5dp',
					text = '基址功能',
					textSize = '16sp',
					onClick = function()
						floatingWindowManager:start('基址功能')
					end
				},
				{
					Button,
					background = floatingWindowManager:getStateListDrawable(),
					layout_width = 'match_parent',
					layout_margin = '5dp',
					text = '角色功能',
					textSize = '16sp',
					onClick = function()
						floatingWindowManager:start('角色功能')
					end
				},
				{
					Button,
					background = floatingWindowManager:getStateListDrawable(),
					layout_width = 'match_parent',
					layout_margin = '5dp',
					text = '娱乐功能',
					textSize = '16sp',
					onClick = function()
						floatingWindowManager:start('娱乐功能')
					end
				},
				{
				Button,
					background = floatingWindowManager:getStateListDrawable(),
					layout_width = 'match_parent',
					layout_margin = '5dp',
					text = '连发功能',
					textSize = '16sp',
					onClick = function()
						floatingWindowManager:start('连发功能')
					end
				},
				{
					Button,
					background = floatingWindowManager:getStateListDrawable(),
					layout_width = 'match_parent',
					layout_margin = '5dp',
					text = '自调功能',
					textSize = '16sp',
					onClick = function()
						floatingWindowManager:start('自调功能')
					end
			},				
			{
					Button,
					background = floatingWindowManager:getStateListDrawable(),
					layout_width = 'match_parent',
					layout_margin = '5dp',
					text = '传送功能',
					textSize = '16sp',
					onClick = function()
						floatingWindowManager:start('传送功能')
					end
				},
			{
					Button,
					background = floatingWindowManager:getStateListDrawable(),
					layout_width = 'match_parent',
					layout_margin = '5dp',
					text = '音乐功能',
					textSize = '16sp',
					onClick = function()
						floatingWindowManager:start('音乐功能')
					end
				},
			}
		})
	end,
	onDestroy = function()
		gg.alert('欢迎下次使用')
	end	
-------------------------------------------------------------------------------------------
})
floatingWindowManager:newWindow('游戏设置', {
	onCreate = function(floatingWindow)

		floatingWindow:addlayout({
			ScrollView,
			layout_width = 'match_parent',
			layout_height = 'match_parent',
			{
				LinearLayout,
				background = floatingWindowManager:getStateListDrawable(),
				background="",
				layout_width = 'match_parent',
				layout_height = 'match_parent',
				orientation = 'vertical',
				padding = '10dp',
changan.button("登录防闪",
function()
gg.clearResults()
	 gg.setRanges(8)
	 gg.searchNumber("778,923,875", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
	 gg.searchNumber("", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
	 gg.getResults(100)
	 gg.editAll("-1", gg.TYPE_DWORD)
	 gg.clearResults()
	 local t = {"libtersafe2.so", "Cd"}
local tt = {0xA8}
local ttt = S_Pointer(t, tt)
gg.setValues({{address = ttt, flags = 4, value = 2147483647}})
local t = {"libBugly-ext.so", "Cd"}
local tt = {0x57C}
local ttt = S_Pointer(t, tt)
gg.setValues({{address = ttt, flags = 4, value = 2147483647}})
local t = {"libtprt.so", "Cd"}
local tt = {0xFA40}
local ttt = S_Pointer(t, tt)
gg.setValues({{address = ttt, flags = 4, value = 2147483647}})
	 gg.toast("防闪注入成功")
gg.alert('开启成功')
end),
changan.button("基址初始[必开]",
function()
function BaseAddressD(address, value)
  local tt = {}
  tt[1] = {}
  tt[1].address = so + address
  tt[1].flags = 4
  tt[1].value = value
  tt[2] = {}
  tt[2].address = so + address + 0x4
  tt[2].flags = 4
  tt[2].value = '~A BX LR'
  gg.setValues(tt)
end

so = gg.getRangesList('libil2cpp.so')[1].start
function BaseAddressQ(address, value)
  local tt = {}
  tt[1] = {}
  tt[1].address = so + address
  tt[1].flags = 4
  tt[1].value = value
  tt[2] = {}
  tt[2].address = so + address + 0x4
  tt[2].flags = 4
  tt[2].value = '-494030820'
  gg.setValues(tt)
end

so = gg.getRangesList('libil2cpp.so')[1].start
function BaseAddressB(address, value)
  local tt = {}
  tt[1] = {}
  tt[1].address = so + address
  tt[1].flags = 4
  tt[1].value = value
  tt[2] = {}
  tt[2].address = so + address + 0x4
  tt[2].flags = 4
  tt[2].value = '-494030842'
  gg.setValues(tt)
end

so = gg.getRangesList('libil2cpp.so')[1].start
function BaseAddressA(address, value)
  local tt = {}
  tt[1] = {}
  tt[1].address = so + address
  tt[1].flags = 4
  tt[1].value = value
  tt[2] = {}
  tt[2].address = so + address + 0x4
  tt[2].flags = 4
  tt[2].value = '-494030840'
  gg.setValues(tt)
end

so = gg.getRangesList('libil2cpp.so')[1].start
function BaseAddressC(address, value)
  local tt = {}
  tt[1] = {}
  tt[1].address = so + address
  tt[1].flags = 4
  tt[1].value = value
  tt[2] = {}
  tt[2].address = so + address + 0x4
  tt[2].flags = 4
  tt[2].value = '-494030824'
  gg.setValues(tt)
end

so = gg.getRangesList('libil2cpp.so')[1].start
function BaseAddressAA(address, value)
  local tt = {}
  tt[1] = {}
  tt[1].address = so + address
  tt[1].flags = 4
  tt[1].value = value
  tt[2] = {}
  tt[2].address = so + address + 0x4
  tt[2].flags = 4
  tt[2].value = '-494030832'
  gg.setValues(tt)
end

so = gg.getRangesList('libil2cpp.so')[1].start
function BaseAddressF(address, value)
  local tt = {}
  tt[1] = {}
  tt[1].address = so + address
  tt[1].flags = 16
  tt[1].value = value
  gg.setValues(tt)
end

so = gg.getRangesList('libil2cpp.so')[1].start
function BaseAddressZZZ(address, value)
  local tt = {}
  tt[1] = {}
  tt[1].address = so + address
  tt[1].flags = 32
  tt[1].value = value
  gg.setValues(tt)
end

so = gg.getRangesList('libil2cpp.so')[1].start
function BaseAddressY(address, value)
  local tt = {}
  tt[1] = {}
  tt[1].address = so + address
  tt[1].flags = 4
  tt[1].value = value
  gg.setValues(tt)
end
gg.alert('初始化成功 可以使用基址功能了')
end),
changan.button("清除日志[登录]",
function()
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.m4399/files/game_log.txt")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.m4399/files/tombstone_00")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.m4399/files/tombstone_01")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.m4399/files/tombstone_02")
--删除4399版本日志
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.nearme.gamecenter/files/game_log.txt")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.nearme.gamecenter/files/tombstone_00")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.nearme.gamecenter/files/tombstone_01")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.nearme.gamecenter/files/tombstone_02")
--删除OPPO版本日志
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz/files/game_log.txt")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz/files/tombstone_00")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz/files/tombstone_01")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz/files/tombstone_02")
--删除好游快爆版本日志
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.huawei/files/game_log.txt")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.huawei/files/tombstone_00")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.huawei/files/tombstone_01")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.huawei/files/tombstone_02")
--删除华为版本日志
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.mi/files/game_log.txt")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.mi/files/tombstone_00")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.mi/files/tombstone_01")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.mi/files/tombstone_02")
--删除小米版本日志
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.vivo/files/game_log.txt")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.vivo/files/tombstone_00")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.vivo/files/tombstone_01")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.vivo/files/tombstone_02")
--删除vivo版本日志
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.uc/files/game_log.txt")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.uc/files/tombstone_00")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.uc/files/tombstone_01")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.uc/files/tombstone_02")
--删除九游版本日志
os.remove("storage/emulated/0/Android/data/com.tencent.tmgp.bairimeng.dmmdzz/files/game_log.txt")
os.remove("storage/emulated/0/Android/data/com.tencent.tmgp.bairimeng.dmmdzz/files/tombstone_00")
os.remove("storage/emulated/0/Android/data/com.tencent.tmgp.bairimeng.dmmdzz/files/tombstone_01")
os.remove("storage/emulated/0/Android/data/com.tencent.tmgp.bairimeng.dmmdzz/files/tombstone_02")
--删除应用宝版本日志
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.meta/files/game_log.txt")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.meta/files/tombstone_00")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.meta/files/tombstone_01")
os.remove("storage/emulated/0/Android/data/com.bairimeng.dmmdzz.meta/files/tombstone_02")
--删除233版本日志
os.remove("/storage/emulated/0/Android/data/com.bairimeng.dmmdzz.qihoo/files/game_log.txt")
os.remove("/storage/emulated/0/Android/data/com.bairimeng.dmmdzz.qihoo/files/tombstone_00")
os.remove("/storage/emulated/0/Android/data/com.bairimeng.dmmdzz.qihoo/files/tombstone_01")
os.remove("/storage/emulated/0/Android/data/com.bairimeng.dmmdzz.qihoo/files/tombstone_02")
--删除360版本日志
os.remove("/storage/emulated/0/Android/data/com.nxkj.gybb13/gameplugins/com.bairimeng.dmmdzz.m7723.bazhang/files/game_log.txt")
os.remove("/storage/emulated/0/Android/data/com.nxkj.gybb13/gameplugins/com.bairimeng.dmmdzz.m7723.bazhang/files/tombstone_00")
os.remove("/storage/emulated/0/Android/data/com.nxkj.gybb13/gameplugins/com.bairimeng.dmmdzz.m7723.bazhang/files/tombstone_01")
os.remove("/storage/emulated/0/Android/data/com.nxkj.gybb13/gameplugins/com.bairimeng.dmmdzz.m7723.bazhang/files/tombstone_02")
--删除7723版本日志
gg.alert("开启成功")
end),
changan.button("隐藏辅助-二三",
function()
gg.setConfig("隐藏辅助", 23)
gg.toast("隐藏辅助设置成功")
end),
changan.button("运行内存--三",
function()
gg.setConfig("运行守护", 3)
gg.toast('运行内存设置成功')
end),
changan.button("冻结间隔--零",
function()
gg.setConfig("冻结间隔", 0)	
gg.toast('按钮')
end),
changan.button("全局离线[局内]",
function()
gg.clearResults()
gg.setRanges(16384)
gg.searchNumber("1445669757", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
gg.refineNumber("", gg.TYPE_DWORD)
gg.getResults(100)
gg.editAll("16843522", gg.TYPE_DWORD)
gg.clearResults()
gg.setRanges(32768)
gg.searchNumber("1445669757", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
gg.refineNumber("", gg.TYPE_DWORD)
gg.getResults(100)
gg.editAll("16843522", gg.TYPE_DWORD)
gg.alert("全局离线开启成功[每局开一次]")
end),
changan.button("举报过检[大厅]",
function()
	 gg.clearResults()
	 gg.setRanges(16384)
	 gg.searchNumber("281,479,288,455,169;72,339,073,309,671,425;1,103,823,437,825", gg.TYPE_QWORD, false, gg.SIGN_EQUAL, 0, -1)
	 gg.searchNumber("", gg.TYPE_QWORD, false, gg.SIGN_EQUAL, 0, -1)
	 jg=gg.getResults(100)
	 sl=gg.getResultCount()
	 for i = 1, sl do
	 	 dzy=jg[i].address
	 	 gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_QWORD,freeze = true,value = 0}})
	 end
	 gg.toast("")
	 gg.clearResults()


	 gg.clearResults()
	 gg.setRanges(16384)
	 gg.searchNumber("297,237,583,998,484,480;288,239,172,246,831,106;288,230,376,153,808,898", gg.TYPE_QWORD, false, gg.SIGN_EQUAL, 0, -1)
	 gg.searchNumber("", gg.TYPE_QWORD, false, gg.SIGN_EQUAL, 0, -1)
	 jg=gg.getResults(100)
	 sl=gg.getResultCount()
	 for i = 1, sl do
	 	 dzy=jg[i].address
	 	 gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_QWORD,freeze = true,value = 0}})
	 end
	 gg.toast("")
	 gg.clearResults()



	 gg.clearResults()
	 gg.setRanges(16384)
	 gg.searchNumber("2,305,843,077,937,364,992;18,014,467,765,829,648;2,305,913,446,681,542,672", gg.TYPE_QWORD, false, gg.SIGN_EQUAL, 0, -1)
	 gg.searchNumber("", gg.TYPE_QWORD, false, gg.SIGN_EQUAL, 0, -1)
	 jg=gg.getResults(100)
	 sl=gg.getResultCount()
	 for i = 1, sl do
	 	 dzy=jg[i].address
	 	 gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_QWORD,freeze = true,value = 0}})
	 end
	 gg.toast("")
	 gg.clearResults()



	 gg.clearResults()
	 gg.setRanges(16384)
	 gg.searchNumber("4,613,937,818,274,627,584;4,755,801,206,536,798,208", gg.TYPE_QWORD, false, gg.SIGN_EQUAL, 0, -1)
	 gg.searchNumber("", gg.TYPE_QWORD, false, gg.SIGN_EQUAL, 0, -1)
	 jg=gg.getResults(100)
	 sl=gg.getResultCount()
	 for i = 1, sl do
	 	 dzy=jg[i].address
	 	 gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_QWORD,freeze = true,value = 0}})
	 end
	 gg.toast("")
	 gg.clearResults()



	 gg.clearResults()
	 gg.setRanges(16384)
	 gg.searchNumber("16,842,753", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
	 gg.searchNumber("", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
	 jg=gg.getResults(100)
	 sl=gg.getResultCount()
	 for i = 1, sl do
	 	 dzy=jg[i].address
	 	 gg.addListItems({[1] = {address = dzy,flags = gg.TYPE_DWORD,freeze = true,value = 0}})
	 end
	 gg.toast("防封开启成功 奔放吧")
	 gg.clearResults()
gg.alert('防封开启成功，局内遇举报可大退')
end),
changan.button("防检过环[大厅]",
function()
--libunity.so + 0x847BE4 -> 0x5B -> 0xA0
local addr = readPointer("libunity.so", {8682468, 91, 160}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x6E6F10 -> 0x66 -> 0x8C
local addr = readPointer("libunity.so", {7237392, 102, 140}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x6E6F10 -> 0x66 -> 0x98
local addr = readPointer("libunity.so", {7237392, 102, 152}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x6E6F10 -> 0x66 -> 0x78
local addr = readPointer("libunity.so", {7237392, 102, 120}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x847BE4 -> 0x67 -> 0x94
local addr = readPointer("libunity.so", {8682468, 103, 148}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x847BE4 -> 0x67 -> 0x78
local addr = readPointer("libunity.so", {8682468, 103, 120}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x847BE4 -> 0x67 -> 0x98
local addr = readPointer("libunity.so", {8682468, 103, 152}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x6E6F10 -> 0x5A -> 0x7C
local addr = readPointer("libunity.so", {7237392, 90, 124}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x6E6F10 -> 0x5A -> 0x8C
local addr = readPointer("libunity.so", {7237392, 90, 140}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x6E6F10 -> 0x5A -> 0xA0
local addr = readPointer("libunity.so", {7237392, 90, 160}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x6E6F10 -> 0x5A -> 0x9C
local addr = readPointer("libunity.so", {7237392, 90, 156}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x847BE4 -> 0x5B -> 0x8C
local addr = readPointer("libunity.so", {8682468, 91, 140}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x847BE4 -> 0x5B -> 0x7C
local addr = readPointer("libunity.so", {8682468, 91, 124}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x847BE4 -> 0x5B -> 0x84
local addr = readPointer("libunity.so", {8682468, 91, 132}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x847BE4 -> 0x5B -> 0x9C
local addr = readPointer("libunity.so", {8682468, 91, 156}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x847BE4 -> 0x5B -> 0xA4
local addr = readPointer("libunity.so", {8682468, 91, 164}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x847BE4 -> 0x5B -> 0x98
local addr = readPointer("libunity.so", {8682468, 91, 152}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x6E6F10 -> 0x66 -> 0x90
local addr = readPointer("libunity.so", {7237392, 102, 144}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x6E6F10 -> 0x66 -> 0x70
local addr = readPointer("libunity.so", {7237392, 102, 112}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x6E6F10 -> 0x66 -> 0x80
local addr = readPointer("libunity.so", {7237392, 102, 128}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x847BE4 -> 0x67 -> 0x80
local addr = readPointer("libunity.so", {8682468, 103, 128}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x847BE4 -> 0x67 -> 0x70
local addr = readPointer("libunity.so", {8682468, 103, 112}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x847BE4 -> 0x67 -> 0x90
local addr = readPointer("libunity.so", {8682468, 103, 144}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x847BE4 -> 0x67 -> 0x8C
local addr = readPointer("libunity.so", {8682468, 103, 140}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x6E6F10 -> 0x66 -> 0x94
local addr = readPointer("libunity.so", {7237392, 102, 148}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x6E6F10 -> 0x5A -> 0x98
local addr = readPointer("libunity.so", {7237392, 90, 152}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x6E6F10 -> 0x5A -> 0x84
local addr = readPointer("libunity.so", {7237392, 90, 132}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})

--libunity.so + 0x6E6F10 -> 0x5A -> 0xA4
local addr = readPointer("libunity.so", {7237392, 90, 164}, 3)
gg.edits(addr, {{0, 4, 0, false}, {0, 4, 0, false}})
--libtersafe2.so + 0xF04
local addr = readPointer("libtersafe2.so", {3844}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF94
local addr = readPointer("libtersafe2.so", {3988}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFE0
local addr = readPointer("libtersafe2.so", {4064}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x80
local addr = readPointer("libtersafe2.so", {128}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x14C
local addr = readPointer("libtersafe2.so", {332}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFC0
local addr = readPointer("libtersafe2.so", {4032}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFAC
local addr = readPointer("libtersafe2.so", {4012}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xEB0
local addr = readPointer("libtersafe2.so", {3760}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFB0
local addr = readPointer("libtersafe2.so", {4016}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF10
local addr = readPointer("libtersafe2.so", {3856}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFA8
local addr = readPointer("libtersafe2.so", {4008}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFFC
local addr = readPointer("libtersafe2.so", {4092}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xEDC
local addr = readPointer("libtersafe2.so", {3804}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x10
local addr = readPointer("libtersafe2.so", {16}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xEE0
local addr = readPointer("libtersafe2.so", {3808}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFC4
local addr = readPointer("libtersafe2.so", {4036}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x1DC
local addr = readPointer("libtersafe2.so", {476}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x118
local addr = readPointer("libtersafe2.so", {280}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF5C
local addr = readPointer("libtersafe2.so", {3932}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF8
local addr = readPointer("libtersafe2.so", {248}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFC8
local addr = readPointer("libtersafe2.so", {4040}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xEF0
local addr = readPointer("libtersafe2.so", {3824}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x98
local addr = readPointer("libtersafe2.so", {152}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xEA4
local addr = readPointer("libtersafe2.so", {3748}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x78
local addr = readPointer("libtersafe2.so", {120}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x7C
local addr = readPointer("libtersafe2.so", {124}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF14
local addr = readPointer("libtersafe2.so", {3860}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFEC
local addr = readPointer("libtersafe2.so", {4076}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFF4
local addr = readPointer("libtersafe2.so", {4084}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xEC8
local addr = readPointer("libtersafe2.so", {3784}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x68
local addr = readPointer("libtersafe2.so", {104}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF70
local addr = readPointer("libtersafe2.so", {3952}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF58
local addr = readPointer("libtersafe2.so", {3928}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF84
local addr = readPointer("libtersafe2.so", {3972}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x1D8
local addr = readPointer("libtersafe2.so", {472}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF48
local addr = readPointer("libtersafe2.so", {3912}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFA4
local addr = readPointer("libtersafe2.so", {4004}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFF8
local addr = readPointer("libtersafe2.so", {4088}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xEF8
local addr = readPointer("libtersafe2.so", {3832}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFD4
local addr = readPointer("libtersafe2.so", {4052}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFDC
local addr = readPointer("libtersafe2.so", {4060}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xEFC
local addr = readPointer("libtersafe2.so", {3836}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF08
local addr = readPointer("libtersafe2.so", {3848}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF20
local addr = readPointer("libtersafe2.so", {3872}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF6C
local addr = readPointer("libtersafe2.so", {3948}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFA0
local addr = readPointer("libtersafe2.so", {4000}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF4
local addr = readPointer("libtersafe2.so", {244}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xEEC
local addr = readPointer("libtersafe2.so", {3820}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF64
local addr = readPointer("libtersafe2.so", {3940}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xEA8
local addr = readPointer("libtersafe2.so", {3752}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFC
local addr = readPointer("libtersafe2.so", {252}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF2C
local addr = readPointer("libtersafe2.so", {3884}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF90
local addr = readPointer("libtersafe2.so", {3984}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF0C
local addr = readPointer("libtersafe2.so", {3852}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x114
local addr = readPointer("libtersafe2.so", {276}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x18C
local addr = readPointer("libtersafe2.so", {396}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF80
local addr = readPointer("libtersafe2.so", {3968}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF1C
local addr = readPointer("libtersafe2.so", {3868}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x140
local addr = readPointer("libtersafe2.so", {320}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFBC
local addr = readPointer("libtersafe2.so", {4028}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xA0
local addr = readPointer("libtersafe2.so", {160}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x20
local addr = readPointer("libtersafe2.so", {32}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x30
local addr = readPointer("libtersafe2.so", {48}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF88
local addr = readPointer("libtersafe2.so", {3976}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF30
local addr = readPointer("libtersafe2.so", {3888}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xECC
local addr = readPointer("libtersafe2.so", {3788}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF38
local addr = readPointer("libtersafe2.so", {3896}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFCC
local addr = readPointer("libtersafe2.so", {4044}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF54
local addr = readPointer("libtersafe2.so", {3924}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x24
local addr = readPointer("libtersafe2.so", {36}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x88
local addr = readPointer("libtersafe2.so", {136}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x28
local addr = readPointer("libtersafe2.so", {40}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF44
local addr = readPointer("libtersafe2.so", {3908}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x0
local addr = readPointer("libtersafe2.so", {0}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFB8
local addr = readPointer("libtersafe2.so", {4024}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xEE8
local addr = readPointer("libtersafe2.so", {3816}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x2C
local addr = readPointer("libtersafe2.so", {44}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF68
local addr = readPointer("libtersafe2.so", {3944}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF40
local addr = readPointer("libtersafe2.so", {3904}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x190
local addr = readPointer("libtersafe2.so", {400}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF74
local addr = readPointer("libtersafe2.so", {3956}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFE8
local addr = readPointer("libtersafe2.so", {4072}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFB4
local addr = readPointer("libtersafe2.so", {4020}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF3C
local addr = readPointer("libtersafe2.so", {3900}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF18
local addr = readPointer("libtersafe2.so", {3864}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xEB4
local addr = readPointer("libtersafe2.so", {3764}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x84
local addr = readPointer("libtersafe2.so", {132}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x11C
local addr = readPointer("libtersafe2.so", {284}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF60
local addr = readPointer("libtersafe2.so", {3936}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFD8
local addr = readPointer("libtersafe2.so", {4056}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x120
local addr = readPointer("libtersafe2.so", {288}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF78
local addr = readPointer("libtersafe2.so", {3960}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF28
local addr = readPointer("libtersafe2.so", {3880}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF4C
local addr = readPointer("libtersafe2.so", {3916}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFD0
local addr = readPointer("libtersafe2.so", {4048}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF00
local addr = readPointer("libtersafe2.so", {3840}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xE9C
local addr = readPointer("libtersafe2.so", {3740}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF98
local addr = readPointer("libtersafe2.so", {3992}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xED8
local addr = readPointer("libtersafe2.so", {3800}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x100
local addr = readPointer("libtersafe2.so", {256}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF8C
local addr = readPointer("libtersafe2.so", {3980}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xEC0
local addr = readPointer("libtersafe2.so", {3776}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF50
local addr = readPointer("libtersafe2.so", {3920}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xEAC
local addr = readPointer("libtersafe2.so", {3756}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFE4
local addr = readPointer("libtersafe2.so", {4068}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF24
local addr = readPointer("libtersafe2.so", {3876}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x1E0
local addr = readPointer("libtersafe2.so", {480}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF9C
local addr = readPointer("libtersafe2.so", {3996}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x9C
local addr = readPointer("libtersafe2.so", {156}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xD4
local addr = readPointer("libtersafe2.so", {212}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xED4
local addr = readPointer("libtersafe2.so", {3796}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xED0
local addr = readPointer("libtersafe2.so", {3792}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xFF0
local addr = readPointer("libtersafe2.so", {4080}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xEE4
local addr = readPointer("libtersafe2.so", {3812}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF34
local addr = readPointer("libtersafe2.so", {3892}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xEA0
local addr = readPointer("libtersafe2.so", {3744}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xF7C
local addr = readPointer("libtersafe2.so", {3964}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xEF4
local addr = readPointer("libtersafe2.so", {3828}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0x64
local addr = readPointer("libtersafe2.so", {100}, 1)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xEB8
local addr = readPointer("libtersafe2.so", {3768}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xE98
local addr = readPointer("libtersafe2.so", {3736}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xEC4
local addr = readPointer("libtersafe2.so", {3780}, 2)
gg.edits(addr, {{0, 4, 0, false}})

--libtersafe2.so + 0xEBC
local addr = readPointer("libtersafe2.so", {3772}, 2)
gg.edits(addr, {{0, 4, 0, false}})
gg.alert("防检测和环境开启成功")
end),
changan.button("防环境检[都行]",
function()
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C53F8},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C53FC},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5400},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5404},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5408},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C540C},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5410},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5414},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5418},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5438},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5448},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C544C},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5450},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5454},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5458},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C545C},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5460},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5468},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C546C},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C547C},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5480},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5484},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5488},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C548C},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5490},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5494},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5498},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C549C},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54A0},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54A4},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54AC},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54B0},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54B4},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54B8},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54BC},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54C0},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54C4},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54C8},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54CC},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54D0},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54D4},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54D8},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54DC},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54E0},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54E4},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54E8},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54F0},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54F4},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54F8},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C54FC},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5500},})
nc_offset(getso("libApkPatchLibrary.so"),{{0,4,0x1121C5504},})
nc_offset(getso("libtersafe2.so"),{{0,4,0x282c54},})
nc_offset(getso("libtersafe2.so"),{{0,4,0x29f0b0},})
nc_offset(getso("libtersafe2.so"),{{0,4,0x283f68},})
nc_offset(getso("libtersafe2.so"),{{0,4,0x282e00},})
nc_offset(getso("libtersafe2.so"),{{0,4,0x282e08},})
nc_offset(getso("libtersafe2.so"),{{0,4,0x282de0},})
nc_offset(getso("libtersafe2.so"),{{0,4,0x282dd8},})
nc_offset(getso("libtersafe2.so"),{{0,4,0x282db8},})
nc_offset(getso("libtersafe2.so"),{{0,4,0x282db0},})
nc_offset(getso("libtersafe2.so"),{{0,4,0x282d20},})
nc_offset(getso("libtersafe2.so"),{{0,4,0x282d04},})
nc_offset(getso("libtersafe2.so"),{{0,4,0x282cf0},})
nc_offset(getso("libtersafe2.so"),{{0,4,0x282ce8},})
nc_offset(getso("libtersafe2.so"),{{0,4,0x282cc8},})
nc_offset(getso("libtersafe2.so"),{{0,4,0x282cb0},})
nc_offset(getso("libil2cpp.so"),{{0,4,0x48e80d4},})
nc_offset(getso("libil2cpp.so"),{{0,4,0x48def40},})
nc_offset(getso("libil2cpp.so"),{{0,4,0x48c8184},})
nc_offset(getso("libil2cpp.so"),{{0,4,0x48af3c8},})
nc_offset(getso("libil2cpp.so"),{{0,4,0x48ab4ec},})
nc_offset(getso("libil2cpp.so"),{{0,4,0x48a19c4},})
nc_offset(getso("libil2cpp.so"),{{0,4,0x489da70},})
nc_offset(getso("libil2cpp.so"),{{0,4,0x488d224},})
nc_offset(getso("libil2cpp.so"),{{0,4,0x488d1d8},})
nc_offset(getso("libil2cpp.so"),{{0,4,0x50e4a0},})
end),
changan.button("大厅防封[大厅]",
function()
gg.clearResults()
gg.setRanges(32)
gg.searchNumber('311,040',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1)
gg.searchNumber('311,040',gg.TYPE_DWORD,false,gg.SIGN_EQUAL,0, -1)
gg.getResults(150)
gg.editAll('839123713',gg.TYPE_DWORD)
gg.clearResults()
gg.setRanges(16384)
gg.searchNumber("7629941", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
gg.refineNumber("", gg.TYPE_DWORD)
gg.getResults(100)
gg.editAll("0", gg.TYPE_DWORD)
gg.clearResults()
gg.clearResults()
gg.setRanges(16384)
gg.searchNumber("1702249838", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
gg.refineNumber("", gg.TYPE_DWORD)
gg.getResults(100)
gg.editAll("0", gg.TYPE_DWORD)
gg.clearResults()
gg.clearResults()
gg.setRanges(16384)
gg.searchNumber("1684368482", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
gg.refineNumber("", gg.TYPE_DWORD)
gg.getResults(100)
gg.editAll("0", gg.TYPE_DWORD)
gg.clearResults()
gg.clearResults()
gg.setRanges(16384)
gg.searchNumber("1634100548", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
gg.refineNumber("", gg.TYPE_DWORD)
gg.getResults(100)
gg.editAll("0", gg.TYPE_DWORD)
gg.clearResults()
local addr = readPointer("libunity.so", {3108}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3044}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3052}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3180}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3684}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3140}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3188}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3092}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3068}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3084}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3172}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3164}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3060}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3204}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3156}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3100}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3212}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3228}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3124}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3220}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3148}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3076}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3132}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3116}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
local addr = readPointer("libunity.so", {3196}, 1)
gg.edits(addr, {{-1, 4, 0, true}})
gg.alert("开启成功")
end),
changan.button("防止踢人[局内]",
function()
gg.clearResults()
	 gg.setRanges(32)
	 gg.searchNumber("2;3;5;1.5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
	 gg.searchNumber("3", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
	 gg.getResults(100)
	 gg.editAll("0", gg.TYPE_FLOAT)
	 gg.clearResults()
	 gg.alert("防止踢人开启成功")
end),
}
		})
	end
})

floatingWindowManager:newWindow('自用功能', {
	onCreate = function(floatingWindow)

		floatingWindow:addlayout({
			ScrollView,
			layout_width = 'match_parent',
			layout_height = 'match_parent',
			{
				LinearLayout,
				background = floatingWindowManager:getStateListDrawable(),
				background="",
				layout_width = 'match_parent',
				layout_height = 'match_parent',
				orientation = 'vertical',
				padding = '10dp',
				changan.button("停止音乐",
                function()
                gg.toast("正在停止音乐")
    for i=1,100 do
        gg.playMusic("stop")
        gg.playMusic("stop")
        gg.playMusic("stop")
        end
                end),
				changan.button("烧酒歌",
                function()
                gg.playMusic("http://music.163.com/song/media/outer/url?id=1927948807.mp3")
                end),
				changan.button("印度国歌",
                function()
                gg.playMusic("http://music.163.com/song/media/outer/url?id=2024109979.mp3")
                end),
                changan.button("小小花园里挖",
                function()
                 gg.playMusic("http://music.163.com/song/media/outer/url?id=2048772156.mp3")
                end),
				changan.button("人物穿墙",
                function()
                qmnb = {
{["memory"] = 32},
{["name"] = "穿墙"},
{["value"] = -10.0, ["type"] = 16},
{["lv"] = 49.0, ["offset"] = 20, ["type"] = 16},
}
qmxg = {
{["value"] = 999999, ["offset"] = 0, ["type"] = 16},
}
xqmnb(qmnb)
                end),
                changan.button("A无间隔",
                function()
                local addr = readPointer("libil2cpp.so", {0x1FD500, 0x5C, 0x0, 0x84, 0x5C}, 2)
gg.edits(addr, {{0, 4, 0, true}})
    gg.toast("无间隔")
                end),
{
TextView,           
text = "                                       ↓腕炮改↓                                   ",
},
                newradio({nil,
                {"迫击炮",
                function()
                fastsearch({{942812773,4,32},{1399156065,60,4},{1198410030,56,4}},{{110*256,12,4}})
                gg.alert("开启成功")
                end,
                },{"能量剑",
                function()
                fastsearch({{942812773,4,32},{1399156065,60,4},{1198410030,56,4}},{{140*256,12,4}})
                gg.alert("开启成功")
                end
                },
                {"蹦蹦枪",
                function()
                fastsearch({{942812773,4,32},{1399156065,60,4},{1198410030,56,4}},{{150*256,12,4}})
                gg.alert("开启成功")
                end,
                },{"换风镖",
                function()
                fastsearch({{942812773,4,32},{1399156065,60,4},{1198410030,56,4}},{{220*256,12,4}})
                gg.alert("开启成功")
                end
                },
                }),
                changan.button("空手刷武",
                function()
                local addr = readPointer("libil2cpp.so", {0x1FD500, 0x5C, 0x0, 0x84, 0xA0}, 2)
gg.edits(addr, {{1, 4, 0, true}})
gg.clearList()
                end),
                newcheck({nil,
{"跳跃开物",
function()
BaseAddressD(0x1d72324,'-476052716')
gg.toast("跳跃开物开启成功")
end,
function()
BaseAddressB(0x1d72324,'-382907408')
gg.toast("跳跃开物关闭成功")
end},
{"移速增加",
function()
BaseAddressD(0x1367f44,'-476052716')
BaseAddressD(0x35a2694,'-476052716')
gg.toast("移速增加开启成功")
end,
function()
BaseAddressA(0x1367f44,'-382908368')
BaseAddressA(0x35a2694,'-382908368')
gg.toast("移速增加关闭成功")
end},
{"开物加速",
function()
BaseAddressD(0x10e70b8,'-476052999')
BaseAddressD(0x1e425c8,'-476052999')
BaseAddressD(0x17300a0,'-476052999')
BaseAddressD(0x14ca68c,'-476052999')
BaseAddressD(0x1dfd5a4,'-476052999')
BaseAddressD(0x1fd3030,'-476052999')
gg.toast("开物加速开启成功")
end,
function()
BaseAddressAA(0x10e70b8,'-382907280')
BaseAddressAA(0x1e425c8,'-382907280')
BaseAddressAA(0x17300a0,'-382907280')
BaseAddressAA(0x14ca68c,'-382907280')
BaseAddressAA(0x1dfd5a4,'-382907280')
BaseAddressAA(0x1fd3030,'-382907280')
gg.toast("开物加速关闭成功")
end},
{"清除校准",
function()
BaseAddressD(0xc70e14,'-486539264')
gg.toast("清除校准开启成功")
end,
function()
BaseAddressB(0xc70e14,'-382907280')
gg.toast("清除校准关闭成功")
end},
}),
newcheck({nil,
{"穿过夹子",
function()
BaseAddressY(0x136832c,'-516948194')
gg.toast("穿过夹子开启成功")
end,
function()
BaseAddressY(0x136832c,'-382908176')
gg.toast("穿过夹子关闭成功")
end},
{"武器后座",
function()
gg.clearResults()
	 gg.setRanges(16384)
	 gg.searchNumber("-2.02910614e20;0.00100000005;-1.30940708e25;-1.30683878e21::", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
	 gg.searchNumber("0.00100000005", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
	 gg.getResults(100)
	 gg.editAll("1.68", gg.TYPE_FLOAT)
	 gg.clearResults()
gg.toast("武器后座开启成功")
gg.alert("开启成功")
end,
function()
gg.clearResults()
	 gg.setRanges(16384)
	 gg.searchNumber("-2.02910614e20;0.00100000005;-1.30940708e25;-1.30683878e21::", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
	 gg.searchNumber("0.00100000005", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
	 gg.getResults(100)
	 gg.editAll("0.01", gg.TYPE_FLOAT)
	 gg.clearResults()
gg.toast("武器后座关闭成功")
gg.alert("关闭成功")
end},
{"子弹数量",
function()
BaseAddressD(0x21d9824,"-476053404")
gg.toast("子弹数量开启成功")
end,
function()
BaseAddressA(0x21d9824,'-382908368')
gg.toast("子弹数量关闭成功")
end},
{"变身攻击",
function()
BaseAddressY(0x21ddb08,'-516948194')
gg.toast("变身攻击开启成功")
end,
function()
BaseAddressY(0x21ddb08,'-382907280')
gg.toast("变身攻击关闭成功")
end},
}),
newcheck({nil,
{"破除护盾",
function()
BaseAddressD(0x136832c,'-476053504')
gg.toast("破除护盾开启成功")
end,
function()
BaseAddressA(0x136832c,'-382908368')
gg.toast("破除护盾关闭成功")
end},
{"超级透视",
function()
BaseAddressD(0xd5f540,'-476053503')
gg.toast("超级透视开启成功")
end,
function()
BaseAddressA(0xd5f540,'-382908368')
gg.toast("超级透视关闭成功")
end},
{"道具冷却",
function()
BaseAddressD(0x1183e78,'-476053504')
gg.toast("道具冷却开启成功")
end,
function()
BaseAddressB(0x1183e78,'-382908176')
gg.toast("道具冷却关闭成功")
end},
{"虚体刷钱",
function()
BaseAddressY(0x1fc7188,'-356323910')
  gg.toast("虚体刷钱开启成功")
end,
function()
BaseAddressY(0x1fc7188,'-382906384')
  gg.toast("虚体刷钱关闭成功")
end},
}),
newcheck({nil,
{"无限鞭尸",
function()
BaseAddressD(0xd5f0dc,'-476053503')
gg.toast("无限鞭尸开启成功")
end,
function()
BaseAddressB(0xd5f0dc,'-382907280')
gg.toast("无限鞭尸关闭成功")
end},
{"解锁模式",
function()
BaseAddressD(0xe149b4,'-476053503')
gg.toast("解锁模式开启成功")
end,
function()
BaseAddressB(0xe149b4,'-382908176')
gg.toast("解锁模式关闭成功")
end},
{"倒地购物",
function()
BaseAddressD(0x1181a0c,'-476053504')
BaseAddressD(0x41fc898,'-476053504')
gg.toast("倒地购物开启成功")
end,
function()
BaseAddressB(0x41fc898,'-382907280')
BaseAddressB(0x1181a0c,'-382907280')
gg.toast("倒地购物关闭成功")
end},
{"无限增益",
function()
BaseAddressD(0xd0c168,'-476053503')
gg.toast("无限增益开启成功")
end,
function()
BaseAddressA(0xd0c168,'-382908368')
gg.toast("无限增益关闭成功")
end},
}),
             }
		})
	end
})

floatingWindowManager:newWindow('基址功能', {
	onCreate = function(floatingWindow)

		floatingWindow:addlayout({
			ScrollView,
			layout_width = 'match_parent',
			layout_height = 'match_parent',
			{
				LinearLayout,
				background = floatingWindowManager:getStateListDrawable(),
				background="",
				layout_width = 'match_parent',
				layout_height = 'match_parent',
				orientation = 'vertical',
				padding = '10dp',
{
TextView,
text = "                                       门的基址                                    ",
},
newcheck({nil,
{"强制开门",
function()
BaseAddressD(0x1dfd4e8,'-476053503')
gg.toast("强制开门开启成功")
end,
function()
BaseAddressA(0x1dfd4e8,'-382908368')
gg.toast("强制开门关闭成功")
end},
{"开门秒逃",
function()
BaseAddressD(0xd5ee20,'-476052718')
gg.toast("开门秒逃开启成功")
end,
function()
BaseAddressA(0xd5ee20,'-382908368')
gg.toast("开门秒逃关闭成功")
end},
}),
{
TextView,
text = "                                     夹子基址                                      ",
},
newcheck({nil,
{"全图踩夹",
function()
BaseAddressD(0x1e3f560,'-476053503')
gg.toast("全图踩夹开启成功")
end,
function()
BaseAddressA(0x1e3f560,'-382907280')
gg.toast("全图踩夹关闭成功")
end},
{"秒踩夹子",
function()
BaseAddressD(0x1e3f458,'-476053503')
gg.toast("秒踩夹子开启成功")
end,
function()
BaseAddressB(0x1e3f458,'-382907280')
gg.toast("秒踩夹子关闭成功")
end},
{"无视夹子",--无视夹子[但不能攻击]
function()
gg.alert("是挂三分毒 基址无视夹子开启后不可给追捕造成伤害")
BaseAddressY(0x136832c,'-516948194')
gg.toast("穿过夹子开启成功")
end,
function()
BaseAddressY(0x136832c,'-382908176')
gg.toast("穿过夹子关闭成功")
end},
{"无限踩夹",
function()
BaseAddressY(0x3fbd6dc,'-516948194')
gg.toast("无限踩夹开启成功")
end,
function()
BaseAddressY(0x3fbd6dc,'-382907280')
gg.toast("无限踩夹关闭成功")
end},
}),
{
TextView,
text = "                                       稳定基址                                      ",
},
newcheck({nil,
{"清除校准",
function()
BaseAddressD(0xc70e14,'-486539264')
gg.toast("清除校准开启成功")
end,
function()
BaseAddressB(0xc70e14,'-382907280')
gg.toast("清除校准关闭成功")
end},
{"开物加速",
function()
BaseAddressD(0x10e70b8,'-476052999')
BaseAddressD(0x1e425c8,'-476052999')
BaseAddressD(0x17300a0,'-476052999')
BaseAddressD(0x14ca68c,'-476052999')
BaseAddressD(0x1dfd5a4,'-476052999')
BaseAddressD(0x1fd3030,'-476052999')
gg.toast("开物加速开启成功")
end,
function()
BaseAddressAA(0x10e70b8,'-382907280')
BaseAddressAA(0x1e425c8,'-382907280')
BaseAddressAA(0x17300a0,'-382907280')
BaseAddressAA(0x14ca68c,'-382907280')
BaseAddressAA(0x1dfd5a4,'-382907280')
BaseAddressAA(0x1fd3030,'-382907280')
gg.toast("开物加速关闭成功")
end},
{"跳跃开物",
function()
BaseAddressD(0x1d72324,'-476052716')
gg.toast("跳跃开物开启成功")
end,
function()
BaseAddressB(0x1d72324,'-382907408')
gg.toast("跳跃开物关闭成功")
end},
{"移速增加",
function()
BaseAddressD(0x1367f44,'-476052716')
BaseAddressD(0x35a2694,'-476052716')
gg.toast("移速增加开启成功")
end,
function()
BaseAddressA(0x1367f44,'-382908368')
BaseAddressA(0x35a2694,'-382908368')
gg.toast("移速增加关闭成功")
end},
}),
newcheck({nil,
{"解锁锁位",
function()
BaseAddressD(0x10e3eac,'-476053504')
gg.toast("解锁锁位开启成功")
end,
function()
BaseAddressA(0x10e3eac,'-382908368')
gg.toast("解锁锁位关闭成功")
end},
{"路过开物",
function()
fastsearch({{274,16,32},{294,4,16}},{{0,8,4,true}},"路过开物开启成功")
end,
function()
gg.clearList()
gg.toast("路过开物关闭成功")
end},
}),
{
TextView,
text = "                                       火力基址                                      ",
},
newcheck({nil,
{"无限鞭尸",
function()
BaseAddressD(0xd5f0dc,'-476053503')
gg.toast("无限鞭尸开启成功")
end,
function()
BaseAddressB(0xd5f0dc,'-382907280')
gg.toast("无限鞭尸关闭成功")
end},
{"倒地购物",
function()
BaseAddressD(0x1181a0c,'-476053504')
BaseAddressD(0x41fc898,'-476053504')
gg.toast("倒地购物开启成功")
end,
function()
BaseAddressB(0x41fc898,'-382907280')
BaseAddressB(0x1181a0c,'-382907280')
gg.toast("倒地购物关闭成功")
end},
{"伤害倍率",
function()
a=gg.prompt({"伤害倍率"})
fastsearch({
{82662192,4,16384},
{83092509,-4,4},
},
{{a[1],-8,16,false}},"伤害倍率开启成功")
end},
}),
newcheck({nil,
{"武器后座",
function()
gg.clearResults()
	 gg.setRanges(16384)
	 gg.searchNumber("-2.02910614e20;0.00100000005;-1.30940708e25;-1.30683878e21::", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
	 gg.searchNumber("0.00100000005", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
	 gg.getResults(100)
	 gg.editAll("1.68", gg.TYPE_FLOAT)
	 gg.clearResults()
gg.toast("武器后座开启成功")
gg.alert("开启成功")
end,
function()
gg.clearResults()
	 gg.setRanges(16384)
	 gg.searchNumber("-2.02910614e20;0.00100000005;-1.30940708e25;-1.30683878e21::", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
	 gg.searchNumber("0.00100000005", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
	 gg.getResults(100)
	 gg.editAll("0.01", gg.TYPE_FLOAT)
	 gg.clearResults()
gg.toast("武器后座关闭成功")
gg.alert("关闭成功")
end},
{"超级透视",
function()
BaseAddressD(0xd5f540,'-476053503')
gg.toast("超级透视开启成功")
end,
function()
BaseAddressA(0xd5f540,'-382908368')
gg.toast("超级透视关闭成功")
end},
{"子弹数量",
function()
BaseAddressD(0x21d9824,"-476053404")
gg.toast("子弹数量开启成功")
end,
function()
BaseAddressA(0x21d9824,'-382908368')
gg.toast("子弹数量关闭成功")
end},
{"无限增益",
function()
BaseAddressD(0xd0c168,'-476053503')
gg.toast("无限增益开启成功")
end,
function()
BaseAddressA(0xd0c168,'-382908368')
gg.toast("无限增益关闭成功")
end},
}),
newcheck({nil,
{"武器间隔",
function()
BaseAddressD(0x21e80cc,'-476053504')
BaseAddressD(0x21d97cc,'-476053504')
gg.toast("武器间隔开启成功")
end,
function()
BaseAddressAA(0x21d97cc,'-382907280')
BaseAddressAA(0x21e80cc,'-382907280')
gg.toast("武器间隔关闭成功")
end},
{"变身攻击",
function()
BaseAddressY(0x21ddb08,'-516948194')
gg.toast("变身攻击开启成功")
end,
function()
BaseAddressY(0x21ddb08,'-382907280')
gg.toast("变身攻击关闭成功")
end},
{"攻击吸血",
function()
BaseAddressD(0x13680b4,'-476052411')
BaseAddressD(0x35a26f4,'-476052411')
gg.toast("攻击吸血开启成功")
end,
function()
BaseAddressA(0x13680b4,'-382908368')
BaseAddressA(0x35a26f4,'-382908368')
gg.toast("攻击吸血关闭成功")
end},
{"枪枪暴击",
function()
fastsearch({{1.7,16,16384},{0,4,16}},{{1,4,16,false}},"")
gg.toast("枪枪暴击开启成功")
end,
function()
fastsearch({{1.7,16,16384},{1,4,16}},{{0,4,16,false}},"")
gg.toast("枪枪暴击关闭成功")
end},
}),
newcheck({nil,
{"子穿射程",
function()
BaseAddressY(0x21e3034,'-516948194')
gg.toast("子穿射程开启成功")
end},
{"破除护盾",
function()
BaseAddressD(0x136832c,'-476053504')
gg.toast("破除护盾开启成功")
end,
function()
BaseAddressA(0x136832c,'-382908368')
gg.toast("破除护盾关闭成功")
end},
{"道具冷却",
function()
BaseAddressD(0x1183e78,'-476053504')
gg.toast("道具冷却开启成功")
end,
function()
BaseAddressB(0x1183e78,'-382908176')
gg.toast("道具冷却关闭成功")
end},
}),
{
TextView,
text = "                                       自建基址                                     ",
},
newcheck({nil,
{"解锁模式",
function()
BaseAddressD(0xe149b4,'-476053503')
gg.toast("解锁模式开启成功")
end,
function()
BaseAddressB(0xe149b4,'-382908176')
gg.toast("解锁模式关闭成功")
end},
{"猎杀队友",
function()
BaseAddressY(0x2ca6c74,'-516948194')
gg.toast("猎杀队友开启成功")
end,
function()
BaseAddressY(0x2ca6c74,'-382908368')
gg.toast("猎杀队友关闭成功")
end},
{"修改阵营",
function()
BaseAddressY(0xe130b0,'-516948194')
gg.toast("修改阵营开启成功")
end,
function()
BaseAddressY(0xe130b0,'-382908368')
gg.toast("修改阵营关闭成功")
end},
}),
{
TextView,
text = "                                       皮肤基址                                       ",
},
newcheck({nil,
{"角色皮肤",
function()
BaseAddressY(0x1258c50,'-516948194')
gg.toast("角色皮肤开启成功")
end,
function()
BaseAddressY(0x1258c50,'-382906384')
gg.toast("角色皮肤关闭成功")
end},
{"道具皮肤",
function()
BaseAddressY(0x1132924,'-516948194')
gg.toast("道具皮肤开启成功")
end,
function()
BaseAddressY(0x1132924,'-382908176')
gg.toast("道具皮肤关闭成功")
end},
{"解锁角色",
function()
BaseAddressY(0x1265f68,'-516948194')
BaseAddressY(0x1264d50,'-516948194')
BaseAddressY(0x1257b5c,'-516948194')
gg.toast("解锁角色开启成功")
end,
function()
BaseAddressY(0x1257b5c,'-382906384')
BaseAddressY(0x1264d50,'-382906384')
BaseAddressY(0x1265f68,'-382906384')
gg.toast("解锁角色关闭成功")
end},
}),
{
TextView,
text = "                                       其他基址                                       ",
},
newcheck({nil,
{"锁定道具",
function()
BaseAddressD(0x15f7420,'-476053504')
gg.toast("锁定道具开启成功")
end,
function()
BaseAddressB(0x15f7420,'-382907280')
gg.toast("锁定道具关闭成功")
end},
{"无视禁闭",
function()
BaseAddressD(0x1fc7ac8,'-476053504')
gg.toast("无视紧闭开启成功")
end,
function()
BaseAddressC(0x1fc7ac8,'-382907280')
gg.toast("无视禁闭关闭成功")
end},
{"任务完成",
function()
BaseAddressD(0x17842a0,'-482343961')
BaseAddressD(0x17842f8,'-482343961')
BaseAddressD(0x1782c64,'-482343961')
BaseAddressD(0x1784350,'-482343961')
  gg.toast("任务秒完开启成功")
end,
function()
BaseAddressA(0x17842a0,'-382908368')
BaseAddressA(0x1782c64,'-382908368')
BaseAddressA(0x17842f8,'-382908368')
BaseAddressA(0x1784350,'-382908368')
  gg.toast("任务秒完关闭成功")
end},
}),
{
TextView,
text = "                                       钱的基址                                       ",
},
newcheck({nil,
{"虚体刷钱",
function()
BaseAddressY(0x1fc7188,'-356323910')
  gg.toast("虚体刷钱开启成功")
end,
function()
BaseAddressY(0x1fc7188,'-382906384')
  gg.toast("虚体刷钱关闭成功")
end},
}),

			}
		})
	end
})

floatingWindowManager:newWindow('角色功能', {
	onCreate = function(floatingWindow)

		floatingWindow:addlayout({
			ScrollView,
			layout_width = 'match_parent',
			layout_height = 'match_parent',
			{
				LinearLayout,
				background = floatingWindowManager:getStateListDrawable(),
				layout_width = 'match_parent',
				layout_height = 'match_parent',
				orientation = 'vertical',
				padding = '10dp',
				changan.button("奥博全屏漏电",
                function()
qmnb = {
{["memory"] = 32},
{["name"] = ""},
{["value"] = 3.799999952316284, ["type"] = 16},
{["lv"] = 3.0,["offset"] =-20, ["type"] = 16},
}
qmxg = {
{["value"] = 99,["offset"] =-20, ["type"] = 16},
}
xqmnb(qmnb)
gg.alert("开启成功")
                end),
                changan.button("奥博技能免费",
                function()
                xtnb({{false,140.0,0,16,nil,nil},{135.0,4,16},{125.0,8,16}},{{0,0,16,false},{0,4,16,false},{0,8,16,false},{0,12,16,false}},16,32,"技能免费")
gg.alert("开启成功")
                end),
                changan.button("奥博电击时长",
                function()
                fastsearch({{1033, 4, 32}, {0.5, 4, 16}, {1, 16,16 }}, {{9999,16,16,false}})
gg.alert("开启成功")
                end),
                changan.button("影忍全屏范围",
                function()
                xtnb({{false,14.0,116,16,nil,nil},{0.20000000298023224,128,16}},{{100,124,16,false}},16,32,"")
                end),
                changan.button("影忍数量免费",
                function()
                qmnb = {
{["memory"] = 32},
{["name"] = "影之忍者技能变多+免费"},
{["value"] = -934560717, ["type"] = 4},
{["lv"] = 80,["offset"] =-32, ["type"] = 4},
{["lv"] = 1036831949,["offset"] =-36, ["type"] = 4},
{["lv"] = 2,["offset"] =8, ["type"] = 4},
}
qmxg = {
{["value"] = 0,["offset"] =-32, ["type"] = 4},
{["value"] = 9999,["offset"] =-40, ["type"] = 4,},
}
xqmnb(qmnb)
fastsearch({{-934560717,4,32},{1581114487,4,4},{2,8,4}},{{0,88,4},{9999,92,16,false}})
gg.alert("开启成功")
                end),
                changan.button("劲凯技能自调",
                function()
                local LL=gg.prompt({"↓伤害↓","↓吸人范围↓","↓冲刺距离↓","↓吸人时间↓"},{[1]="" },{[2]=""},{[3]=""},{[4]=""})
fastsearch
({{-934560717,4,32},{80,-0x20,4},{8,-0x24,16}},
{
{0,-0x20,4}--金币
,{0,-0x24,16}--冷却时间
,{LL[1],0x94,16}--伤害
,{LL[2],0x4C,16}--范围
,{LL[3],0x64,16}--攻击距离
,{LL[4],0x70,16}--吸人时间
})
gg.alert("开启成功")
                end),
			}
		})
	end
})

floatingWindowManager:newWindow('娱乐功能', {
	onCreate = function(floatingWindow)

		floatingWindow:addlayout({
			ScrollView,
			layout_width = 'match_parent',
			layout_height = 'match_parent',
			{
				LinearLayout,
				background = floatingWindowManager:getStateListDrawable(),
				layout_width = 'match_parent',
				layout_height = 'match_parent',
				orientation = 'vertical',
				padding = '10dp',
newradio({nil,
{"一键动作",
function()
fastsearch
({{950001,4,32},{6,-4,4},{0,8,4},{0,12,4},{0,16,4},{0,20,4},{0,-8,4},{0,-12,4}},{{961351,0,4},{961361,4,4},{960691,8,4},{961371,12,4},{961721,16,4},{961211,20,4,false}})
end,
},{"自调动作",
function()
_ENV["gg"]["clearResults"]()
_ENV["gg"]["setRanges"](32)
a = _ENV["gg"]["prompt"]({"招手：\n960001 雇佣兵·招手\n960011 失忆者·招手\n960021 女特工·招手\n960031 小学妹·招手\n960041 机器人·招手\n960051 魔术师·招手\n960571 发明家·招手\n\n嘲讽：\n960061 雇佣兵嘲讽\n960071 失忆者嘲讽\n960081 女鬼嘲讽\n960101 小学妹嘲讽\n960101 机器人嘲讽\n960111 魔术师嘲讽\n\n一个真正的鳗：\n960241 雇佣兵·打篮球\n960251 失忆者·打篮球\n960261 雇佣兵·篮球之舞\n960271 失忆者·篮球之舞\n\n星耀动作加引体向上：\n961351 洛杰星耀\n963561 洛杰星轮[大厅]\n961191 学妹星耀1\n961201 艾克星耀\n961211 狐狸星耀\n961361 雇佣兵星耀\n963571 雇佣兵星轮[大厅]\n961371 女鬼星耀\n961711 梦魇星耀\n961721 发明家星耀\n961731 学妹星耀2\n962701 引体向上\n963781 大黄蜂出场\n\n电摇动作：\n960691 失忆者·应援boy\n960701 女特工·演唱女王\n960681 雇佣兵·摇滚贝斯\n960731 发明家·我为歌狂\n961881 关起来\n961041 贵族风度\n960921 来口西瓜\n960431 花式倒立\n960441 侧滑拳击\n960461 滑步登场\n960491 独轮车\n960551 闪耀登场\n962901 终极闪耀赛罗变身\n962331 怪兽登场\n961941 海上豪杰\n962931 贝利亚变身\n962491 月兔奔月\n960931 冲浪达人\n\n涂鸦：\n950001 我爱DMM\n950141 陷阱夹子\n950331 伪装宝盒\n950661 DMM战队\n950671 DMM奖杯\n\n变身道具：\n长椅100\n床101\n箱子102\n仙人掌103\n凳子104\n马桶105\n电脑106\n抽屉107\n花108109\n桌子110\n路障115\n牌116\n鼓117\n绿色垃圾桶118\n蓝色垃圾桶119\n120球", "↑修改前\n↓修改后"}, {"", ""}, {"text", "text"})
if a == nil then
_ENV["gg"]["alert"]("有数值为空")
end
if a[1] == nil then
_ENV["gg"]["alert"]("有数值为空")
end
if a[2] == nil then
_ENV["gg"]["alert"]("有数值为空")
end
_ENV["gg"]["searchNumber"](a[1], gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
b = _ENV["gg"]["getResultCount"]()
_ENV["gg"]["getResults"](b)
_ENV["gg"]["editAll"](a[2], gg.TYPE_DWORD)
end
},
{"修改角色",
function()
u=gg.prompt({"输入你的想要的角色\n\n100雇佣兵\n300女特工\n400小学妹\n500机器人\n600魔术师\n700发明家\n800战斗少女\n900小狐狸\n1000小梦魇\n1100水之忍者\n1200影之忍者\n1300星辰圣女\n1400黎明盾位\n1500小狮子\n1600命石者\n1700小骇客\n1800灵膳子\n1900机械之心\n2000指绘师\n2100劲凯\n10000BOSS"},{},{"number"})
fastsearch({{429496729602, 32, 32}, {0, -4, 4}, {100, 4, 4}}, {{u[1], 8, 4, true}})
end,
},{"医箱改物",
function()
a=gg.prompt{("医疗箱自调\n\n道具卡：\n\n200 疾跑\n201 跳高\n300 侦查眼\n301 阻挡箱\n400 手雷\n401 医疗箱\n500 护盾\n700 狗\n701 针\n800 酒桶\n801 飞爪\n900 传送门\n901 自走球\n1000 毒液\n1001 滑板\n1002 魔法墙\n1003 引力场\n1004 治疗球\n1005 气垫\n1006 导弹\n1007 追踪雷\n1008 震荡波\n1009 小灰机\n1010 时光机\n1011 跳杆\n1012 拳套\n1016 吼吼号\n\n特殊卡：\n\n50001迪迦\n50002 泽塔\n50003 赛罗\n70500005小恶魔\n70500004 全体护盾\n70500002 夹子\n10500001 疾跑\n10500002 冲锋\n10500003 狐狸链子\n10500004 天降之物\n10500005 生物炸弹\n10500007 盾位护盾\n10500009 盾位冲锋\n10500010 火力支援\n10500012 骇客飞爪\n10500013 骇客隐身\n10500014 蛋黄酥\n10500015 粽子\n10500016 高跳团子")}
fastsearch({
{51252,4,32},
{808529509,-4,4},
},
{{a[1]*256,8,4,false}},"医疗箱变道具")
end
},
}),
newradio({nil,
{"无限校准",
function()
fastsearch({
     {1200, 4, 32},
     {230.0, 0x48, 16},
   }, {
     {0, 0x48, 16, false },
     {0, 0x4C, 16, false},
     {0, 0x50, 16, false},
     {30.0, 0x40, 16, false},
     {30.0, 0x44, 16, false},
   })
   fastsearch({
     {10.0, 16, 32},
     {3.0, -4, 16},
     {0.30000001192092896, -8, 16},
   }, {
     {9999.0, -8, 16, false},
   },"超级开锁")
end,
},{"踩夹暴走",
function()
qmnb = {
{["memory"] = 32},
{["name"] = "踩夹暴走"},
{["value"] = 2.5, ["type"] = 16},
{["lv"] = 0.5,["offset"] =4, ["type"] = 16},
{["lv"] = 1.0,["offset"] =8, ["type"] = 16},
{["lv"] = 25.0,["offset"] =12, ["type"] = 16},
{["lv"] = 101,["offset"] =16, ["type"] = 4},
}
qmxg = {
{["value"] = 0.0,["offset"] =12, ["type"] = 16},
{["value"] = 111,["offset"] =16, ["type"] = 4},
}
xqmnb(qmnb)
end
},
{"追无限狂",
function()
xtnb({{60,16,32},{5,-4,16},{4,-16,16},{0,24,4}},{{10,24,4,true}})
end,
},{"大神资格",
function()
fastsearch({{104,4,32},{103,-4, 4},{102,-8,4},{101,-12,4},{4,-16,4}},{{304,0,4},{303,-4,4},{302,-8,4},{301,-12,4}})
end
},
}),
newradio({nil,
{"倒车捐钱",
function()
fastsearch({{-4294967177, 32, 32}, {8, 44, 32}}, {{6, 44, 32, false}})
end,
},{"不闪锁血",
function()
fastsearch({{1073741824,4,32},{1.5,4,16},{10.0,8,16},{0,12,16}},{{100,0,16},{-1,8,4,false}})
end
},
{"全图烧人",
function()
gg.clearResults()
	 gg.setRanges(32)
	 gg.searchNumber("100.0;0.30000001192:5", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
	 gg.searchNumber("0.3", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
	 gg.getResults(100)
	 gg.editAll("9999", gg.TYPE_FLOAT)
	 gg.toast("全图烧")
	 gg.clearResults()
end,
},{"人物踏空",
function()
gg.clearResults()
	 gg.setRanges(16384)
	 gg.searchNumber("6.16297729e-33;0.07999999821:13", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
	 gg.searchNumber("0.07999999821", gg.TYPE_FLOAT, false, gg.SIGN_EQUAL, 0, -1)
	 gg.getResults(100)
	 gg.editAll("10", gg.TYPE_FLOAT)
	 gg.toast("人物踏空开启成功")
	 gg.clearResults()
end
},
}),
			}
		})
	end
})

floatingWindowManager:newWindow('连发功能', {
	onCreate = function(floatingWindow)

		floatingWindow:addlayout({
			ScrollView,
			layout_width = 'match_parent',
			layout_height = 'match_parent',
			{
				LinearLayout,
				background = floatingWindowManager:getStateListDrawable(),
				background="",
				layout_width = 'match_parent',
				layout_height = 'match_parent',
				orientation = 'vertical',
				padding = '20dp',
changan.seek("连发调试","lf",1,100,5),
changan.button("普通火箭筒",
function()
fastsearch({{1113587712, 32, 32}, {1056964608, 16, 4}, {1061997773, 20, 4}, {1065353216, 28, 4}}, {{lf, 8, 4, false}, {0, 24, 16, false}})
gg.alert(lf)
end),
changan.button("乱斗火箭筒",
                function()
                fastsearch({{1115684864, 32, 32}, {1056964608, 16, 4}, {1061997773, 20, 4}, {1065353216, 28, 4}}, {{lf, 8, 4, false}, {0, 24, 16, false}}) nh({{1117126656, 32, 32}, {1056964608, 16, 4}, {1061997773, 20, 4}, {1065353216, 28, 4}}, {{lf, 8, 4, false}, {0, 24, 16, false}})
gg.alert(lf)
                end),
                changan.button("迫击炮一级",
                function()
                fastsearch({{1120272384, 32, 32}, {1056964608, 16, 4}, {1061997773, 20, 4}, {1056964608, 28, 4}}, {{lf, 8, 4, false}, {0, 24, 16, false}})
gg.alert(lf)
                end),
                changan.button("冲锋枪连发",
                function()
                fastsearch({{1092616192, 32, 32}, {1028443341, 12, 4}, {1056964608, 16, 4}, {1060320051, 20, 4}, {0, 24, 4}}, {{lf, 8, 4, false}})
gg.alert(lf)
                end),
                changan.button("普通能量剑",
                function()
                fastsearch({{1115947008, 32, 32}, {0, 12, 4}, {0, 16, 4}, {0, 20, 4}, {0, 24, 4}, {0, 28, 4}}, {{lf, 8, 4, false}}) 
gg.alert(lf)
                end),
                changan.button("金库能量剑",
                function()
                fastsearch({{1117782016, 32, 32}, {0, -4, 4}, {0, 4, 4}, {0, 12, 4}, {0, 16, 4}, {0, 20, 4}, {0, 24, 4}, {0, 28, 4}}, {{lf, 8, 4, false}}) 
gg.alert(lf)
                end),
                changan.button("乱斗能量剑",
                function()
                fastsearch({{1116078080, 32, 32}, {0, -4, 4}, {0, 4, 4}, {0, 12, 4}, {0, 16, 4}, {0, 20, 4}, {0, 24, 4}, {0, 28, 4}}, {{lf, 8, 4, false}}) 
gg.alert(lf)
                end),
                changan.button("普通蹦蹦枪",
                function()
                fastsearch({{1115947008, 32, 32}, {1067030938, 16, 4}, {1067030938, 20, 4}, {1050253722, 28, 4}}, {{lf, 8, 4, false}, {0, 24, 16, false}}) 
gg.alert(lf)
                end),
                changan.button("金库蹦蹦枪",
                function()
                fastsearch({{1116733440, 32, 32}, {1067030938, 16, 4}, {1067030938, 20, 4}, {1050253722, 28, 4}}, {{lf, 8, 4, false}, {0, 24, 16, false}}) 
gg.alert(lf)
                end),
                changan.button("乱斗蹦蹦枪",
                function()
                fastsearch({{1115684864, 32, 32}, {1067030938, 16, 4}, {1067030938, 20, 4}, {1050253722, 28, 4}}, {{lf, 8, 4, false}, {0, 24, 16, false}}) 
gg.alert(lf)
                end),
                changan.button("能量炮连发",
                function()
                fastsearch({{1112539136, 32, 32}, {1067030938, 16, 4}, {1067030938, 20, 4}, {1050253722, 28, 4}}, {{lf, 8, 4, false}, {0, 24, 16, false}})
gg.alert(lf)
                end),
                changan.button("普通霰弹枪",
                function()
                fastsearch({{1120403456, 32, 32}, {1056964608, 16, 4}, {1060320051, 20, 4}, {1065353216, 28, 4}}, {{lf, 8, 4, false}, {0, 24, 16, false}}) 
gg.alert(lf)
                end),
                changan.button("金库霰弹枪",
                function()
                fastsearch({{1100480512, 32, 32}, {1056964608, 16, 4}, {1060320051, 20, 4}, {1065353216, 28, 4}, {0, 32, 4}}, {{lf, 8, 4, false}, {0, 24, 16, false}}) 
gg.alert(lf)
                end),
                changan.button("换风镖连发",
                function()
                fastsearch({{1113587712, 32, 32}, {0, 12, 4}, {0, 16, 4}, {0, 20, 4}, {1036831949, 28, 4}}, {{lf, 8, 4, false}, {0, 24, 16, false}})
gg.alert(lf)
                end),
                changan.button("霸天斧连发",
                function()
                fastsearch({{1114636288, 32, 32}, {0, 12, 4}, {0, 16, 4}, {0, 20, 4}, {1.2000000476837158, 24, 16}, {1008981770, 28, 4}}, {{lf, 8, 4, false}})
gg.alert(lf)
                end),
                changan.button("黎明盾武器",
                function()
                fastsearch({{1109393408, 32, 32}, {0, 12, 4}, {1060320051, 16, 4}, {1060320051, 20, 4}, {0, 24, 4}, {0, 28, 4}}, {{lf, 8, 4, false}})
endgg.alert(lf)
                end),
                changan.button("星辰女武器",
                function()
                fastsearch({{1099956224, 32, 32}, {0, 12, 4}, {1056964608, 16, 4}, {1060320051, 20, 4}, {1050253722, 28, 4}}, {{lf, 8, 4, false}, {0, 24, 16, false}})
gg.alert(lf)
                end),
			}
		})
	end
})

floatingWindowManager:newWindow('自调功能', {
	onCreate = function(floatingWindow)

		floatingWindow:addlayout({
			ScrollView,
			layout_width = 'match_parent',
			layout_height = 'match_parent',
			{
				LinearLayout,
				background = floatingWindowManager:getStateListDrawable(),
				layout_width = 'match_parent',
				layout_height = 'match_parent',
				orientation = 'vertical',
				padding = '10dp',
				changan.seek("自调设置","zt",1,200,5),
changan.button("迫击范围",
                function()
                fastsearch({{99.0, 16, 32}, {0.20000000298023224, -32, 16}, {0.4000000059604645, -24, 16}, {0.15000000596046448, -20, 16}, {1.0, -16, 16}, {0.8500000238418579, -12, 16}, {2.5, 12, 16}}, {{zt, -36, 16, false}})
gg.alert("开启成功")
                end),
changan.button("迫击射程",
function()
fastsearch({{1031127695, 4, 32}, {1008981770, 12, 4}, {1008981770, 16, 4}, {1008981770, 20, 4}, {1028443341, 28, 4}, {0, 40, 4}, {0, 48, 4}, {0, 60, 4}}, {{zt, -4, 16, false}})
gg.alert("开启成功")
end),
changan.button("腕炮范围",
                function()
                fastsearch({
{5,16,32},
{1,4,16},
{0,8,16}},
{{u[1],4,16, false}})
gg.alert("开启成功")
                end),
                changan.button("腕炮射程",
                function()
                fastsearch({{4333543705419175690, 32, 32}, {1045220557, -28, 32}, {1084227584, -16, 32}, {1008981770, 4, 4}, {1036831949, 16, 4}}, {{zt, -40, 16, false}, {5, -16, 16, true}})
gg.alert("开启成功")
                end),
                changan.button("蹦枪射程",
                function()
                xtnb({{false,-20.0,4,16,nil,nil},{0.800000011920929,12,16},{-0.4000000059604645,16,16},{2.5,20,16},{1.5,24,16}},{{u[1],0,16,false}},16,32,"蹦蹦枪射程")
gg.alert("开启成功")
                end),
                changan.button("引力范围",
                function()
fastsearch({{1075838976, 4, 32}, {-0.25, -36, 16}, {0.6000000238418579, -32, 16}, {0.8999999761581421, -24, 16}, {20.0, -16, 16}, {500.0, -12, 16}, {0.20000000298023224, 4, 16}}, {{zt, -4, 16, false}})
gg.alert("开启成功")
                end),
                changan.button("倒地加速",
                function()
                qmnb = {
{["memory"] = 32},
{["name"] = "倒地加速"},
{["value"] = 900.0, ["type"] = 16},
{["lv"] = 0.24199999868869781, ["offset"] = 16, ["type"] = 16},
}
qmxg = {
{["value"] = zt, ["offset"] = 16, ["type"] = 16},
}
xqmnb(qmnb)
                end),
                changan.button("毒液范围",
                function()
                qmnb = {
{["memory"] = 32},
{["name"] = "毒液范围"},
{["value"] = 200.0, ["type"] = 16},
{["lv"] = 2.0, ["offset"] = 8, ["type"] = 16},
}
qmxg = {
{["value"] = zt, ["offset"] = 8, ["type"] = 16},
}
xqmnb(qmnb)
                end),
                changan.button("斧头范围",
                function()
                qmnb = {
{["memory"] = 32},
{["name"] = "霸天斧范围"},
{["value"] = 6.25, ["type"] = 16},
{["lv"] = -1.5,["offset"] =-8, ["type"] = 16},
}
qmxg = {
{["value"] = 1.5,["offset"] =4, ["type"] = 16},
{["value"] = 0.25,["offset"] =8, ["type"] = 16},
{["value"] = 0.5,["offset"] =12, ["type"] = 16},
{["value"] = 1.5,["offset"] =-12, ["type"] = 16},
{["value"] = 584,["offset"] =-24, ["type"] = 4},
{["value"] = 583,["offset"] =-48, ["type"] = 4},
{["value"] = zt,["offset"] =0, ["type"] = 16},
}
xqmnb(qmnb)
                end),
                changan.button("引力伤害",
                function()
                xtnb({{false,5.323445557E-315,4,64,nil,nil},{3.0E-323,36,64}},{{zt,0,64,false}},64,32,"引力场伤害")
                end),
                changan.button("挥刀距离",
                function()
                fastsearch({{1115947008, 32, 32}, {240, 0x8, 4}, {1135869952, 0x14, 4},}, {{zt, 0x30, 16, false}})
                end),
                changan.button("开门速度",
                function()
                qmnb = {
{["memory"] = 32},
{["name"] = "开门速度"},
{["value"] = 8.0, ["type"] = 16},
{["lv"] = 1.0,["offset"] =16, ["type"] = 16},
}
qmxg = {
{["value"] = zt,["offset"] =0, ["type"] = 16},
}
xqmnb(qmnb)
                end),
                changan.seek("上帝视野","sdsy",1,55,5,
function()
  fastsearch({
     {55.00000762939453, 16, 32},
     {30.0, -40, 16}, 
   }, {
      {sdsy, -28, 16, false},
   },"")
end),
			}
		})
	end
})

floatingWindowManager:newWindow('传送功能', {
	onCreate = function(floatingWindow)

		floatingWindow:addlayout({
			ScrollView,
			layout_width = 'match_parent',
			layout_height = 'match_parent',
			{
				LinearLayout,
				background = floatingWindowManager:getStateListDrawable(),
				layout_width = 'match_parent',
				layout_height = 'match_parent',
				orientation = 'vertical',
				padding = '10dp',
{
TextView,
text = "                                       4v1                                     ",
},
				changan.button("出生点",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{3.31672906876,-212,16},{15.10242652893,-204,16}}) 
                end),
                changan.button("禁闭室",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{41.2279510498,-212,16},{15.20110321045,-204,16}}) 
                end),
                changan.button("逃生点",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{80.47306060791,-212,16},{15.10242652893,-204,16}}) 
                end),
                changan.button("左上锁",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{24.47529602051,-212,16},{25.74204444885,-204,16}}) 
                end),
                changan.button("左下锁",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{25.52613067627,-212,16},{2.29943323135,-204,16}}) 
                end),
                changan.button("右上锁",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{58.20668029785,-212,16},{24.98922157288,-204,16}})
                end),
                changan.button("右下锁",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{55.20252609253,-212,16},{3.50737595558,-204,16}})
                end),
                changan.button("上逃门",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{75.47306060791,-212,16},{19.40088844299,-204,16}})
                end),
                changan.button("下逃门",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{75.5991897583,-212,16},{10.4521522522,-204,16}})
                end),
                changan.button("一键锁",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{24.47529602051,-212,16},{25.74204444885,-204,16}}) 
fastsearch({{1052770303,4,32},{-10,-152,16}},{{25.52613067627,-212,16},{2.29943323135,-204,16}})
fastsearch({{1052770303,4,32},{-10,-152,16}},{{58.20668029785,-212,16},{24.98922157288,-204,16}})
fastsearch({{1052770303,4,32},{-10,-152,16}},{{55.20252609253,-212,16},{3.50737595558,-204,16}})
fastsearch({{1052770303,4,32},{-10,-152,16}},{{75.47306060791,-212,16},{19.40088844299,-204,16}})
                end),
{
TextView,
text = "                                       8v2                                     ",
},                
				changan.button("出生点",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{4.79341316223,-212,16},{4.50854158401,-204,16}})
                end),
                changan.button("禁室",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{43.43095779419,-212,16},{19.70534706116,-204,16}})
                end),
                changan.button("逃生",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{86.59527587891,-212,16},{38.43141555786,-204,16}})
                end),
                changan.button("锁一",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{8.40417480469,-212,16},{30.41175842285,-204,16}})
                end),
                changan.button("锁二",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{25.5557384491,-212,16},{35.01443862915,-204,16}})
                end),
                changan.button("锁三",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{40.48873519897,-212,16},{28.41207695007,-204,16}})
                end),
                changan.button("锁四",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{56.48946380615,-212,16},{35.36185073853,-204,16}})
                end),
                changan.button("锁五",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{25.46974754333,-212,16},{19.14470291138,-204,16}})
                end),
                changan.button("锁六",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{58.46561813354,-212,16},{16.30953407288,-204,16}})
                end),
                changan.button("锁七",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{84.58843231201,-212,16},{10.42553901672,-204,16}})
                end),
                changan.button("锁八",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{34.43569946289,-212,16},{5.32143163681,-204,16}})
                end),
                changan.button("锁九",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{50.61042404175,-212,16},{2.46119451523,-204,16}})
                end),
                changan.button("锁十",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{69.50844573975,-212,16},{5.45300483704,-204,16}})
                end),
                changan.button("上门",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{65.45124053955,-212,16},{33.24272537231,-204,16}})
                end),
                changan.button("中门",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{72.46097564697,-212,16},{22.39505767822,-204,16}})
                end),
                changan.button("下门",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{80.53405761719,-212,16},{18.30999183655,-204,16}})
                end),
                changan.button("一键",
                function()
                fastsearch({{1052770303,4,32},{-10,-152,16}},{{8.40417480469,-212,16},{30.41175842285,-204,16}})
fastsearch({{1052770303,4,32},{-10,-152,16}},{{25.5557384491,-212,16},{35.01443862915,-204,16}})
fastsearch({{1052770303,4,32},{-10,-152,16}},{{40.48873519897,-212,16},{28.41207695007,-204,16}})
fastsearch({{1052770303,4,32},{-10,-152,16}},{{56.48946380615,-212,16},{35.36185073853,-204,16}})
fastsearch({{1052770303,4,32},{-10,-152,16}},{{25.46974754333,-212,16},{19.14470291138,-204,16}})
fastsearch({{1052770303,4,32},{-10,-152,16}},{{58.46561813354,-212,16},{16.30953407288,-204,16}})
fastsearch({{1052770303,4,32},{-10,-152,16}},{{84.58843231201,-212,16},{10.42553901672,-204,16}})
fastsearch({{1052770303,4,32},{-10,-152,16}},{{34.43569946289,-212,16},{5.32143163681,-204,16}})
fastsearch({{1052770303,4,32},{-10,-152,16}},{{50.61042404175,-212,16},{2.46119451523,-204,16}})
fastsearch({{1052770303,4,32},{-10,-152,16}},{{69.50844573975,-212,16},{5.45300483704,-204,16}})
fastsearch({{1052770303,4,32},{-10,-152,16}},{{72.46097564697,-212,16},{22.39505767822,-204,16}})
                end),
{
TextView,
text = "                                       乱斗                                     ",
},
                changan.button("Boss房",
                function()
                fastsearch({{1052770303,4,32},{1111752704,-132,4}},{{66.4966506958,-212,16},{55.80109786987,-204,16},{3,-208,16,false}}) 
                end),
                changan.button("教堂处",
                function()
                fastsearch({{1052770303,4,32},{1111752704,-132,4}},{{95.24781799316,-212,16},{19.73115158081,-204,16},{3,-208,16,false}}) 
                end),
                changan.button("海岛船",
                function()
                fastsearch({{1052770303,4,32},{1111752704,-132,4}},{{69.37117767334,-212,16},{24.43232536316,-204,16},{3,-208,16,false}}) 
                end),
                changan.button("C字楼",
                function()
                fastsearch({{1052770303,4,32},{1111752704,-132,4}},{{44.47694778442,-212,16},{81.638671875,-204,16},{3,-208,16,false}}) 
                end),
                changan.button("左上角",
                function()
                fastsearch({{1052770303,4,32},{1111752704,-132,4}},{{2.84615135193,-212,16},{89.20371246338,-204,16},{3,-208,16,false}})
                end),
                changan.button("左下角",
                function()
                fastsearch({{1052770303,4,32},{1111752704,-132,4}},{{3.23502087593,-212,16},{8.40855884552,-204,16},{3,-208,16,false}})
                end),
                changan.button("右上角",
                function()
                fastsearch({{1052770303,4,32},{1111752704,-132,4}},{{110.30619049072,-212,16},{98.42283630371,-204,16},{3,-208,16,false}})
                end),
                changan.button("右下角",
                function()
                fastsearch({{1052770303,4,32},{1111752704,-132,4}},{{110.25003814697,-212,16},{6.84382724762,-204,16},{3,-208,16,false}})
                end),
{
TextView,
text = "                                       夺宝                                     ",
},
                changan.button("蓝出生地",
                function()
                xtnb({{false,9.184530524724149E-41,0,16,nil,nil},{-10.0,132,16},{49.0,152,16},{1.0000000331813535E32,156,16}},{{1.11001396179,72,16},{9.55462265015,80,16,false}},16,32,"蓝方出生点")
                end),
                changan.button("红出生地",
                function()
                xtnb({{false,9.184530524724149E-41,0,16,nil,nil},{-10.0,132,16},{49.0,152,16},{1.0000000331813535E32,156,16}},{{49.11001396179,72,16},{9.55462265015,80,16,false}},16,32,"红方出生点")
                end),
                changan.button("蓝方旗子",
                function()
                xtnb({{false,9.184530524724149E-41,0,16,nil,nil},{-10.0,132,16},{49.0,152,16},{1.0000000331813535E32,156,16}},{{11.11001396179,72,16},{9.55462265015,80,16,false}},16,32,"蓝方旗帜")
                end),
                changan.button("红方旗子",
                function()
                xtnb({{false,9.184530524724149E-41,0,16,nil,nil},{-10.0,132,16},{49.0,152,16},{1.0000000331813535E32,156,16}},{{37.11001396179,72,16},{9.55462265015,80,16,false}},16,32,"红方旗帜")
                end),
                changan.button("蓝一键胜",
                function()
                xtnb({{false,9.184530524724149E-41,0,16,nil,nil},{-10.0,132,16},{49.0,152,16},{1.0000000331813535E32,156,16}},{{37.11001396179,72,16},{9.55462265015,80,16,false}},16,32,"红方旗帜1")
xtnb({{false,9.184530524724149E-41,0,16,nil,nil},{-10.0,132,16},{49.0,152,16},{1.0000000331813535E32,156,16}},{{1.11001396179,72,16},{9.55462265015,80,16,false}},16,32,"蓝方出生点1")
xtnb({{false,9.184530524724149E-41,0,16,nil,nil},{-10.0,132,16},{49.0,152,16},{1.0000000331813535E32,156,16}},{{37.11001396179,72,16},{9.55462265015,80,16,false}},16,32,"红方旗帜2")
xtnb({{false,9.184530524724149E-41,0,16,nil,nil},{-10.0,132,16},{49.0,152,16},{1.0000000331813535E32,156,16}},{{1.11001396179,72,16},{9.55462265015,80,16,false}},16,32,"蓝方出生点2")
xtnb({{false,9.184530524724149E-41,0,16,nil,nil},{-10.0,132,16},{49.0,152,16},{1.0000000331813535E32,156,16}},{{37.11001396179,72,16},{9.55462265015,80,16,false}},16,32,"红方旗帜3")
xtnb({{false,9.184530524724149E-41,0,16,nil,nil},{-10.0,132,16},{49.0,152,16},{1.0000000331813535E32,156,16}},{{1.11001396179,72,16},{9.55462265015,80,16,false}},16,32,"蓝方出生点3\n蓝队胜利")
                end),
                changan.button("红一键胜",
                function()
                xtnb({{false,9.184530524724149E-41,0,16,nil,nil},{-10.0,132,16},{49.0,152,16},{1.0000000331813535E32,156,16}},{{11.11001396179,72,16},{9.55462265015,80,16,false}},16,32,"蓝方旗帜1")
xtnb({{false,9.184530524724149E-41,0,16,nil,nil},{-10.0,132,16},{49.0,152,16},{1.0000000331813535E32,156,16}},{{49.11001396179,72,16},{9.55462265015,80,16,false}},16,32,"红方出生点1")
xtnb({{false,9.184530524724149E-41,0,16,nil,nil},{-10.0,132,16},{49.0,152,16},{1.0000000331813535E32,156,16}},{{11.11001396179,72,16},{9.55462265015,80,16,false}},16,32,"蓝方旗帜2")
xtnb({{false,9.184530524724149E-41,0,16,nil,nil},{-10.0,132,16},{49.0,152,16},{1.0000000331813535E32,156,16}},{{49.11001396179,72,16},{9.55462265015,80,16,false}},16,32,"红方出生点2")
xtnb({{false,9.184530524724149E-41,0,16,nil,nil},{-10.0,132,16},{49.0,152,16},{1.0000000331813535E32,156,16}},{{11.11001396179,72,16},{9.55462265015,80,16,false}},16,32,"蓝方旗帜3")
xtnb({{false,9.184530524724149E-41,0,16,nil,nil},{-10.0,132,16},{49.0,152,16},{1.0000000331813535E32,156,16}},{{49.11001396179,72,16},{9.55462265015,80,16,false}},16,32,"红方出生点3\n红队胜利")
                end),
			}
		})
	end
})

floatingWindowManager:newWindow('音乐功能', {
	onCreate = function(floatingWindow)

		floatingWindow:addlayout({
			ScrollView,
			background="",
			layout_width = 'match_parent',
			layout_height = 'match_parent',
			{
				LinearLayout,
				background = floatingWindowManager:getStateListDrawable(),
				layout_width = 'match_parent',
				layout_height = 'match_parent',
				orientation = 'vertical',
				padding = '20dp',
                changan.button("停止音乐",
                function()
                    gg.toast("正在停止音乐")
    for i=1,100 do
        gg.playMusic("stop")
        gg.playMusic("stop")
        gg.playMusic("stop")
    end
                end),
                changan.button("你看到了我",
                function()
                 gg.playMusic("http://music.163.com/song/media/outer/url?id=1377530437.mp3")
                end),
                changan.button("江南style",
                function()
                 gg.playMusic("http://music.163.com/song/media/outer/url?id=27490912.mp3")
                end),
                changan.button("杨戬擒悟空",
                function()
                 gg.playMusic("http://music.163.com/song/media/outer/url?id=29999128.mp3")
                end),
                changan.button("烧酒歌",
                function()
                gg.playMusic("http://music.163.com/song/media/outer/url?id=1927948807.mp3")
                end),
                changan.button("雪[DJ]",
                function()
                gg.playMusic("http://music.163.com/song/media/outer/url?id=2027757465.mp3")
                end),
                changan.button("猴王出世",
                function()
                gg.playMusic("http://music.163.com/song/media/outer/url?id=27552544.mp3")
                end),
                changan.button("迈克尔杰克逊",
                function()
                gg.playMusic("http://music.163.com/song/media/outer/url?id=1698391.mp3")
                end),
                changan.button("印度国歌",
                function()
                gg.playMusic("http://music.163.com/song/media/outer/url?id=2024109979.mp3")
                end),
                changan.button("小小花园里挖",
                function()
                 gg.playMusic("http://music.163.com/song/media/outer/url?id=2048772156.mp3")
                end),
			}
		})
	end
})
floatingWindowManager:run()