飞飞世界论坛

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

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

[复制链接]

200

主题

203

帖子

984

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
984
QQ
跳转到指定楼层
楼主
发表于 2016-1-10 03:29:44 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
确定的家伙,因为我已经没有任何关系,我将释放如何阻止每次崩溃/欺骗数据包,并保存的ID /绰号的家伙试图您的服务器崩溃。 8 t) P# m" f$ y6 F/ }4 y+ _

/ c( z9 K2 P- ?- F6 {0 i首先,你需要有VS.NET2003 Service Pack 1安装和飞飞来源。
9 m7 d8 [' m, ^4 X1 m% C( F9 X4 p7 c2 ^# N# Z) _  l/ ^3 r
为了阻止这些数据包,您需要打开位于worldserver文件夹的DPServer.cpp
4 ^3 J3 L, _1 E( P/ ~8 t2 N9 O+ r$ h8 m1 q7 Z1 H, \6 \, k* D
Equipament崩溃:
5 A- O5 |7 b7 u扰流板:
8 U3 v* ?3 S8 N% n/ i0 Q0 O' ~# C
% T6 L9 E( I4 i6 L" N4 ?# B搜索:
% ^3 U: g) \4 |5 nCode:
       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 );
你看到在我的代码。 9 |, f4 o2 h4 c$ i

3 U1 u5 K! {$ ]( I& J4 {: P5 c8 x
购买崩溃: 1 J, g0 z8 o# q0 k7 C
扰流板:
! D: m5 V2 S% t5 x: R+ |9 ?- }9 B' w# a- g; J! h7 x4 h8 [
YOU NEED TO DO IT TWICE, ONE FOR NORMAL BUYSAND ANOTHER FOR RED CHIPS BUYS
(你需要做两次,正常购买和红筹股另一个人购买)

2 Z6 y0 {; h7 O/ S寻找
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 );
你看到在我的代码。 1 h2 w/ `' Q$ s. d/ R6 p0 H

5 ^0 i9 O+ D# u  ?
: D5 ]) \+ M* `& Z$ R掌上崩溃:
. p  z4 m) K2 w: ?# p4 w" _' X扰流板: 3 v) I% [4 ?$ f" [, d6 i
/ k4 X7 A+ q' Y+ i0 ]
搜索:
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;
              }
) o2 |1 m# \; Y& q5 M; i1 R% h8 @

  G. x; n" N) f6 R" r, p0 e& b对不起英文错误,因为我brazillian ) }0 k" q1 i. n: D# k% l* G7 f
kkthxbye
( w" Z# A. {+ x  y7 @+ U3 N  m: k3 C* U% Z" _# L- s0 c
/ u$ g. a6 l0 ~) H5 j$ g
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 06:07 , Processed in 0.166658 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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