`
jacksonren1987
  • 浏览: 37609 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

我的“游戏外挂”故事---《游戏外挂攻防艺术》试读

阅读更多

 

首先我要说明下,我曾是一个安全测试人员,同时我也曾经写过游戏外挂。

当然,我读了试读章节以后才发觉自己曾经的游戏外挂是多么的。。。总之相比文中介绍出来的技术,我所谓的外挂就简单多了。

接下来我还是先说我自己的外挂故事,再来讲述通过阅读得到的收获吧:

 

我当时做的外挂是基于网页游戏的外挂,归其原因就是有时候比较喜欢玩一些网页游戏,便捷方便。但是由于时间有限,所以玩起来总是落后其他玩家很多,成为了游戏里的“炮灰”级人物。作为一个it工作者,就特别想怎么用it的办法弥补我较人缺少的游戏时间。于是,我开始了外挂的研究之路。

其实我所谓的外挂很简单,就是针对网页游戏里的请求抓包,然后分析包,将包做一定简单的修改,然后封装好,在固定的时间重新发出去。因为毕竟网页游戏多数是基于类似ajax或其他类型请求的。所以加上时间触发器等东西,一个非常简易的外挂就做好了(当然,抓包分析包的过程也很痛苦)。这样的外挂可以帮助我完成游戏里一些日常任务啊、活动啊之类的东西,而不用我时时盯着,只要早晨点一下,在虚机里挂上一天就无忧了。

 

后来我发现啊,有些游戏对请求的加密处理很差,很多请求和响应的内容都是明文展示的,那么抓回来的包稍加修改,就可以有更大的收获。以此,我对有些游戏的外挂进行了“改革”,使我一下子通过外挂成为了不逊色于小rmb玩家的“非r高手”。

 

再到后来,改包的方式逐渐不可行了毕竟不是所有游戏开发者都那么不给力。我又发现了另一个漏洞,就是有时候游戏里在领取奖励啊,礼包时候有一个小小的问题,就是当我们在游戏里单线程操作时当然ok,如果用发包的方式,在同一时间基于同一请求多次发包,则服务器是有可能重复受理的。通俗来讲就是,比如有一个“端午节礼包”,我通过上面说的方式同时发出100个领取请求,有可能由于服务器端未加即时验证而收获50多个端午节礼包。

 

当然,再到后来我就走上了安全测试的道路,这小小的外挂故事呢,没有持续,当然,也没有商用,只是为自己提供了小小的便利。

 

看了书里面的讲解,提到的外挂技术明显比我的有技术含量很多,我上面提到的请求应该类似于书中第五章里提到的call函数,是游戏的主函数。从文中我也学到了再代码端隐藏加密call函数的一些方法。

我觉得在试读章节里,给我最多印象的是第一章中,外挂设计思路的介绍,我也是把这部分总结出来,放在下边:

第一步当然是把自己的核心功能模块注入目标游戏进程,让游戏进程非自愿地加载外挂模块。这个步骤主要涉及Windows系统里的各种加载技术。

第二步,当外挂模块进入游戏进程空间后,就需要隐藏外挂模块,免得被安全分析人员找出或被游戏安全模块检测到。

第三步,外挂隐藏之后,就可以开始和用户进行交互,以接收用户指令来进行特定的操作了。

第四步,外挂在接收用户的操作指令之后,就开始执行真正的与游戏相关的核心功能了,如吸怪、加速、释放技能、加红、加蓝等。

第五步,也是开发外挂和发挥外挂功能的前提,就是分析游戏的安全保护方案并绕过它。

第六步,也是最后一步,就是外挂的自我保护。

 

同样,最后我希望能够阅读本书的更多内容,以得到更多外挂防护和安全方面的知识。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics