听dj战歌,就上傲气战歌网!2015年传奇家族玩家最喜爱的家族战歌网
战歌推荐:战歌网 战歌网dj Mc战歌网 DJ战歌网下载 激情战歌-冰雪战歌网 客服Q:350317
新闻搜索:

游戏外挂杂谈(二)

作者:     来源:    发表时间:2011-11-26 14:07

游戏外挂杂谈(二)

上次简单介绍了一下外挂的几种制作模式,今天我们就来谈谈编写外挂需要做些什么。
外挂有两种,一种是收费一种是免费,但最后免费的总会变为收费,否则就慢慢的消失了。所以我就来谈收费外挂需要哪些要素,如果你以为自己肯定只是爱号者那就跳过和收费相关的介绍。
做一个收费外挂需要做哪些模块呢?我之所以说模块,是因为收费外挂的开发完全可以看成是一个项目,这个项目中有些模块是必需的。
1、外挂程序本身
2、外挂验证服务程序
3、外挂加密
4、网站支持
我们先从最简单的网站支持说起,网站是用来宣传外挂的,一个制作精良的网站以及一个人气旺盛的论坛容易取得客户的信任。外挂应该说是一种共享软件,但他很特殊,因为他是寄生在网络游戏上的,网络游戏中的客户帐号是一种虚拟财富,很多游戏玩家都非常看重,他们害怕使用一些欺骗性的程序导致帐号的丢失,所以取得用户的信任是非常重要的,特别是存在同业竞争的情况下。可能很多程序员都不是很看的起网站上的开发,但对于收费外挂项目来说网站的开发是必须的,而大多数程序员的网站真的很糟糕。在介绍完整个开发过程后,我会总结一个技能列表,如果是个人开发那可能需要都去涉猎,如果想团体开发那就要找到适合的人。
 
现在开始进入程序员比较关心的外挂主程序的介绍,在(一)中介绍前两种模式我不想多介绍了,只要理解了hook技术,实现左右键连击这样的功能还是不难的,至于监视内存数据完全可以通过fpe类似的工具找到内存地址,然后在程序中监视内存地址来实现一些功能。

后三种模式有些东西是都要做的,我就先介绍他们都需要做的一些事情。

当我们决定开发一个游戏外挂的时候,首先必须了解这个游戏,一个月的游戏时间估计是少不了的。当自己熟悉这个游戏,而且发现这个游戏确实具有开发外挂的价值,我们就可以动手了。
1.获取包。才开始的时候我们可以用sniffer去简单的看看包文,在一个游戏中人少的地方反复的做一个需要服务器确认的动作,比如把一个东西丢在地下然后再拣起来,观察传出传入的数据包有没有规律。如果看不出数据和动作的关联性,但只要做同一个动作数据包不变化,那么数据应该是加密过但原数据包并没有加入变化因子;如果发现什么规律都没有,而且做同一个动作数据包变化也很大,那么数据是加入变化因子并且加密过的;如果很容易的看出联系,那么后面的事情就简单了,不过这样不加密而且不加变化因子的网络游戏应该很少了。从开发的难度考虑如果发现只是加密而没加变化因子的游戏,应该用第3种模式为佳,如果还有变化因子那么可以考虑模式4。
2、制作自己的分析包的工具。用sniffer并不很好用,还是应该开发自己的分析包的工具,然后按一定格式将得到的数据包记录在文本文件中,这样方便分析数据包。那种到底层去拿的我想不是很必要,对于一般程序远来说难度大了点,包括我自己也不会。我同事用“木马”winsock.dll来拿数据包,将自己做的winsock.dll放到游戏当前目录下去拿包,我的方法是挂接住游戏程序中的recv   send来得到数据包。核心编程中有介绍,也就是修改import   table,但实际中可能行不通,游戏程序有时候设计成并不是通过it来调用api,这种情况下你需要去找到这个保存api函数指针的地址,然后挂接上去。至于怎么找,我下面就会介绍。
3、寻找加密过程以及一些相关过程。到这里也算是重点了,制作外挂一定要逆向工程比较熟悉。如果你以前做过cracker那么这个过程就相对比较简单,因为我们需要进入游戏进程,跟踪游戏过程找到我们需要的过程。如2中说的,当我们要挂接某个重要函数的时候,我们就需要去跟踪程序找到函数指针。其实说到这里我也有点头疼,因为不是很好说,很多东西需要自己动手才能搞懂。比如我们要找解密过程,那我们应该在recv上设置断点,然后一步一步出来,这个时候需要有耐心并且有一定汇编知识,密切监视recv到的数据看什么时候会被读取,多过几次如果发现某个过程在对recv到数据做循环处理,那么很可能就是解密过程。分析这个过程出来的数据如果发现和游戏操作有联系了,那么恭喜了找到解密过程了。推荐一个工具ollydbg,非常好用的调试工具。
4、分析数据包的逻辑关系。在游戏中做各种动作,用分析包的工具记录下来,进行分析整理。这一步骤很烦人,如果你耐心不好的话,那么就分析一部分数据比如血值,喝血动作,然后往下继续开始做个简单的外挂。
5、有了以上的基础基本就可以开发出外挂了。先做个dll文件所有的逻辑都写在里面,然后写个exe作用就是把这个dll做个全局hook,这样游戏一启动就会被hook进去。然后就是控制过程了,switch   case语句大家都该会用把。recv到血少与设定值就触发一个喝血的send动作,这样一个简单的外挂就出来了。当然控制中还有不少问题不是那么简单,并且要做挂机外挂的话控制相对就更复杂,但现在我只是想对外挂开发有个综合的介绍,以后有时间我把一些自己的经验也写一些。基本的逻辑写出来后,就需要做个界面了,这个没什么好说的了,大家也都看过外挂的样子把模仿着做吧。

有关验证服务程序

验证服务是收费外挂要做的,不用我说大家也知道通讯过程应该加密。有两种收费方式,一种是记次收费,还有一种是根据游戏帐号来收费。我认为游戏帐号来收费方式更好点,因为在控制上可以做更多文章。验证次数的如果在登陆时候被破了后在游戏中已经无法再次验证,而帐号的方式在进入游戏后依然还有机会进行验证。验证服务的加密有两点要注意,A   一定要用非对称加密否则一旦被人找出密钥和加密方式,整个外挂就破掉了   B   一定要加入变化因子,比如随机数,这样防止同个用户在过期后通过伪造返回包进行认证。

有关外挂加密

不加密的程序,再好的验证过程也是没用的,只要跟踪到相应过程把return   false   改为   return   true你所有做的事情就白费了。加壳是必须的,不能偷懒,一定要仔细寻找,有些壳直接用工具就能脱出来加了等于没加。一般来说去google上查一下,如果发现某种壳找不到脱壳工具才能采用,至于一些手动脱壳就没办法了,但不是所有人都有能力做手动的,而且按我的想法来说对于外挂加密只要能保证两个月不被破就ok了,因为游戏要升级外挂也要升级,时刻用最新的壳工具加密自己最新版本的外挂很有必要。不仅要加壳,而且自己也要动脑袋在程序中写一些能反跟踪的代码,这就要靠你自己动脑袋了。


今天谈到这里,其实说的每个方面包含的内容都很多,以后有机会我针对各个方面作些详细的介绍。

数据统计中!!

最新评论共有  位网友发表了评论
发表评论(评论内容:请文明参与评论,禁止谩骂攻击!)
不能超过250字节,请自觉遵守互联网相关政策法规.
昵称:    发表评论 (Ctrl+Enter快速回复)
推荐新闻

关于本站 | 合作加盟 | 合作说明 | 免责声明 | 广告服务 | 网站地图

健康游戏忠告:抵制不良游戏 拒绝盗版游戏 注意自我保护 谨防受骗上当 适度游戏益脑 沉迷游戏伤身 合理安排时间 享受健康生活

如有意见和建议,请惠赐E-mail至350317@qq.com 联系QQ:350317

Copyright © 2010-2013 Www.27zG.CoM
苏ICP备11049833号