大家看下网游客户端的运行原理就明白了。不要轻易相信所谓的防封。无疲劳等。
============================================================================
一个网络游戏客户端连接服务器时,同时也连接另外两个用于对它进行验证的游戏客户端。在服务器传送给客户端的数据中含有从服务器上发出的时间。客户端把它从服务器上接收到的数据D1、该客户端上鼠标键盘的数据D2,以及这些数据在客户端上被处理的时间D3、D4传送给两个用于验证的游戏客户端。为保证这些数据不被修改,在传送给验证客户端前,D1、D2、D3、D4使用RSA算法加密。验证客户端根据D1、D2、D3、D4计算出被验证客户端应向服务器发送的数据D5和D5的CRC校验D6,把D6传送给服务器。为防止被验证客户端在把D1传送给验证客户端前修改D1的数据,验证客户端也要把D1的CRC校验D7传送给服务器。服务器计算被验证客户端发送给它的的数据D8的CRC校验D9,以及D1的CRC校验D10。比较D9、D6、D10、D7,如果不相同,就可以知道有客户端数据有问题了.
============================================================================
大家看了上面也许会问。稍微修改下发送数据来欺骗下服务器不就行了。
答案是不可能的。有耐心的话继续往下看。
===========================================================================
1。假设被验证客户端在把D1传送给验证客户端前修改D1,服务器只需比较D10、D7就能知道被验证客户端是否修改了D1
2。假设验证客户端谎报D1被修改,在验证客户端向服务器报告此问题时,服务器将要求验证客户端把D1传送给服务器。由于D1使用RSA算法加密,验证客户端根本无法修改它,因此验证客户端是无法谎报D1被修改的。对于验证客户端谎报D2、D3、D4被修改的情况也与此类似。
3。假设被验证客户端使用加速外挂,由于D1中含有服务器发送它的时间,这个时间减D3或D4后的值D11应该是一个恒定值。如果这个值变化超过一定范围,例如两秒,就可以知道被验证客户端异常了。
4。假设被验证客户端使用修改封包、内存、脱机等外挂,D9、D6必定不相同,所以只需比较D9、D6就能知道有客户端作弊。
5。在发现有客户端作弊后,服务器将要求验证客户端把D1、D2、D3、D4发送给服务器,由服务器计算被验证客户端应向服务器发送的数据D13。比较D8、D13,如果不相同,就能知道是被验证客户端作弊。比较D5、D13,如果不相同,就能知道是验证客户端作弊。
6。假设被验证客户端为了逃避验证,不把验证数据发送给验证客户端。对于这种情况,如果两个验证客户端在一段时间内都没有收到验证数据,服务器可以断开被验证客户端的连接。
===========================还很多我就不一一介绍了============================
看到这里你还会轻易相信所谓的防封。脱机,无限疲劳之类的吗。
[ 此贴被czcl1237在2008-10-05 14:51重新编辑 ]