背景
在无意间从网络上获取到一款付费的游戏黑产外挂样本,并且该外挂号称可以无视游戏客户端的反外挂检测功能。好奇的心就不由自主的将外挂样本下载下来,并丢进虚拟机环境尝试学习下强大的外挂功能。
从文件上看起来这个外挂是个正常的应用程序(竟然dll都没有),接下来就是观察下这个外挂的行为,就出现了下面诛心的对话框展示。
看完前面这两个对话框及文字,让我内心久久不能平静,现在这游戏黑产外挂都开始都这强大了吗?都开始采用 技术+心理战 策略了吗?
瑟瑟发抖过后,下面就分析学习下这个外挂的技术功能。
不是破解哦,我付费买了个授权卡号哦。不是破解哦,我也不会破解技术!
基本分析
对这个样本的基本分析:
1、分析样本是否采用第三方加壳软件进行加壳;
2、分析样本的依赖模块有哪些;
3、用进程监控工具分析样本的运行数据行为。
从上图中可以看到该样本的区段增加了一个vmp0的区段名称,这就说明该样本有用到vmp壳的功能进行对样本的代码或数据进行做保护。
从上图中,该样本的主要依赖模块主要是系统的模块,没有依赖第三方的模块,那么这个外挂的所有功能都是集中在这个应用程序中。
从上图中,该样本还挂钩RegisterClassA函数,这个函数主要通过注册窗口类的功能,也就是改变这个样本这个MFC开发的应用程序窗口信息以及替换对话框资源信息用的。
网络验证分析
由于所购买的卡号已到期,那么接下来就学习分析下这个卡号授权的验证方式。对于分析这种授权方式,在游戏黑产外挂中大部分都是采用的是市面上现成的网络验证(其实也有外挂作者自己写网络验证的 )。
个人觉得外挂采用市面的网络验证主要两个因素:外挂作者主要的精力还是在外挂功能实现上;外挂作者的技术能力储备不足。
所以接下来先对样本确认,采用了市面那款网络验证(收费还是定制),然后才能高效的对这个网络验证进行做分析。
对于这种授权方式的验证方式,最直接的就是要么静态的分析(IDA工具)要么动态分析(ollydbg工具)的字符串信息,然后通过字符串信息进行慢慢调试跟踪分析。要么就是通过分析网络行为然后进行通过关键函数下断点跟踪分析。
从上图中可以看到关键字 验证_天之盾,这个就是这个样本所采用的第三方网络验证。这个天之盾的网络验证,就是天盾网络验证的定制版本。
上图就是这个天盾网络验证的一些公开视频截图,这里突然起了一句话,打败对手的最好招式,就是了解对手的招式然后见招拆招。
下面就这个天盾网络验证做下梳理,天盾网络是基于中文编程易语言开发的。
上图就是该样本所采用的授权卡方式验证的关键代码功能实现流程。
卡号授权 验证的关键流程:
1.从配置文件上进行读取授权卡号;
2.加载替换样本中的皮肤;
3.进行网络验证初始化工作;
4.进行关键检测;
5.进行网络验证。
上图是天盾网络验证的服务端程序(这个网络上可以下载到),可以看到这个卡号授权的功能还是非常强大的,还能试用、停封、分析卡号的在线量等等功能。
通过对以上的了解,我们此时对网络验证的分析就会比较有头绪了,就可以针对这块网络验证进行查阅相关资料然后进行做分析了。
针对这种网络验证的对抗思路:
(需要足够的耐心)
1.通过抓包分析网络通信包,然后进行对数据包分析做手脚进行验证;
2.通过下断点方式进行不断调试,分析出网络验证的校验函数或地址,并且在这过程中需要排除掉许许多多的暗桩。
外挂功能分析
在分析样本过程中,运行着ollydbg工具和pchunter工具,在启动外挂样本,那么会发现这个外挂样本是无法启动和启动就崩溃的情况。
并针对这个样本里面的关键代码和数据,这个样本有对这两个工具做对抗的检测操作。防止这个样本的被调试分析和内存dump分析了。
分析下这个样本程序外挂功能,这个样本就是在启动的时候进行做一次系统快照,然后判断下是有启动这些分析工具,没有运行就正常启动了外挂,所以不用过这个检测,先把外挂启动起来,在启动调试分析工具那就可以开始分析之旅了。
下面就开始分析下这个外挂的对这游戏做了那些手脚。
这个外挂的主要过保护功能:
1、将外挂样本放到游戏目录中;
2、接着从这个外挂作者服务器上去下载其修改后的“过保护“的文件;
3、进行替换到游戏目录中;
4、替换后再进行启动游戏,这样达到过掉游戏检测的思路。
这个作者确实很辛苦,把这个过保护的事情做的很细致。
总结
以上的全部只是个分析学习的过程,不是破解,我也不会破解!
游戏黑灰产外挂,一直以来都是长期对抗过程,其中对外挂样本的获取和外挂样本的分析,这个也是对抗过程中的一个很重要的事情。
游戏中的外挂对抗是需要主动出击和积极防守相结合的。积极防守的重要思路是研究透外挂样本的功能和思路,然后对外挂样本采取果断的对抗策略。
对于外挂样本其实可以有几个点值得思考的。
外挂的开发方式:VB、C++、易语言、按键精灵、大漠插件等等
外挂的注入方式:远程线程、钩子注入、导入表注入、劫持注入等等
外挂的保护方式:网络验证、加壳、内部挂、QQ群验证等等。
外挂的检测方式:特征码、文件信息、心跳包、关键函数等等。
【推荐阅读】
原文始发于微信公众号(小道安全):这个外挂一般人不敢下手