关于游戏的外挂和反外挂措施

@Ta 2013-12-12 829点击
今天下页就和大家普及一下外挂开发者的外挂开发和游戏商的反外挂措施。文章原创来源:xyde.cn
首先,我们要了解外挂的基本类型。外挂一般的分为两类类,脱机式 和 内挂式。
脱机式外挂的定义:完全脱离官方发布的客户端程序,可以与游戏服务器自由的进行通讯的外挂程序,这类外挂的实现是2类外挂里最困难的,主要难点在于外挂制作者需要对游戏的通讯协议进行充分的分析,包括解决封包的加密解密问题,使得封包合法化,这样游戏服务器才能接受并处理。
内挂式外挂的定义:内挂需要以官方发布的客户端程序为载体,依靠客户端程序来完成与游戏服务器的通讯,主要通过反汇编手段分析并修改客户端代码后实现功能,一般通过直接调用游戏客户端的发包函数进行发包,或者调用游戏客户端的封包加密解密函数自行处理发包收包。
外挂制作手段分析:
   制作外挂一般使用的分析工具:
动态分析 OllyDbg(OllyICE)
静态分析 IDA Pro
   制作外挂一般使用的开发工具:
VisualStdio系列(VC++,VB)
Borland系列(Delphi,BCB,BC++)
中国人自己的开发工具(易语言)(注:此开发工具优势在于控件种类上,有专门的用于外挂制作的控件)
制作外挂的技术:
鼠标键盘模拟技术:这类技术在RING3层可通过调用WIN32 API实现,在RING0层可通过驱动模拟鼠标键盘输入来实现。按键精灵就采用在RING0层通过驱动来模拟鼠标键盘,比较底层。
Hook技术:包括API HOOK 、普通的对游戏代码进行HOOK等。这类技术有个特点,对目标进程的代码会进行修改。
脚本技术:扩充外挂功能的技术之一,能让外挂使用者编写脚本来扩充外挂功能,脚本精灵就是简单的纯脚本外挂制作的主力军。
反外挂一般使用的分析工具:
动态分析 OllyDbg(OllyICE)
静态分析 IDA Pro
制作反外挂一般使用的开发工具:
这个要根据游戏开发商来决定。
制作反外挂的技术要点:
代码校验:包括磁盘代码及内存代码校验,防止代码被非法更改。
虚拟机保护:虚拟机(VM )其实就是Virtual Machine的缩写,这里说的VM并不是像VMWare那样的虚拟机,而是将一系列的指令解释成bytecode(字节码)放在一个解释引擎中执行,能有效的干扰非法调试者对保护的代码进行分析。是反外挂技术中的重中之重,也是反外挂的常用手段。
驱动保护:采用底层钩子技术,一般采用SSDT HOOK来对游戏进程进行保护。但这种技术有一个致命的缺陷,就是兼容性问题。
反调试:对调试过程产生干扰,阻止非法调试者进行正常的调试。反调试代码加多后会导致兼容性稳定性出现问题,一般反调试用在反外挂的方面上还是不多的,尤其是大型网游。
反脱机式外挂的防止方法:通过修改封包通讯协议和修改封包加密解密能够防止反脱机式外挂,这个要求的技术含量不高。
防止内挂式外挂:
反该类外挂主要从代码校验上着手,并配合虚拟机保护,必要时候加上简单的驱动。简单的可以采用如下步骤处理:
1.将封包加密解密独立成一个动态连接库(DLL),供游戏主程序调用进行封包加解密。
2.更换封包加密解密方式,防止破解者采用替换旧客户端的方式进入游戏。
3.反外挂功能在独立出来的动态连接库里实现,在独立出来的动态连接库中加入对主程序代码段校验。建立一个新的反外挂线程来校验代码段,加入敌意进程或模块的特征检测,对关键的API进行检测。检测到非法可以对服务器进行报告,并在客户端主动切断与游戏服务器的连接。
4.在加密解密函数里加入对反外挂线程的检测,检测反外挂线程是否正常运行,如果检测到非法情况,同样对服务器进行报告并主动切断与游戏服务器的连接。
5.对独立出来的DLL进行虚拟机保护(封包加解密及反外挂线程代码)。
6.必要的驱动保护措施或者隐藏措施。

不论是各种类型的外挂,还是各种类型的反外挂措施,都存在一些弊端。外挂在进步的同时,反外挂也在进步。反外挂系统是需要长期性的完善的,建议建立专门的安全系统小组,对各种外挂进行剖析,分析外挂的技术并进行更新代码,不断的更新游戏安全系统,这样外挂才不会猖獗。
本文作者:下页哥
回复列表(4|隐藏机器人聊天)
添加新回复
回复需要登录