飞飞世界论坛

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

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

[复制链接]

197

主题

203

帖子

1078

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1078
QQ
跳转到指定楼层
楼主
发表于 2016-1-10 03:29:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
确定的家伙,因为我已经没有任何关系,我将释放如何阻止每次崩溃/欺骗数据包,并保存的ID /绰号的家伙试图您的服务器崩溃。
3 E6 a+ n- B9 n0 J. E# E7 I+ s/ }7 g+ _
首先,你需要有VS.NET2003 Service Pack 1安装和飞飞来源。   j+ D( H( T$ o& }( b9 m, F

) ]- s' E! b% x, q" S- C为了阻止这些数据包,您需要打开位于worldserver文件夹的DPServer.cpp 7 e9 D3 K0 h. x: L1 l

3 q- G2 S, v3 r4 g' I  _Equipament崩溃:
) d2 `# s9 t1 A& T9 F. Z* z+ g( s* h扰流板: . G4 H* N4 u7 N3 w9 O
8 t2 q: C8 O4 N. K, I
搜索: % W. H$ w! y4 C
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 );
你看到在我的代码。
" p! G. d$ ~" O& k
- H" i  w1 n4 {: \7 B
: @: Z/ }" w% i' |' A- c! d& q0 Q9 Q购买崩溃: % N' s6 J) g  ], q; H+ l
扰流板:
, {9 ]% h6 ?$ m# G3 w8 Z7 c+ @0 M- |5 V: a" i9 G4 d
YOU NEED TO DO IT TWICE, ONE FOR NORMAL BUYSAND ANOTHER FOR RED CHIPS BUYS
(你需要做两次,正常购买和红筹股另一个人购买)
2 P$ S* E7 z3 w* K6 C
寻找
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 );
你看到在我的代码。
; u4 Y: \' m# k# A3 l% T6 N+ N+ E4 X. }$ w6 X' J
" _% Z3 ]- @4 W
掌上崩溃: 8 \* T. `" n3 T5 N9 ?" D
扰流板: 5 K2 u4 T9 \: {6 x

$ ]5 C8 E+ I( }, }" }- a0 F搜索:
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;
              }
) b6 s) T3 a% x3 V2 W7 C. t% C; T
1 L4 v# R4 o2 o: T0 T
对不起英文错误,因为我brazillian : Q  b3 x; z  c8 Z' i6 ^% [, S1 L+ D
kkthxbye * Q7 ?9 _" |4 j% X" R; z

! z3 O) h. b. c, c& `
4 h9 z9 E$ `3 H6 }1 q
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-24 18:01 , Processed in 0.063695 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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