飞飞世界论坛

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

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

[复制链接]

197

主题

203

帖子

1058

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1058
QQ
跳转到指定楼层
楼主
发表于 2016-1-10 03:29:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
确定的家伙,因为我已经没有任何关系,我将释放如何阻止每次崩溃/欺骗数据包,并保存的ID /绰号的家伙试图您的服务器崩溃。
5 S5 h- D+ G2 m( S* C( I) g
( p# G; n: z+ P首先,你需要有VS.NET2003 Service Pack 1安装和飞飞来源。 0 x$ f7 |% N% {3 J0 f  Q

! H+ G1 m! A8 w! o' R5 z) b. q: s为了阻止这些数据包,您需要打开位于worldserver文件夹的DPServer.cpp + ^8 P1 v4 w; [5 g/ \" ]8 \
# @5 u9 J  I1 R' L4 W
Equipament崩溃:
% g! ~$ m9 E6 B0 X# J$ v8 D扰流板:
  v# E: O* }* r+ R0 a! o# ?  l  y6 G# k7 `7 q7 \
搜索:
# z  m+ C2 g5 B( \' l7 GCode:
       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  H" c. h; x. s5 P
# W4 g6 s! N$ o# a6 m0 w! K
' G1 o$ \( M, M3 g
购买崩溃:
# m- ?, t5 h% Z  B2 K扰流板:
6 M) A6 H& x; [/ u8 u' C: w: w# Y( y- L6 @
YOU NEED TO DO IT TWICE, ONE FOR NORMAL BUYSAND ANOTHER FOR RED CHIPS BUYS
(你需要做两次,正常购买和红筹股另一个人购买)
6 l# Y9 X+ v% ]4 e/ W- B+ m& p6 U
寻找
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 );
你看到在我的代码。
" Y9 t4 J# T: g+ l
( B, _9 \# y1 b" a4 ~* _" i2 ^
9 {* h8 u! s. R$ E( q& w" {掌上崩溃: / R; r" F' j0 R- D" E
扰流板:
# o% q9 f4 F6 a' ?- A  {( e6 q9 q- [' A" z
搜索:
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;
              }

9 d9 r# R* ~4 U" U
1 s* i  S/ ?1 e- F对不起英文错误,因为我brazillian ; C7 R& f4 [+ a2 H5 x9 a
kkthxbye
, u7 c0 Z7 A  `: L! B
" D% K/ d8 X% ~. D$ v: m# i

4 M/ q1 a9 U) G4 V7 j
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-5 12:54 , Processed in 0.083589 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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