刚刚发现有人使用中文版GS,日志也是中文的,请知道关键字的朋友贴上去
已知中文日至为:输入密码时间太长
本人测试25兆日志文件查找时间不到10秒
CPU:志强2.4*2 主板:泰安 内存:512 DDR ECC
事先声明,程序不够理想,还有很多不尽人意的地方
1、目前只能查出定点刷怪,其他如(复制)、(全屏检)由于没找到日志关键字,无法实现 2、程序可自定义是否自动封停,可自定义举报的可信度,具体在配置区修改 3、由于本人最近忙于其他事物,此程序发布时间延后较长。为了尽早发放,故未经过严格测试,如果有错误,请及时通知 4、参考网站,www.klq8.net (最好31日后参考,我还没联系上此人为我最终测试)
本程序前台为梦之奇迹104版,共3个文件 zxjb.asp 在线举报系统 ftlb.asp 封停公告系统 inc_ft.asp 程序菜单
后台稍后发出
本程序需要新建两个数据表 表名:zxjb_info 键列信息: (jbchr) [nvarchar] 50 (bjbchr) [nvarchar] 50 (jf) [int] 4 (dt) [int] 4 (xz) [int] 4 (yz) [int] 4 (bz) [nvarchar] 50 (date_info) [smalldatetime] 4 (jjf) [int] 4
表名:hmd_info 键列信息: (memb___id) [nvarchar] 50 (chr) [nvarchar] 50 (lx) [int] 4 (jf) [int] 4 (date_info) [smalldatetime] 4 (ft) [int] 4
备注:()为列名,[]为类型,后面为长度
------------------------------------------------------------------------------------------------------------------------------------
ftlb.asp
<!--#include file="conn.asp" --> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>-=梦之奇迹=-------打造网络游戏新纪元</title> <link href="img/css.css" rel="stylesheet" type="text/css"> </head>
<body leftmargin="0" topmargin="0"> <!--#include file="top.asp" --> <TABLE align=center border=1 cellPadding=0 cellSpacing=0 width=760 borderColor="#666666" frame=vsides rules=none> <TR> <td width=204 align=left vAlign=top background="img/left_bg.gif"><img src="img/left_top_news.gif" width="204" height="36"><img src="img/left02_news1.gif" width="197" height="40"> <img src="img/123.gif" width="195" height="130" class="hand"> <table width="195" height="73" border="0" cellpadding="6" cellspacing="0" class="content"> <tr> <td height="73" valign="top"> <!--#include file="inc_ft.asp" --> </td> </tr> </table></TD> <td width=1 height="190" background="img/xu.gif"></TD> <td width=553 align=center vAlign=top bgcolor="#FFFFFF" class="newsbg"> <table width="467" height="366" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="467" valign="top"> <table width="100%" border="0" cellpadding="0"> <tr><td height="15"></td></tr> <tr><td align=center><font size="3">封停列表</font></td></tr> </table>
<table width="90%" border="1" cellpadding="0" cellspacing="0"> <tr><td align=center>账户</td><td align=center>角色</td> <td align=center>封停时间</td><td align=center>原因</td></tr> <% set rs1 = Server.CreateObject("ADODB.Recordset") sql1="select * from hmd_info where ft=1 order by date_info desc" rs1.open sql1,conn,1,1 for i=1 to 20 if rs1.eof or rs1.bof then exit for Response.Write"<tr><td align=center>"&rs1("memb___id")&"</td>" Response.Write"<td align=center>"&rs1("chr")&"</td>" Response.Write"<td align=center>"&rs1("date_info")&"</td>" if rs1("lx")="1" then Response.Write"<td align=center>使用外挂</td>" if rs1("lx")="2" then Response.Write"<td align=center>恶意举报</td>" if rs1("lx")="3" then Response.Write"<td align=center>非法物品</td>" if rs1("lx")="4" then Response.Write"<td align=center>其他原因</td>" Response.Write"</tr>" rs1.movenext next rs1.close set rs1=nothing %> </table></td> </tr> </table></TD> </TR> </TABLE> <!--#include file="foot.asp" --> </body> </html>
inc_ft.asp
<table width="196" border="0" cellspacing="0" cellpadding="2"> <tr> <td align="center"><img src="img/icon.gif" border="0"> <a href="ftlb.asp">封停列表</a></td> </tr> <tr> <td align="center"><img src="img/icon.gif" border="0"> <a href="zxjb.asp">在线举报</a></td> </tr> </table>
zxjb.asp
<!--#include file="conn.asp" --> <% zdft=0 0:列入黑名单,1:列入黑名单并自动封停
zbfw=20 判断举报角色坐标的偏移半径,超过超过偏移量视为恶意举报
jbkxd=10 举报的可信度,超过可信度将列入黑名单
levl50=0 50级以下角色的可信度 levl150=1 低于150级角色的可信度 levl250=2 100-250级角色的可信度 levlmax=3 超过250级角色的可信度
eyjb=30 错误举报超过此数量则列入恶意举报黑名单,取消举报资格,设为0:不限制
fxft=0 0:恶意举报不封停举报人,1:恶意举报将反响封停举报人
jgdate=1 用户连续举报同一角色间隔天数,0:不限制(建议限制天数)
yxdate=15 名单有效期限,超过有效期限的纪录不计算可信度
ontime=8 午夜0点至当前小时不开放此服务,由于日志更新原因,为保证是别的准确率,尽量暂停开放一段时间
jbsl=100 限制每天举报的数量,跟9C差不多,0:不限制
filedir="d:\MuServer\GameServer\log\" GS日志路径
wglog="Too long time passed after casting magic." 外挂关键字,请不要随意更改
hk=0 user=request.form("user") jbchr=request.form("jbchr") pw=request.form("pw") bjbchr=request.form("bjbchr") dt=request.form("dt") xz=request.form("xz") yz=request.form("yz") lx=request.form("lx") bz=request.form("bz") jf=request.form("jf")
if instr(user,"")<>0 then hk=1 if instr(user,"=")<>0 then hk=1 if instr(user,"%")<>0 then hk=1 if instr(jbchr,"")<>0 then hk=1 if instr(jbchr,"=")<>0 then hk=1 if instr(jbchr,"%")<>0 then hk=1 if instr(pw,"")<>0 then hk=1 if instr(pw,"=")<>0 then hk=1 if instr(pw,"%")<>0 then hk=1 if len(user)>10 then hk=1 if len(jbchr)>10 then hk=1 if len(pw)>16 then hk=1 if hour(time())<ontime then response.write "<script language=javascript>alert(\n\n对不起,举报系统暂时关闭!);history.back()</script>" response.end end if if hk<>0 then response.write "<script language=javascript>alert(\n\n请不要尝试入侵系统!);history.back()</script>" response.end end if if user<>"" and jbchr<>"" and pw<>"" then if dt<>"no" and xz<>"" and yz<>"" and bjbchr<>"" and lx<>"no" and len(bz)>0 and len(bz)<100 then set rs3 = Server.CreateObject("ADODB.Recordset") sql3="select * from Character where Name="&bjbchr&"" rs3.open sql3,conn,1,1 if rs3.eof or rs3.bof then response.write "<script language=javascript>alert(\n\n没找到举报的角色,请重新填写!);history.back()</script>" response.end end if set rs5 = Server.CreateObject("ADODB.Recordset") sql5="select * from hmd_info where memb___id="&user&" and chr="&jbchr&" and date_info>"&date()-yxdate&"" rs5.open sql5,conn,1,1 if rs5.eof or rs5.bof then else response.write "<script language=javascript>alert(\n\n你已经被列入黑名单,无资格举报他人!);history.back()</script>" response.end end if set rs4 = Server.CreateObject("ADODB.Recordset") sql4="select * from zxjb_info where bjbchr="&bjbchr&" and jbchr="&jbchr&" and date_info>"&date()-jgdate&"" rs4.open sql4,conn,1,1 ey=0 if rs4.eof or rs4.bof then else ey=1 end if response.write "地图号:["&dt&"]("&rs3("MapNumber")&") " response.write "X:["&xz&"]("&rs3("MapPosX")&")|Y:["&yz&"]("&rs3("MapPosY")&") " response.write "恶意判定:["&ey&"]" if rs3("MapNumber")=int(dt) and xz+zbfw>rs3("MapPosX") and xz-zbfw<rs3("MapPosX") and yz+zbfw>rs3("MapPosY") and yz-zbfw<rs3("MapPosY") then else response.write "<script language=javascript>alert(\n\n您输入的地图和位置不正确,没有发现该角色或者已经离开!);history.back()</script>" response.end end if if mid(date(),8,1)="-" then da=mid(date(),1,4)&mid(date(),6,2) if len(date())=10 then da=da&mid(date(),9,2) else da=da&"0"&mid(date(),9,1) end if else da=mid(date(),1,4)&"0"&mid(date(),6,1) if len(date())=9 then da=da&mid(date(),8,2) else da=da&"0"&mid(date(),8,1) end if end if
filepath=filedir&da&"_Mu.log" set mulog=server.createobject("scripting.filesystemobject") if not mulog.fileExists(filepath) then response.write " 日志文件没找到,请与管理员联系!" response.end else set f1=mulog.opentextfile(filepath) end if userlog=0 do while not f1.atEndOfStream n=f1.readline if instr(n,wglog)<>0 and instr(n,bjbchr)<>0 then userlog=1 exit do end if loop f1.colst if ey=0 and userlog=1 then set rs4 = Server.CreateObject("ADODB.Recordset") sql4="INSERT INTO zxjb_info (bjbchr,jbchr,jf,dt,xz,yz,bz,date_info,jjf) VALUES ("&bjbchr&","&jbchr&","&jf&","&dt&","&xz&","&yz&","&bz&","&date()&" "&time()&",0)" set rs4=conn.execute(sql4) rs4.close set rs4 = Server.CreateObject("ADODB.Recordset") sql4="select * from zxjb_info where bjbchr="&bjbchr&" and date_info>"&date()-yxdate&"" rs4.open sql4,conn,1,1 n=0 ft=0 for i=1 to rs4.recordcount n=rs4("jf")+n rs4.movenext next 检查可信度 if n>jbkxd then 如果开启自动封停 if zdft=1 then set rsft = Server.CreateObject("ADODB.Recordset") sqlft="select * from MEMB_INFO where memb___id = "&rs3("AccountID")&"" rsft.open sqlft,conn,1,3 rsft("bloc_code")="1" rs1.update rs1.close ft=1 end if set rs5 = Server.CreateObject("ADODB.Recordset") sql5="select * from hmd_info where memd___id="&fengid&"" rs5.open sql5,conn,1,3 if rs5.eof or rs5.bof then sql5="INSERT INTO hmd_info (memb___id,chr,lx,jf,date_info,ft) VALUES ("&rs3("AccountID")&","&bjbchr&",1,"&n&","&date()&" "&time()&","&ft&")" set rs5=conn.execute(sql5) else rs5("chr")=bjbchr rs5("lx")="1" rs5("jf")=rs5("jf")+jf rs5("date_info")=date()&" "&time() rs5("ft")=ft rs5.update rs5.close end if if ft=1 then response.write "<script language=javascript>alert(\n\n您举报的人物已经查实,现已封停处理!);</script>" else response.write "<script language=javascript>alert(\n\n您举报的人物已经查实,正在等待处理!);</script>" end if response.write "ftlb.asp" response.end else response.write "<script language=javascript>alert(\n\n您举报的人物已经查实,正在等待处理!);</script>" response.write "ftlb.asp" response.end end if else er="未检测到对方的可疑迹象," if ey=1 then er="您的重复举报将被视为恶意举报," set rs4 = Server.CreateObject("ADODB.Recordset") sql4="INSERT INTO zxjb_info (bjbchr,jbchr,jf,dt,xz,yz,bz,date_info,jjf) VALUES ("&bjbchr&","&jbchr&",0,"&dt&","&xz&","&yz&","&bz&","&date()&" "&time()&","&jf&")" set rs4=conn.execute(sql4) rs4.close set rs4 = Server.CreateObject("ADODB.Recordset") sql4="select * from zxjb_info where jbchr="&jbchr&" and date_info>"&date()-yxdate&"" rs4.open sql4,conn,1,1 n=0 ft=0 for i=1 to rs4.recordcount n=rs4("jjf")+n rs4.movenext next 检查可信度 if n>eyjb and eyjb<>0 then 如果开启自动封停 if fxft=1 then set rsft = Server.CreateObject("ADODB.Recordset") sqlft="select * from MEMB_INFO where memb___id = "&user&"" rsft.open sqlft,conn,1,3 rsft("bloc_code")="1" rs1.update rs1.close ft=1 end if set rs5 = Server.CreateObject("ADODB.Recordset") sql5="select * from hmd_info where memd___id="&fengid&"" rs5.open sql5,conn,1,3 if rs5.eof or rs5.bof then sql5="INSERT INTO hmd_info (memb___id,chr,lx,jf,date_info,ft) VALUES ("&user&","&jbchr&",2,"&n&","&date()&" "&time()&","&ft&")" set rs5=conn.execute(sql5) else rs5("chr")=jbchr rs5("lx")="2" rs5("jf")=rs5("jf")+jf rs5("date_info")=date()&" "&time() rs5("ft")=ft rs5.update rs5.close end if if ft=1 then response.write "<script language=javascript>alert(\n\n"&er&"您的恶意举报人物数已经超标,现已将你封停处理!);</script>" else response.write "<script language=javascript>alert(\n\n"&er&"您的恶意举报人物数已经超标,正在等待处理!);</script>" end if response.write "ftlb.asp" response.end else response.write "<script language=javascript>alert(\n\n"&er&"您的恶意举报被记录!);history.back()</script>" response.write "ftlb.asp" response.end end if end if else if request.form("tj")<>"" then response.write "<script language=javascript>alert(\n\n资料错误或填写不完整!);history.back()</script>" response.end end if set rs1 = Server.CreateObject("ADODB.Recordset") sql1="select * from MEMB_INFO where memb___id = "&user&" and memb__pwd="&pw&"" rs1.open sql1,conn,1,1 if rs1.eof or rs1.bof then response.write "<script language=javascript>alert(\n\n帐号信息错误,请重新填写!);history.back()</script>" response.end end if set rs2 = Server.CreateObject("ADODB.Recordset") sql2="select * from Character where AccountID="&user&" and Name="&jbchr&"" rs2.open sql2,conn,1,1 if rs2.eof or rs2.bof then response.write "<script language=javascript>alert(\n\n没找到角色,请重新填写!);history.back()</script>" response.end end if %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>-=在线举报=-</title> <link href="img/css.css" rel="stylesheet" type="text/css"> </head>
<body leftmargin="0" topmargin="0"> <!--#include file="top.asp" --> <TABLE align=center border=1 cellPadding=0 cellSpacing=0 width=760 borderColor="#666666" frame=vsides rules=none> <TR> <td width=204 align=left vAlign=top background="img/left_bg.gif"> <img src="img/left_top_news.gif" width="204" height="36"><img src="img/left02_hy.gif" width="197" height="40"> <img src="img/122.gif" width="195" height="130" class="hand"> <table width="99%"> <tr> <td width="100%" height="1"></td> </tr> </table> <!--#include file="inc_ft.asp" --> <table width="99%"> <tr> <td width="100%" height="4"></td> </tr> </table> <table width="195" background="img/xu2.gif"> <tr> <td width="182" height="1"></td> </tr> </table> <table width="99%"> <tr> <td width="100%" height="5"></td> </tr> </table></TD> <td width=1 height="190" background="img/xu.gif"></TD> <td width=553 align=left vAlign=middle bgcolor="#FFFFFF"><table width="99%"> <tr> <td width="100%" height="26"></td> </tr> </table> <table width="496" height="396" border="0" align="center" cellpadding="3" cellspacing="0"> <form action="" method="post" name="tjform"><tr> <td width="490" height="34" align="left" > <table width="489" border="0" cellspacing="0" cellpadding="3"> <tr> <td width="483" height="22" align="center" style="font-size:16px"><strong>[<%=jbchr%>]在线举报</strong></td> </tr> </table></td> </tr> <tr> <td height="191" align="center"> <TABLE align=left border=0 cellPadding=5 cellSpacing=1 width="490"> <TBODY> <TR> <TD align=right class=txt_gray width="124">
<% jf=levl50 if rs2("cLevel")>50 then jf=levl150 if rs2("cLevel")>150 then jf=levl250 if rs2("cLevel")>250 then jf=levlmax response.write "["&user&"]["&jbchr&"]["&jf&"]["&pw&"]" %> <input type="hidden" name="jf" value=<%=jf%>> <input type="hidden" name="pw" value=<%=pw%>> <input type="hidden" name="jbchr" value=<%=jbchr%>> <input type="hidden" name="user" value=<%=user%>>举报的角色名称</TD> <TD width="343"> <INPUT name=bjbchr type=text class="lanyu" id="bjbchr" size=18 maxLength=18> </TD> </TR> <TR> <TD align=right class=txt_gray>所在地图</TD> <TD class=txt_gray><select size="1" name="dt" class=button> <option value="no"selected class=button>----请选择----</option> <option value="0" class=button>勇者大陆</option> <option value="1" class=button>地下城</option> <option value="2" class=button>冰封谷</option> <option value="3" class=button>仙踪林</option> <option value="4" class=button>失落之塔</option> <option value="7" class=button>亚特兰蒂斯</option> <option value="8" class=button>死亡沙漠</option> <option value="10" class=button>天空之城</option> </select></TD> </TR> <TR> <TD align=right class=txt_gray>所在坐标</TD> <TD class=txt_gray><INPUT name=xz type=text class="lanyu" id="xz" size=6 maxLength=3>X<INPUT name=yz type=text class="lanyu" id="yz" size=6 maxLength=3></TD> </TR> <TR> <TD align=right class=txt_gray>举报类型</TD> <TD class=txt_gray><select size="1" name="lx" class=button> <option value="no"selected class=button>----请选择----</option> <option value="0" class=button>定点耍怪</option> <option value="1" class=button>自动捡物</option> <option value="2" class=button>复制物品</option> </select></TD> </TR> <TR> <TD align=right class=txt_gray>详细说明</TD> <TD class=txt_gray><textarea name="bz" cols="40" rows="5" id="bz"></textarea></TD> </TR> </TBODY> </TABLE></td> </tr> <tr> <td height="25" align="left"> <table width="322" border="0" cellspacing="0" cellpadding="3"> <tr> <td width="383" align="center" class="bigf"> <img src="img/reg.gif" width="40" height="17" class="hand" onclick="tjform.submit()"> <img src="img/reg1.gif" width="40" height="17" class="hand" onclick="tjform.reset()"></td> </tr> </table></td> </tr></form> <table width="322" border="0" cellspacing="0" cellpadding="3"> <tr><td colspan=3>举报名单</td></tr> <tr><td>被举报人</td><td>举报时间</td><td>处理结果</td></tr> <% set rsmd = Server.CreateObject("ADODB.Recordset") sqlmd="select * from zxjb_info where jbchr = "&jbchr&"" rsmd.open sqlmd,conn,1,3 if rsmd.eof or rsmd.bof then response.write "<tr><td colspan=3>暂时没有举报纪录</td></tr>" else for i=1 to rsmd.pagecount if rsmd("date_info")+15>date()&" "&time() then response.write "<tr><td>"&rsmd("bjbchr")&"</td><td>"&rsmd("date_info")&"</td>" set rsft = Server.CreateObject("ADODB.Recordset") sqlft="select * from hmd_info where bjbchr = "&rsmd("bjbchr")&"" rsft.open sqlft,conn,1,3 if rsft.eof or rsft.bof or rsft("ft")="0" then response.write "<td>正在查实</td></tr>" else response.write "<td>封停账户</td></tr>" end if rsft.close end if rs.movenext next response.write "</table>" end if %> </table> </table></td> </TR> </TABLE> <% end if else %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>-=在线举报=-</title> <link href="img/css.css" rel="stylesheet" type="text/css"> </head> <body leftmargin="0" topmargin="0"> <!--#include file="top.asp" --> <TABLE align=center border=1 cellPadding=0 cellSpacing=0 width=760 borderColor="#666666" frame=vsides rules=none> <TR> <td width=204 align=left vAlign=top background="img/left_bg.gif"> <img src="img/left_top_news.gif" width="204" height="36"><img src="img/left02_hy.gif" width="197" height="40"> <img src="img/122.gif" width="195" height="130" class="hand"> <table width="99%"> <tr> <td width="100%" height="1"></td> </tr> </table> <!--#include file="inc_ft.asp" --> <table width="99%"> <tr> <td width="100%" height="4"></td> </tr> </table> <table width="195" background="img/xu2.gif"> <tr> <td width="182" height="1"></td> </tr> </table> <table width="99%"> <tr> <td width="100%" height="5"></td> </tr> </table></TD> <td width=1 height="190" background="img/xu.gif"></TD> <td width=553 align=left vAlign=middle bgcolor="#FFFFFF"><table width="99%"> <tr> <td width="100%" height="26"></td> </tr> </table> <table width="496" height="306" border="0" align="center" cellpadding="3" cellspacing="0"> <form action="" method="post" name="yzform"><tr> <td width="490" height="20" align="left" > <table width="489" border="0" cellspacing="0" cellpadding="3"> <tr> <td width="483" height="22" align="center" style="font-size:16px"><strong>在线举报</strong></td> </tr> </table></td> </tr> <tr> <td align="center"> <TABLE align=left border=0 cellPadding=5 cellSpacing=1 width="490"> <TBODY> <TR> <TD colSpan=2 align=right class=txt_gray> <DIV align=left> <p class="con2"><span class="bigf"> <font color="#FF0000">请仔细阅读以下注意事项</font></span>
<font color="#cc3300"> 1、本举报程序是为防范和打击外挂而设计。如果举报的情况不真实,将视为恶意举报。
2、任何恶意举报的行为将被记录,超过一定数量,将停止举报资格。
3、举报同一角色必须间隔<%=jgdat%>天。
4、目前举报系统只提供定点耍怪的自动检测功能,因此其他外挂行为暂时不予受理。
5、午夜0时起至<%=ontime%>时之内举报系统关闭维护 </font></p> </DIV></TD> </TR> <TR> <TD align=right class=txt_gray width="124"> 角色名称</TD> <TD width="343"> <INPUT name=jbchr type=text class="lanyu" id="jbchr" size=18 maxLength=18> </TD> </TR> <TR> <TD align=right class=txt_gray>用户帐号</TD> <TD class=txt_gray><INPUT name=user type=text class="lanyu" id="user" size=18 maxLength=16></TD> </TR> <TR> <TD align=right class=txt_gray>用户密码</TD> <TD class=txt_gray><INPUT name=pw type=password class="lanyu" id="pw" size=18 maxLength=16></TD> </TR> </TBODY> </TABLE></td> </tr> <tr> <td height="25" align="left"> <table width="322" border="0" cellspacing="0" cellpadding="3"> <tr> <td width="383" align="center" class="bigf"> <img src="img/reg.gif" width="40" height="17" class="hand" onclick="yzform.submit()"> <img src="img/reg1.gif" width="40" height="17" class="hand" onclick="yzform.reset()"></td> </tr> </table></td> </tr></form> </table></td> </TR> </TABLE> <% end if %> <!--#include file="foot.asp" --> </body> </html>
|