网页外挂防御

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

网页外挂防御
第一步:外挂弄到手
首先要了解最潮的外挂,这就得打入游戏群体,得装成是沉溺于游戏的00后臭屁小孩(我们是儿童游戏),满口都是刷伏魔塔,卖装配,练级。

在明确流行的外挂后,要确定如何获取,买的话要防诈骗,下载的话要防木马(很多盗号木马伪装成刷金币刷装备的极品外挂,宣传的你都留口水)。

有钱的,淘宝买,选择星级评价高的,一个月内有购买消费的;没钱的,关注游戏相应论坛,对于对战类游戏,有组团要求的,加入进去,你会得到很多游戏漏洞信息,当然得忍受群内无营养的唧唧喳喳,黄色图片刷屏(男银有福了)。

第二步:摸清外挂的原理
拿到外挂后,千万不要很high的直接打开,没条件的下个虚拟机,在虚拟机中打开。

有条件的,配个专门机器从事外挂研究(与公司内网环境断开,只连外网)。

现在网页游戏外挂分为脱机与非脱机式两种,脱机的比较可怕,基本意味着对方已经完全破解你的通信协议,即游戏根本机制,要防御此种外挂,只有修改通信协议,此工程可大也可小。

非脱机的制作水平参差不齐,基本属于好医治类型。

所有的网页游戏的常见招数无怪乎以下几种:
自动操作型。

常见于比较固定的游戏模式中(人机交互无,少,或不变),比如说跑地图采集物品,机械式对战,用第一种:自动操作型
一个按键精灵,就搞定了。

先自己操作一遍,录制成脚本,修改,回放。

修改客户端数值。

无论是b/s,还是c/s模式的游戏,本质都是一样,都能在客户端内存中找到相应的数值,低级点的金第二种:修改客户端数值
山游侠,相信爱好单机版游戏的玩家都自己整来玩过。

我遇到的最好的游戏修改器,叫CheatEngine,不仅功能强大,能快速准确定位数值在内存中的地址,能反汇编,能制作图形化游戏修改器,能。

,关键是还附带通关游戏式的教程,相当有趣。

简直是修改器中的战斗鸡。

封包修改。

WPE一出手,就知有没有。

网游说到底就是客户端与服务端之间交流做生意。

比如说c去s那买西(c是客户第三种:封包修改
端,s是服务端),c告诉s,我是xx,我要买物品A(就是一条SENT数据包)。

s接到消息后,先验证c是不是xx,然后验证物品A 是否可以购买(比如说物品A是否上市,是不是只有VIP才可以购买),接着验证A是否有足够多的钱可以购买。

一切都核实,没有问题后,就发货(就是一条RECV数据包)。

这些通信包,有相当多的工具可以捕捉的,就像捕捉蝴蝶,可以用透明网袋,也可以用黑色垃圾袋。

关键是要选择一款可以精确捕捉,并能让你读懂捕捉内容的工具。

底层协议的封包捕捉工具像wireshark的确能捉到,但就像你本来打算摘取一朵左上角有紫色斑纹的四叶草,结果去给你一片广袤的四叶草坪,捕捉回来也找死你。

对网页游戏而言,有以下几种通信方式:
a)直接通过winsock编程接口进行,自定义通信协议格式的。

用WPE吧,基本够用了。

WPE捕捉的通信包都是十六进制的,但是可别一看到数字就害怕退缩了。

要知道,在天朝(国外不知道)网页游戏通信协议绝大多数都没有加密,官方解释是加密影响数据传输,用户体验(用户体验是啥,大到乔布斯小到坐在你旁边的产品策划,会告诉你这四个字的魔力,威力是殿堂级秒杀)。

业内解释是加密个球,年年月月,分分钟钟的加需求,做不完啊,已经一个星期没回家,一个月没洗澡了,老婆孩子长啥样都忘了)。

不加密的协议,特点是啥,地球人都知道,对比,对比,就能猜出来。

我们公司的某款产品的协议就几乎就是透明的了,据说加入某个游戏群的见面礼就是破解一条协议,阿猫阿狗都会了,你说不会,face不要太厚哦。

实在太笨,就勤奋点,同一类型操作多做几次,对比数据包,变动的值,试着去修改,就我了解,99.9%的协议只需要修改一个字节,一个字节也就00到FF一共有限次可能性。

b)通过AMF协议进行通讯的,常见与小型社交游戏,如QQ农场。

用Charles吧,这个比WPE简单多了,直接是名:值的格式展示给你看的。

简直就像看价格表一样清晰,公安锅盔:5元,谁都能看懂吧,要看不懂,别外挂了,做游戏良民吧。

c)通过HTTP协议进行通讯的,相当少,可忽略
d)通过SOAP协议进行通讯的,目前没见过这样的大型网游,但在满世界都叫嚣着云平台,计算即服务的时代,未来很可能有。

目前就不用管了。

加速器。

这个常见于对战类的游戏场景中,对于flash游戏,最常见的办法就是加快你flash动画播放的速度。

玩过游戏第四种:加速器
的都知道,发一个靓招,会有动画特效,越是绝招,特效越是风骚。

但打架的时候,好看有个P用,反而拖后腿。

打架最重要的是啥,天下招数,唯快不破。

不要喝采,不要动画,只要比对方快。

对方打你一次,你已经打对方N次了,就算力量不够,捶多了也就捶死对方了。

加速器与自动操作型外挂往往是绑定起来的,不仅比对方快,而且还不是人在操作,多么可怕,多么杀!
改键精灵(强烈怀疑是按键精灵的亲戚),常见于动作类游戏,简单的说就是你按a键实际发送给服务端第五种:其他。

比如说改键精灵
的消息是b键,一般使用该工具将复杂的按键组合自定义为你最熟悉的按键组合,比如说你的左撇子,不习惯右手按键,那就修改成左手容易按的键,目的是啥,操作更流畅,比对方更快!
写到这里,发现自己有点偏离主题了,我貌似在宣传普及如何使用外挂,忘了自己是一位打击外挂的安全人员了。

接下来,回到正题,讲讲如何防御吧,其实防御与攻击相比,往往要弱很多,攻击是利益兴趣啥的驱动着,有一股强大的动力。

而防御呢,是被迫的,是不情愿的,是额外的工作量,意味是得更晚回去,意味着老婆因为你加班过多要爬墙。

第三步:外挂防御
第一种:自动操作型。

自动操作型的工具是否定义为外挂,一直处于争议中。

正方:谁叫你设计得这么傻,每次都一样,怪物出现在同样的地方,金币掉落在同样的地方。

山珍海味天天嗑,也得嗑吐。

我只是在避开游戏的枯燥面,才能更好的体会游戏的乐趣。

合情合理,我都要被说动了。

反方:不公平,为什么我都鼠标手了,这家伙挂上机后就装乖宝宝,看书学习,德智体美劳样样精通,现在连游戏都比我玩的好,啥,听说挂机外挂就是这家伙写的,搞错没,我们才小学五年级!
图灵测试来判断游戏的对方是否对付这种录制回放型(无论是基于GUI的录制,还是基于协议的录制),最有效的办法,就是靠图灵测试
为人类。

相信大家在做登录操作时,都遇到过需要输入验证码的情况,这就是最简单的图灵测试。

验证的前提是,非人类无法识别图片(当然,随着技术的日新月异,图像辩识技术的成熟及普及,终有一天,这一招会失效)。

在游戏中,可以通过随机性的出现需要用户交互的场景,这一设计当然也影响了用户体验的友好程度,特别是儿童类游戏,应该降低游戏的门槛。

如何做得有趣有效特别是成本要低,是个比较头痛的博弈问题。

第二种和第三种,修改客户端数值和封包,其实都可以归类为客户端修改,对安全工作者而已,一切来自客户端的数据都是不可
客户端服务端双向验证。

但就我了解,基于开发成本或技术问题,靠的(来自服务端的也一样),要根绝这种最根本的是做好客户端服务端双向验证
全部逻辑放在服务端做验证就是个天方夜谭。

网页游戏中的小游戏比如说,兔子跳铃铛,宝石迷阵之类的都是将逻辑的判断完全放在客户端。

发送给服务端的数据只有两条,一条是通知服务端游戏开始了,另一条是通知服务端游戏结束了,我得了多少分,我需要奖励多少金币。

如果服务端对积分的获取是否是合法的(有没有被修改)验证机制不完全(一般都是极其简单的验证),就很容易被绕过。

而游戏设计者采取的防御办法往往都是很无奈的,依靠给物品获取设置个上限。

就像明知道小偷会定期打开我的保险箱,我唯一能做的是在保险箱里少放点钱,太悲凉了!即使成本有限,不能完全防御,起码我们也要提高攻击的门槛。

即使做在不靠谱的客户端,但也比不做要好很多。

修改内存游戏数值获利的家伙们,我们要提高找到这个数值的门槛,将数值拆分存放
数值拆分存放,最简单的拆分办法为数值+验对于依靠修改内存游戏数值获利的
证值(按得分的游戏等级,游戏时间来综合计算)。

,进行封包加密,将封包中重要字段,如物品id,礼包对于修改封包获利
修改封包获利的家伙们,同样的道理,提高找到修改数值的门槛,进行封包加密
id,积分,数量等数值采取一定算法进行完整性验证,并将该验证字段再次加密处理,附加在封包中。

当然其安全性,很大程度上取决于加密算法的安全性,但是与众多不加密的网页游戏相比,加密远远比不加密好。

其实我一直在思考为什么不进行协议加密,就像为什么要将逻辑判断放在客户端一样,主要原因真是后台开发的稀缺,不得不将逻辑验证放在客户端吗?就如我所在公司,一款网游,前端为6到7人不等,后台为4人。

我不是开发,不好妄下定论。

还有一种较为官方的说法,说逻辑判断放在后台,会影响网络游戏的通信效率,我没有做过加密协议,与普通协议的通信性能测试,也不能妄下定论,希望了解的人能告知。

第四种,加速器。

对网页游戏而言,一般都是靠加速动画的播放速度来加快游戏对战的速度。

甚至有公司,把能否去掉动画播放的功能做成两个版本,VIP玩家可以略过动画播放,加快游戏速度。

就如网络上,各种播放软件,如果交费了,就不用看广告一
样。

一般通用的加速器也能达到这个效果,通过改变本地的系统时钟达到效果。

防御的手段,就是在通信包里加入时间参数,
通信包里加入时间参数,由服务端去验证两边时间是否一致。

这种防御方法,同样受限于所谓的开发成本,对于将大多数逻辑做在客户端的游戏是很无由服务端去验证两边时间是否一致
能为力的。

总的来说,外挂攻击远远比外挂防御来得凶猛。

在这里我也仅仅是讲了网页游戏的常见外挂,并不没有包含客户端游戏的各种更加巧妙的外挂方式。

对,我们的防御做得如温室里的花一样较弱,我们的游戏存在各种大大小小的漏洞。

并不是我们不能做好这一块,而是资源,无可奈何的资源缺乏。

对于一个公司,核心的东西才能拿到资源,游戏是否能盈利才是一个公司最核心考虑的问题,而对更新速度飞快的网页游戏,需要把大量的精力花在创新游戏玩法,收费模式,游戏质量自然而然就被忽略了。

相关文档
最新文档