飞飞世界论坛

标题: 来源编辑:阻止崩溃的数据包。 [打印本页]

作者: admin    时间: 2016-1-10 03:29
标题: 来源编辑:阻止崩溃的数据包。
确定的家伙,因为我已经没有任何关系,我将释放如何阻止每次崩溃/欺骗数据包,并保存的ID /绰号的家伙试图您的服务器崩溃。
# n7 m0 j. Z4 G+ L
5 G4 D- H4 k* z8 y首先,你需要有VS.NET2003 Service Pack 1安装和飞飞来源。
6 R& e  F6 I# X# Q7 j
3 B* ]. \" |5 s3 @% i- B+ N为了阻止这些数据包,您需要打开位于worldserver文件夹的DPServer.cpp
+ y4 s3 J0 L. J5 p  S4 ]7 ]4 e' j7 z: a+ F5 K5 T
Equipament崩溃: ( J# O; W8 ]6 r9 E# Y0 J
扰流板: ' u+ c! [, B6 P  Z

. A( p/ g; {+ e; J; t6 d搜索: & M% S% ~. u# \7 G
Code:
       ar>> dwData >> objid >> nPart;
       if(nPart >= MAX_HUMAN_PARTS )
              return;
后添加:
Code:
       CUser*pUser = g_UserMng.GetUser( dpidCache, dpidUser );
       //Crashpacket
       if( nPart > 30 || dwData < 0 || nPart < -1)   {
                     Error("CDPSrvr::OnDoUseItem : Crash Try -> [Player ID: %07d], [Player Name:%s], [Packet used: %d,%d,%d]",
                                          pUser->m_idPlayer,pUser->GetName(), dwData, objid, nPart );
              return;
       }
和评论的第一
Code:
CUser* pUser = g_UserMng.GetUser(dpidCache, dpidUser );
你看到在我的代码。
$ E6 r# ?% Z5 h3 O* ^3 i" U
" M% s( ]! z: e  u2 I- v- H* d# y4 s- X5 e- x5 q
购买崩溃: 9 F, t$ @, c9 a: H
扰流板:
/ M* M0 B7 j: u3 b" x9 o9 S. x5 @0 p" W( M/ h) s, I/ m  A
YOU NEED TO DO IT TWICE, ONE FOR NORMAL BUYSAND ANOTHER FOR RED CHIPS BUYS
(你需要做两次,正常购买和红筹股另一个人购买)

3 ]2 d7 _% J* [' N* W# B6 o  a寻找
Code:
       ar>> cTab >> nId >> nNum >> dwItemId;
       if(cTab >= MAX_VENDOR_INVENTORY_TAB || nNum < 1 )
              return;
然后添加
Code:
       CUser*pUser = g_UserMng.GetUser( dpidCache,dpidUser );
       //CRASH
       if(cTab < 0 || nId < 0 || nNum > 9999 || dwItemId < 0 ) {
              Error("CDPSrvr::OnBuyItem : Crash Try -> [Player ID: %07d], [Player Name:%s], [Packet used: %d,%d,%d,%d]",
                                          pUser->m_idPlayer,pUser->GetName(), cTab, nId, nNum, dwItemId );
              return;
       }
和评论的第一
Code:
CUser* pUser = g_UserMng.GetUser( dpidCache,dpidUser );
你看到在我的代码。 0 B5 ~! O; ~5 u3 b7 W; Z

4 O, t6 ~0 S- U, J' s  u, |. e! _4 z, V  a& }" L1 H! E
掌上崩溃:
, O2 C( {) B6 r/ P, F7 k( q4 s# q  [1 N扰流板: 5 q& t; O! ^, q6 F0 g. R2 O

9 P! r5 h2 Q+ N8 \搜索:
Code:
              ar>> nPocket1 >> nItem >> nNum >> nPocket2;
              if(nPocket1 == nPocket2 )
                     return;
然后添加
Code:
              //DUPECODE
              if(nNum <= 0 ) {
                     Error("CDPSrvr::OnMoveItemOnPocket : Dupe Try -> [Player ID: %07d], [PlayerName: %s], [Packet used: %d,%d,%d,%d]",
                                          pUser->m_idPlayer,pUser->GetName(), nPocket1, nItem, nNum, nPocket2 );
                     return;
              }
              //CRASH
              if(nItem < 0 || nPocket2 > 2 || nPocket1 < -1 || nPocket1 > 52 ) {
                     Error("CDPSrvr::OnMoveItemOnPocket : Crash Try -> [Player ID: %07d], [PlayerName: %s], [Packet used: %d,%d,%d,%d]",
                                          pUser->m_idPlayer,pUser->GetName(), nPocket1, nItem, nNum, nPocket2 );
                     return;
              }

1 V# r8 {2 E5 j5 ~# Y% p4 U
0 K- o! n6 @+ M5 J+ Y对不起英文错误,因为我brazillian
. j: j1 d" V3 O- F1 m4 V1 ikkthxbye / X3 l% f: X/ X; Y$ ~  [
' j) S6 K- k. b# [6 H5 C
( u* e: }# R* E: M1 e+ t





欢迎光临 飞飞世界论坛 (http://www.ffwold.com/) Powered by Discuz! X3.2