[game][讨论]在游戏开发中如何有效防止外挂程序?

46 views
Skip to first unread message

Alex

unread,
Oct 17, 2011, 1:11:47 AM10/17/11
to game.dev.top
如题,由于HTTP协议是明文传输,很容易通过抓取HTTP包获取游戏内交互的逻辑和数据,请问如何能有效地防止外挂程序?

Alex

unread,
Oct 17, 2011, 4:07:20 AM10/17/11
to game.dev.top
总的说来,道高一尺魔高一丈,外挂不可能100%被杜绝,只能通过不同的手段来防止大部分的外挂,具体可以从以下几个方面考虑:

1. 协议层加密
以flash客户端为例,在与后端做数据通信时,可采用amf协议,它虽然也是基于http协议,但是对传输的内容做了加密。当然,amf协议
是透明的,所以该方法只能干掉一部分只知道用httpwatch/firebug等查看明文http包传输工具的小白。如果需要继续增加门槛,可以自定
义加密协议。但由于客户端需要知道解密方式,所以客户端本身也需要做好加密。关于flash本身格式的加密解密是另一个比较大的话题,在此就不展开赘述
了。
2. checksum校验
客户端发送数据时增加一段checksum校验码,服务器端根据相应的算法进行校验,如果校验不通过则返回错误。与(1)一样,只要破解了客户端
就可以知道checksum的校验算法。因此一方面需要注意客户端的安全,另一方面checksum生成算法需要不定期更换。
3. 通过任务策划来防治
外挂主要是代替人工来做些重复性的工作,这样玩家可以不操作电脑也能在游戏中获得收益。外挂的出现一般都是和利益有关,最好的治理方式是引导而
不是打压,因此我们可以在产品设计方面做些降低外挂的工作:
1)降低长时间重复性任务所获得收益,或者同一种获得收益的任务随时间的增加收益减少。
2)游戏本身提供一些类似外挂的功能:比如自动打怪等辅助工具。
4. 定期检查数据
通过排行榜等数据统计,可以通过发现一些异常的数据来检测是否有外挂存在
5. 深入玩家内部,了解外挂行情
这个是客服们的工作,与技术关系不大,但有时能起到意想不到的作用。

On 10月17日, 下午1时11分, Alex <wanghui0...@gmail.com> wrote:
> 如题,由于HTTP协议是明文传输,很容易通过抓取HTTP包获取游戏内交互的逻辑和数据,请问如何能有效地防止外挂程序?

iamshok

unread,
Apr 21, 2013, 7:52:08 PM4/21/13
to gamed...@googlegroups.com
在逻辑实现中,加入外挂 的考虑,服务器不信任任何客户端,在构建服务器时,要诸多的考虑“如果是外挂该如何如何处理”这样的问题

Sparkle

unread,
Apr 22, 2013, 12:13:10 AM4/22/13
to gamed...@googlegroups.com
而且HTTP的断句很明显,没有状态维护,更容易无顺序调用,流量控制麻烦,有能力的话还是上socket吧


--
您收到此邮件是因为您订阅了 Google 网上论坛的“game.dev.top”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 gamedevtop+...@googlegroups.com
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。
 
 



--
blog: http://weavesky.com
twitter: sparklezeng
weibo: sparklezeng
Reply all
Reply to author
Forward
0 new messages