游戏外挂原理和技术分析(关于魔力宝贝 )

原创 2004年08月31日 14:21:00
我认为网络游戏防外挂应该是从服务器代码上来控制的,要是代码写得好,BUG会很难
被玩家发现。我不赞成用外挂,但做网络游戏不能不研究。

根据我的理解说一下某些外挂的原理:

先是顺移外挂:

石器和魔力会出现顺移外挂,是因为它的移动消息机制是客户端直接向服务器报告自己新坐标和人物方向,客户端又不是每走一步汇报一次,而是达到一定时间汇报一次,可能是一秒一次吧。正常情况下,每秒最大可走三步,顺移外挂直接向服务器发送新坐标就可以了。以前石器的服务器根本不检查两次坐标的距离差,所以能大顺移。后来大概修改了代码,新坐标如果与旧坐标距离超过3就视作外挂,立即断线。但3步顺移还是禁止不了,跳个沟或者跳到BOSS后面都可以,因为3步汇报一次坐标是这个引擎的最低要求。服务器又不能去检查两个坐标之间是否有障碍或者有无BOSS(可能设计上根本没顾及到这个要求,又或者是检查它们会导致CPU占用率太高机器受不了)。

反观UO,传奇,顺移外挂一直没出过,因为他们的移动消息机制不同,他们每次移动都是向服务器汇报自己的移动方向,每移动一次汇报一次。而坐标是服务器回传给客户端的,客户端只有决定自己移动方向的权利,没有决定坐标的权利。如果你想向墙或者其他人物方向移动,服务器会发现并可能把你弹回来(传奇好象不弹,UO是肯定弹)。

根据这个结论,三步顺移是石器类型引擎的“死穴”,解决方法为:把围墙做厚把沟做宽,超过三步。象熊男这种BOSS不要放在路中央,他身后要有厚的门,打败他让门消失一段时间也可以实现偷渡,三步顺移就无效了。

再说加速:

1、普通网络加速,这是不可防和封的。一般情况下,网络程序发送消息出去时,如果消息很短,系统会自动把它保留0.1秒,看后面是否跟一个或几个消息,如果有跟的消息,系统把它们合成一个完整包发送出去。这是网络固有延迟,有程序的方法使这种延迟不存在。去掉这种延迟是种合法的行为,系统本身给了用户这个选择权。但通常情况下这是不道德的行为,因为消息包的小而碎,包数量大大增加,加大了交换机和路由器的负荷,对骨干网会造成不利影响,和在街上乱扔垃圾属于同一性质。有些外挂通过设置通信的模式实现这种加速,它对没用外挂的玩家来说很不公平。这类加速对魔力宝贝的效果可能不大,对UO和传奇有明显的效果,PK中你快那么一点别人就打不着你。

2、利用系统BUG加速:
石器的加速属于这种类型。石器客户程序内部固化一个定时器,人物动作快慢由这个定时器决定。石器外挂(台湾版SADE源代码我看过)是用反汇编方法获取定时器代码地址,并对内存中代码进行修改来实现时间片控制的,黑客高手所为(对其反汇编水平深感佩服)。这个外挂一度盛行,直到华义买到石器源代码,才针对它进行了修改。后来服务器可能做了如下设置:为每次移动和战斗开始记录时间片,客户端每移动数步比较时间差,如果超出系统允许的速度就断线。战斗结束比较时间差,如果过快也是外挂所为。也就是说从服务器设计上进行防护而不是靠设备,这类外挂不难清理。怕的只是运营方没有源代码,或者有源代码技术又不足,或者开发方技术不足,这都会导致无法及时修正BUG。

再说改封包:

改封包的BUG其实也是系统设计导致的。(我不是说有BUG就是水平不行,这么大的程序百密一疏,BUG总是难免)。但有些BUG完全是设计水平低下造成的,比如石器的遇敌与否,居然是由客户端来决定。这件事交给服务器我想并不是难事,也不增加多少开销。黑客既然能反汇编石器代码,修改通信包更不是难事,所以原地、寸步、不遇敌太容易实现了。反过来如果遇敌交给服务器决定,这个功能外挂就根本实现不了。

再说看血外挂:

服务器在通信中告诉了客户端各怪物多少血,这个功能大概是游戏调试阶段所需要的,用于检查服务器的BUG。正式版本这个开关当然是关掉了,但问题是开关放在客户端而不是服务器,黑客们轻松地找到了这个开关,把它打开,于是大家可以看对面所有怪物的血了。

作为和石器差不多的引擎,魔力宝贝在系统设计上到底对这些因有BUG进行了多大程度的修正,我就不得而知了。如果没修正,某些针对引擎设计上固有BUG的外挂是根本防不住的。

现在魔力没有多少外挂,并不意味着将来没有。外挂的技术水平和游戏风行程度成正比,当前魔力还不是十分热门,如果它获得了大成功(根据网星的收费和服务水平暂时看不到这种希望),恐怕会变成下一个石器

《大型网站技术架构:核心原理与案例分析》

大型网站架构演化 大型网站软件系统的特点 大网站架构演化发展历程 初始阶段的网站架构 应用服务和数据服务分离 使用缓存改善网站性能 使用应用服务器集群改善网站的并发处理能力 数据库读写分离 使用反向代...
  • hubinqiang
  • hubinqiang
  • 2016年04月05日 00:53
  • 4006

《大型网站技术架构:核心原理与案例分析》读书笔记

由于网站的访问流量是缓慢增长的(PS除了垄断的12306),所以一般网站的架构也是不断的演化的,没有一开始就搞出个支持大并发的网站。无论从开发到发布的时间、消耗的资源上来看,或者是说从开发、维护的难度...
  • ysu108
  • ysu108
  • 2016年07月12日 10:21
  • 664

魔力宝贝账号登录分析

国服魔力宝贝的POLCN_Launcher详细分析报告 一、登录通讯协议 可以看到来回共5个包 从包的长度大致猜测下,如下: 1、握手包 2、服务端秘钥表 3、本地秘钥表 4、账号请求登录数据...
  • yoie01
  • yoie01
  • 2017年03月21日 16:59
  • 426

大型网站技术架构:核心原理与案例分析pdf

下载地址:网盘下载 编辑推荐 编辑 本书作者是阿里巴巴网站构建的亲历者,拥有核心技术部门的一线工作经验,直接体验了大型网站构建与发展过程中的种种生与死,蜕与变,见证了一个网站架构从幼稚...
  • cf406061841
  • cf406061841
  • 2017年07月22日 17:00
  • 952

读-李智慧-大型网站技术架构:核心原理与案例分析

网站构架演进 大型网站的特点 架构演化历程 价值观 架构模式 分层 分割 分布式 集群 缓存 异步 冗余 自动化 安全 性能 性能测试 web前端性能优化 应用服务器性能优化 存储性能优化 可用性 可...
  • xiaoxufox
  • xiaoxufox
  • 2016年11月24日 09:22
  • 2778

云适配技术原理

转 http://www.yunshipei.com/yunshipei.html
  • fendou4533
  • fendou4533
  • 2014年04月08日 08:48
  • 1108

增强现实原理解析

原文地址:https://site.douban.com/196781/widget/notes/11848880/note/252681453/ 增强现实这货,挺有意思,至少我这种准技术宅...
  • puppet_master
  • puppet_master
  • 2016年05月09日 21:05
  • 1842

图像识别技术原理

1.2计算机信息提取 利用计算机进行遥感信息的自动提取则必须使用数字图像,由于地物在同一波段、同一地物在不同波段都具有不同的波谱特征,通过对某种地物在各波段的波谱曲线进行分析,根据其特点进行相应的增...
  • Ma_Liang_Plus
  • Ma_Liang_Plus
  • 2015年09月26日 09:02
  • 6929

iSCSI技术解析之概念篇

iSCSI技术解析之概念篇 一、iSCSI的概念 iSCSI是一种在Internet协议上,特别是以太网上进行数据块传输的标准,它是一种基于IP Storage理论的新型存储技术,该技术是将存储行业广...
  • gangzi221
  • gangzi221
  • 2014年01月03日 10:20
  • 874

反虚拟机沙箱恶意代码分析

随着高级可持续攻击威胁对抗技术的不断发展,针对恶意代码进行分析,检测未知恶意代码,经常利用虚拟机技术。RSA展会也有很多安全厂商使用这些技术进行反APT分析,传统的反病毒厂商和僵尸网络追踪团队也都利用...
  • chenchen0708
  • chenchen0708
  • 2013年08月19日 09:35
  • 1138
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:游戏外挂原理和技术分析(关于魔力宝贝 )
举报原因:
原因补充:

(最多只允许输入30个字)