function CSM(C,S,M)if M~=nil then if C==nil then gg.toast(M..'开启失败\n原因：无主特种码')elseif C==false then gg.toast(M..'开启失败\n原因：无副特征码')else local x,d={},{}for i=1,#C do for k,w in ipairs(S)do local t={}t['address']=C[i]+w[1]*4 t['flags']=w[2]t['value']=w[3]if(w[4]==true)then t['freeze']=true d[#d+1]=t else x[#x+1]=t end end end gg.setValues(x)gg.addListItems(d)gg.toast(M..'\n开启成功')end elseif S~=nil then gg.clearResults()gg.setRanges(C[1])gg.searchNumber(C[2],C[3],false,gg.SIGN_EQUAL,C[4],C[5],C[6])local SL=gg.getResultCount()local SS=gg.getResults(SL)gg.clearResults()local DZ={}if(SL>0)then for i,v in ipairs(SS)do v.isUseful=true end for k=1,#S do local tmp={}local num=S[k][2]for i,v in ipairs(SS)do tmp[#tmp+1]={}tmp[#tmp].address=v.address+S[k][1]*4 tmp[#tmp].flags=v.flags end tmp=gg.getValues(tmp)for i,v in ipairs(tmp)do if (v.value~=num)then SS[i].isUseful=false end end end for i,v in ipairs(SS)do if(v.isUseful)then DZ[#DZ+1]=v.address end end if DZ[1]==nil then return false else return DZ end else return nil end end end
local function hqsj(dz,sj)local t={}for i,v in ipairs(sj)do t[i]={}t[i].address=dz+sj[i][1]*4 t[i].flags=sj[i][2]end local ss=gg.getValues(t)local s={}for i,v in ipairs(ss)do s[i]=ss[i]['value']end return s end
local function DXWJ(l,m,n)
if m==1 then
local c=io.open(l,'r')
if c==nil then
return c
else
local c=io.open(l,'r')
g=c:read('*a')
c:close()
end
return g
elseif m==2 then
local file=io.open(l,'w')
file:write(n)
file:close()
end
end





function cmgn1()
 gg.clearResults()
	 gg.setRanges(16384)
	 gg.searchNumber("167,772,164;973,078,531:17", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
	 gg.searchNumber("167,772,164;973,078,531", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
	 jg=gg.getResults(150)
	 sl=gg.getResultCount()
	 if sl>100 then sl=100 end
	 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("防封50%开启成功")
	 gg.clearResults()
end






function cmgn2()
gg.clearResults()
	 gg.setRanges(16384)
	 gg.searchNumber("973,078,531;436,207,619:37", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
	 gg.searchNumber("973,078,531;436,207,619", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
	 jg=gg.getResults(150)
	 sl=gg.getResultCount()
	 if sl>100 then sl=100 end
	 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("100%开启成功")
	 gg.clearResults()
end

--[[
function cmgn3()
local DG=CSM({4,1000,16,0,FW},{{-4,1000},{-20,100},{2,1},{-38,1},{-40,1000},})
CSM(DG,{{2,16,0},{-38,16,0},},"无后➕防抖")
end
]]

function cmgn3()
local DG=CSM({4,1050253722,4,0,FW},{{-2,1050253722},{2,1063675494},})
CSM(DG,{{2,4,-1},},"微自瞄")
end


function cmgn4()
local GT=CSM({4,0.00001,16,0,FW},{{-4,2},{2,90},{4,90},})
CSM(GT,{{0,16,0.75},},"子弹范围")
end


function cmgn5()
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
so=gg.getRangesList('dalvik-main space (region space) (deleted)')[1].start
py=0xB3E8EB98
setvalue(so+py,16,3)
local LT=CSM({4,0.0001,16,0,FW},{{-4,0.5},{4,2},{6,4},{12,2},})
CSM(LT,{{-2,16,3.5},},"大范围")
end



function cmgn6()
gg.clearResults()
gg.setRanges(gg.REGION_CODE_APP)
gg.searchNumber("771,800,128;51,192,065:33", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
gg.getResults(10)
gg.editAll("0", gg.TYPE_DWORD)
gg.clearResults()
gg.setRanges(gg.REGION_CODE_APP)
gg.searchNumber("560,275,502", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
gg.getResults(10)
gg.editAll("0", gg.TYPE_DWORD)
gg.clearResults()
gg.setRanges(gg.REGION_CODE_APP)
gg.searchNumber("571,225,087", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
gg.getResults(10)
gg.editAll("0", gg.TYPE_DWORD)
gg.clearResults()
gg.setRanges(gg.REGION_CODE_APP)
gg.searchNumber("545,285,102;9,463,715;1,614,438,465:21", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
gg.getResults(10)
gg.editAll("0", gg.TYPE_DWORD)
gg.clearResults()
gg.setRanges(gg.REGION_CODE_APP)
gg.searchNumber("7,365,970", gg.TYPE_DWORD, false, gg.SIGN_EQUAL, 0, -1)
gg.getResults(10)
gg.editAll("0", gg.TYPE_DWORD)
gg.clearResults()
end



cmfsdj="/sdcard/Android/csmcmfsdj"
fsdj=DXWJ(cmfsdj,1)
if fsdj==nil then fsdj=1 end
local fw={"C","B","A"}
FW="0x"..fw[fsdj*1].."FFFFFFF"
function czymf()
local m={
"防封50%(大厅开启)",
"防封100%(大厅开启)",
"隔墙自瞄",
"小范围",
"大范围(局内开)",
"防禁网(测试)",
"退出脚本"
}
local g=gg.multiChoice(m,nil,DQSJ)
if g~=nil then 
if g[#m]==true then os.exit()else 
if g[1]==true then cmgn1()end
if g[2]==true then cmgn2()end
if g[3]==true then cmgn3()end
if g[4]==true then cmgn4()end
if g[5]==true then cmgn5()end
if g[6]==true then cmgn6()end

end 
end 
kg=-1 
end
while(true)do if gg.isVisible(true)then 
kg=1 gg.setVisible(false)end if 
kg==1 then 
czymf()
end
end