内容简介
随着网络的普及,网络游戏得到了众多网民的青睐。但是,网络游戏的盛行,也给游戏玩家和游戏公司带来了很多安全问题,如木马盗号、外挂作弊等。对于正常的游戏玩家和游戏公司来说,外挂的危害尤其突出。因为一款免费的外挂,不仅可能携带游戏木马,还会影响游戏的平衡,甚至伤害其他玩家的感情。虽然很多游戏玩家和安全爱好者对外挂和反外挂技术有强烈的兴趣,但目前市面上很难找到一本能够深入浅出地讲解这部分知识的书。本书将带领读者走近外挂和反外挂技术这个神秘的领域,让读者了解外挂的制作过程、作弊过程以及反外挂检测技术,从而提升读者对游戏安全的认识。
本书是作者长期分析外挂软件和反外挂的经验所得,分5篇,共10章,包括游戏和外挂初识、外挂技术、游戏保护方案探索、射击游戏安全和外挂检测技术。本书内容循序渐进,层层解剖外挂涉及的一些关键技术,包括注入、隐藏、交互、Hook和Call函数等,让读者对外挂产生直观和深刻的认识,性的外挂分析和检测方法对安全从业者而言也有很好的借鉴意义。
目录
第1篇 游戏和外挂初识篇
第1章 认识游戏和外挂 2
1.1 游戏安全现状 2
1.2 什么是外挂 3
1.3 内存挂与游戏的关系 3
1.4 游戏的3个核心概念 5
1.4.1 游戏资源的加/解密 5
1.4.2 游戏协议之发包模型 11
1.4.3 游戏内存对象布局 16
1.5 外挂的设计思路 24
1.6 反外挂的思路 25
1.7 本章小结 26
第2篇 外挂技术篇
第2章 五花八门的注入技术 28
2.1 注册表注入 28
2.2 远线程注入 29
2.3 依赖可信进程注入 32
2.4 APC注入 34
2.5 消息钩子注入 36
2.6 导入表注入 39
2.7 劫持进程创建注入 48
2.8 LSP劫持注入 50
2.8.1 编写LSP 52
2.8.2 安装LSP 56
2.9 输入法注入 60
2.10 ComRes注入 66
第3章 浅谈无模块化 67
3.1 LDR_MODULE隐藏 67
3.2 抹去PE“指纹” 74
3.3 本章小结 76
第4章 安全的交互通道 77
4.1 消息钩子 77
4.2 替代游戏消息处理过程 81
4.3 GetKeyState、GetAsyncKeyState和GetKeyBoard State 82
4.4 进程间通信 84
4.5 本章小结 89
第5章 未授权的Call 90
5.1 Call Stack检测 90
5.2 隐藏Call 90
5.2.1 Call自定义函数头 91
5.2.2 构建假栈帧 99
5.3 定位Call 107
5.3.1 虚函数差异调用定位Call 107
5.3.2 send() 函数回溯定位Call 110
5.4 本章小结 112
第6章 Hook大全 113
6.1 Hook技术简介 113
6.2 IAT Hook在全屏加速中的应用 115
6.3 巧妙的虚表Hook 121
6.3.1 虚表的内存布局 122
6.3.2 C++ 中的RTTI 123
6.3.3 Hook虚表 125
6.4 Detours Hook 128
6.4.1 Detours简介 128
6.4.2 Detours Hook的3个关键概念 128
6.4.3 Detours Hook的核心接口 130
6.4.4 Detours Hook引擎 132
6.5 Hook 147
6.5.1 S.E.H简介 147
6.5.2 V.E.H简介 148
6.5.3 硬件断点 150
6.5.4 S.E.H Hook 153
6.5.5 V.E.H Hook 156
6.5.6 检测V.E.H Hook 157
6.6 本章小结 159
第7章 应用层防护 160
7.1 静态保护 161
7.2 动态保护 165
7.2.1 反dump 165
7.2.2 内存访问异常Hook 169
7.3 本章小结 171
第3篇 游戏保护方案探索篇
第8章 探索游戏保护方案 174
8.1 分析工具介绍 174
8.1.1 GameSpider 174
8.1.2 Kernel Detective 178
8.2 定位保护模块 178
8.2.1 定位ring0保护模块 179
8.2.2 定位ring3保护模块 179
8.2.3 定位自加载模块 185
8.3 分析保护方案 187
8.3.1 ring3保护方案 187
8.3.2 ring0保护方案 189
8.4 本章小结 191
第4篇 射击游戏安全专题
第9章 射击游戏安全 194
9.1 自动开枪 194
9.1.1 易语言简介 195
9.1.2 易语言版自动开枪外挂 195
9.2 反后坐力 199
9.2.1 平衡Y轴法 199
9.2.2 AutoIt脚本法 200
9.3 DirectX Hack 203
9.3.1 DirectX简介 203
9.3.2 用Direct3D绘制图形 209
9.3.3 D3D9的Hack点 211
9.3.4 D3D9 Hook 214
9.4 本章小结 222
第5篇 外挂检测技术篇
第10章 外挂的检测方法 224
10.1 代码篡改检测 224
10.2 未授权调用检测 227
10.3 数据篡改检测 229
10.3.1 吸怪挂分析 229
10.3.2 线程转移和消息分流 230
10.4 本章小结 238
附录A 声明 239
附录B 中国计算机安全相关法律及规定 240
摘要与插图
序网络游戏产业是一个新兴的朝阳产业。经历了20世纪末至今的快速发展,我国的网络游戏产业正处于高速成长并快速走向成熟期的阶段。目前,网络游戏产业已成为我国网络经济及文化娱乐产业的重要支撑,因此,我国的网络游戏产业还需要国家和政府的鼓励、支持与呵护——尤其是在政策及法律法规层面。与此同时,也更需要学术界和产业界重视网络游戏的安全威胁,积极研究网络游戏的安全技术,为我国的网络游戏产业创造一个健康、良性的发展环境。
当前,网络游戏面临的头号安全威胁就是网络游戏外挂。近些年来,信息安全技术研究领域的著作很多,但专门针对网络游戏安全研究的可谓凤毛麟角,而且基本上是以网络游戏外挂现象的揭示和平铺直述的文字为主,真正揭开现象背后的本质、讨论反外挂技术的著作还没有看到。《游戏外挂攻防艺术》一书填补了这方面图书的空白,先揭示了网络游戏及其外挂的原理,然后通过代码实例罗列和盘点了网络游戏外挂的注入技术、无模块化隐藏技术、交互通信隐藏技术、函数调用隐藏技术、Hook技术以及游戏的安全保护,抛砖引玉,提出了外挂检测与防御的技术。
网络游戏产业中,网络游戏外挂在巨大的灰色利益的驱动下,不会因为我们对它的厌恶而消亡,相反,它会“道高一尺,魔高一丈”。学术界和产业届的学者和技术专家们只有正视它的存在,深刻地了解和认识它,并在技术上积极主动地对抗它,才能真正保护网络游戏和网络游戏产业。
谨将此书给热衷和从事信息安全和网络游戏安全工作的专业技术人员学习和参考。
电子科技大学 教授
李毅超