飞飞世界论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 9723|回复: 0
打印 上一主题 下一主题

来源编辑:阻止崩溃的数据包。

[复制链接]

197

主题

203

帖子

1070

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1070
QQ
跳转到指定楼层
楼主
发表于 2016-1-10 03:29:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
确定的家伙,因为我已经没有任何关系,我将释放如何阻止每次崩溃/欺骗数据包,并保存的ID /绰号的家伙试图您的服务器崩溃。 / S" Z7 {5 ?' `8 W. l
' S) V, g+ M6 @- g1 k
首先,你需要有VS.NET2003 Service Pack 1安装和飞飞来源。 7 s- n4 b& j8 t) v' A+ M* S! M2 A. m

: p7 d8 |- b1 S$ J( x3 \+ e为了阻止这些数据包,您需要打开位于worldserver文件夹的DPServer.cpp
, F$ F3 \5 v2 H* R) ^
) Y4 ]# |2 T9 l+ VEquipament崩溃: 4 j- T8 Y0 z9 R% {! [
扰流板: 3 Q7 p9 \. Y8 R$ a
' c- T6 ]3 }5 k( h& k  H; T
搜索: 2 Z; Y- V# v( @# y/ D& V! y6 T
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 );
你看到在我的代码。
2 S8 `4 G) V( P9 _1 R9 c( \3 O6 g: _! y  F5 a) q
0 }: _$ V% `0 h, r6 o1 t
购买崩溃:
5 q' c3 n- u% g! |, @. I4 G& K扰流板:
* j1 G; i' x$ Z6 O* W6 I* f* b+ S5 h7 N
YOU NEED TO DO IT TWICE, ONE FOR NORMAL BUYSAND ANOTHER FOR RED CHIPS BUYS
(你需要做两次,正常购买和红筹股另一个人购买)
) p3 O1 D, e3 ]* j* v0 G
寻找
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 );
你看到在我的代码。
4 W3 x. @  p3 E8 Q4 {+ Y( F! R* G- N% E( }: @' v
2 X2 J% X* b: m
掌上崩溃: 8 c  ]' H8 S" p6 u4 p& c1 Y2 _
扰流板: ! l( K+ g9 g' S1 L5 R
  t8 l( h* }+ e5 j- r% q! O1 o
搜索:
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;
              }

, S4 k5 P7 m( i. C" @
" }7 S  A& F6 z7 p+ e对不起英文错误,因为我brazillian 6 ^  k! [1 p% p! A
kkthxbye
- Z! s) S$ w! m& c% n8 ^6 ~
6 [. r5 E9 b/ n
7 C+ e0 m- q- V3 ^1 [1 B
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|飞飞世界技术论坛  

GMT+8, 2025-9-7 13:08 , Processed in 0.059637 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表