游戏外挂***艺术
游戏外挂内幕首度解密 国内唯一相关权威著作
徐胜
2013 2 月出版
ISBN 978-7-121-19532-7
定价: 59.00
256
16
编辑推荐
广义的外挂随处可见,一度喧嚣尘上的抢票浏览器其实就是外挂行为。对于游戏而言,外挂是一种通过篡改特定网游的部分程序而实现作弊的第三方软件。游戏外挂的涌现与游戏官方的抵制相伴相生,互相促进着对方技术的提高与创新。其中的运作机理、***手段以及整体思路,因从未公开披露而显得高深而神秘。本书的出现,彻底打破这样的格局,游戏外挂从此透明***……
 
内容提要
随着网络的普及,网络游戏得到了众多网民的青睐。但是,网络游戏的盛行,也给游戏玩家和游戏公司带来了很多安全问题,如***盗号、外挂作弊等。对于正常的游戏玩家和游戏公司来说,外挂的危害尤其突出。因为一款免费的外挂,不仅可能携带游戏***,还会影响游戏的平衡,甚至伤害其他玩家的感情。虽然很多游戏玩家和安全爱好者对外挂和反外挂技术有强烈的兴趣,但目前市面上很难找到一本能够深入浅出地讲解这部分知识的书。本书将带领读者走近外挂和反外挂技术这个神秘的领域,让读者了解外挂的制作过程、作弊过程以及反外挂检测技术,从而提升读者对游戏安全的认识。
本书是作者长期分析外挂软件和反外挂的经验所得,分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技术以及游戏的安全保护,最后抛砖引玉,提出了外挂检测与防御的技术。
    网络游戏产业中,网络游戏外挂在巨大的灰色利益的驱动下,不会因为我们对它的厌恶而消亡,相反,它会“道高一尺,魔高一丈”。学术界和产业届的学者和技术专家们只有正视它的存在,深刻地了解和认识它,并在技术上积极主动地对抗它,才能真正保护网络游戏和网络游戏产业。
谨将此书推荐给热衷和从事信息安全和网络游戏安全工作的专业技术人员学习和参考。
 
电子科技大学 教授
李毅超
 
作者简介
徐胜,2009年于电子科技大学获得计算机科学与工程硕士学位,现就职于阿里巴巴,从事移动安全的研究和移动产品的研发,主要研究方向包括:Windows平台下的***、外挂、Rootkit、防火墙和二进制逆向分析,Android和iOS客户端软件安全,以及Web和WAP安全。
 
媒体评论
游戏外挂已经成为当前游戏行业发展过程中要面对的严峻问题,只有深入了解***和外挂的使用技术,才能从根本上进行防范。本书对外挂的常用技术进行了详细的说明,每一个开发人员都可以通过本书了解所需要的知识,以及针对外挂所要采取的措施。本书讲解的内容不限于游戏,也适合于其他所有的应用程序。
——北京安管佳科技有限公司 CTO    石磊
 
在安全领域,国内不乏过程式描述的书籍,但真正深入揭秘内部原理的却很少,对某个问题进行独立思考并提出新的解决方案的更是寥寥无几。本书在对“攻”和“防”的描述过程中,深刻地揭露了现象的内部原理,同时提出很多创造性的解决方案,相信可以极大地开阔读者的眼界和思路。
——凌码信息技术公司信息安全部经理    任云韬
 
对虚表进行Hook所采用的模糊假定,对定位自加载模块所采用的差异分析,对检测V.E.H Hook所采用的虚假注册,对绕过Call Stack检测所采用的虚拟栈帧等思路,让本书充满亮点。这些解决问题的创造性思维,无不让我受益匪浅。强烈建议安全从业者精读此书,相信一定可以得到全新的收获。
——阿里巴巴高级安全技术专家    张玉东
 
游戏外挂和游戏公司的斗争是一场长期的博弈,正所谓“道高一尺,魔高一丈”。本书不仅带领读者深入了解外挂所采用的各种技术,还从反外挂的角度介绍如何分析和发现外挂作弊行为,所以,作者是站在裁判的高度来揭示这场没有硝烟的***战中所涉及的各个技术点的。我相信,书中娓娓道来的技术亮点和对抗过程,一定会让读者耳目一新,并从中获益。
——成都安思科技有限公司副总经理    沈东
 
没有空洞的理论,有的是对实践提炼后的总结;没有只停留在表面的肤浅介绍,更多的是深入现象看实质;没有从一条线的头枯燥地谈到尾,而是从“攻”和“防”两条线并行而论;没有乏味地以粗糙的手法来解决一个问题,而是设计了精妙的解决方案。强烈推荐此书给各位读者,希望也能引发大家的共鸣。
——×××软件研究所博士    张谦
 
前言
我的安全之路
2002年,在父亲的陪伴下,我登上了西去的火车,来到了“三国”发祥地四川南充就读大学。在大学期间,虽然我很用心地学习与计算机相关的每门功课,但是因为信息闭塞,对计算机这门科学,我始终觉得自己没有入门,因而深感苦闷。
直到2003年,得知网易创始人丁磊成为中国首富之后,我才知道成都还有一所大学叫做电子科技大学。2006年,我很幸运地进入电子科技大学网络***实验室就读研究生,从此正式开始了网络安全的学习和研究之旅。
2007年,我们实验室接到第三方公司的一个主动防御系统项目,我正好负责实现其中的防火墙模块。这是我第一次独立负责设计和开发一个完整的安全项目。经过这个项目的洗礼,我对Windows操作系统、***和Rootkit技术有了比较深入的认识——最大的收获还是学会了如何去学习和做技术研究。
2009年,从电子科技大学毕业之后,我坐上了南下的火车,来到深圳一家互联网公司从事反外挂分析工作。一年之后,由于种种原因,我毅然选择离开。
2010年,我再次回到成都,在中兴通讯成都研究所开始了手机软件开发之旅。不过,当时我能接触的只是低端的特性机,不是一直渴望的智能机,所以,3个月之后,我再次选择离开。
2011年,我来到淘宝做无线安全,终于开始接近智能机。无线安全是一个新的方向,包括WAP安全、Android安全、iOS安全等,涉及的安全风险点比较多,资料也比较匮乏,但是,我们依然贡献了自动化探测Android软件漏洞的fuzzing系统、基于Smali Hook技术的Android风险分析系统和iOS静态扫描工具等。
2012年对我来说是非常不平凡的一年,因为我完成了这本书,在安全研究的道路上留下了自己的足迹。虽然不一定能做到字字珠玑,但我相信,这本书里体现的各种思想,包括差异分析、模糊假定、虚假注册等,还是会引起安全从业者的共鸣。当然,本书出版时,我可能已经退出接触多年的安全行业,转战无线产品的研发。
我相信,无论自己在做什么,内容不是最重要的,关键是能不能把事情做到极致,能不能以创新的思维去解决问题。
我相信,无论自己是否走在安全研究的道路上,方向、专注、坚持和自信都是打开成功之门的必备钥匙。
写作目的
为什么要写这本书?
反外挂是一项系统工程,涉及多方面的知识,包括对游戏的理解、对Windows操作系统的认识、对网络协议的掌握、对调试与反调的掌握等,需要具备技术创造性才能在***中占据优势。但是,目前市面上还没有一本深入讲解这部分知识的书。所以,如果有一本书能深刻剖析游戏、外挂和反外挂,将是对网络游戏安全感兴趣的读者的福音——因为它能够提升读者对网络游戏安全的认识、开阔眼界。
关于本书
在计算机领域,无论是网络、操作系统、脚本,还是软件,都有各种层次的书籍来描述对应的安全知识,但是对网络游戏而言,国内讲解其安全性的书籍却少之又少。国外有一本书叫做《网络游戏安全揭秘》(Exploiting Online Games: Cheating Massively Distributed Systems),其对外挂技术的剖析只是蜻蜓点水,不够深入,对游戏架构等也未做详细描述,而且未对反外挂思路进行整理,所以,对一个急于了解外挂和游戏原理的人来说,只能是望梅止渴。为了让读者了解外挂的制作过程和原理,理解游戏的核心概念,理清反外挂的思路,笔者花费了大量时间投入本书的写作,包括实例的编写、各种原理图的绘制等。
本书有很多亮点,相信值得读者好好花精力去研读。这些亮点包括但不限于以下方面。
     与同类技术作对比,并进行优缺点的评价。
     不仅剖析外挂技术,也罗列反外挂技术。
     解决问题的思路新颖,如差异分析、模糊假定、线程转移、消息分流等。
实例程序及相关文档
本书的每一章都提供了实例程序及相关阅读文档,放在与各章对应的资源包中。读者可以访问http://www.broadview.com.cn/19532下载,或者加入QQ群143914331获取。
读者在阅读本书以及相关实例程序和文档的过程中遇到的困惑,都可以通过给gamebot@foxmail.com发送电子邮件的方式来获取满意的答案。
免责声明
本书所讨论的技术仅用于研究和学习,旨在提高游戏的安全性,严禁用于不良动机。任何个人、团队、组织不得使用其进行非法活动,否则后果自负。
本书结构
本书分为5篇,共10章。
第1篇是“游戏和外挂初识篇”。本篇是全书的开篇,主要从内存对象的角度向读者阐明什么是外挂,外挂带来的危害,以及应该怎样理解外挂与游戏的关系。
第2篇是“外挂技术篇”。本篇包括第2章至第7章,共6章,主要阐述开发一款优秀的外挂所采用的技术。这些技术分别是注入技术、模块隐藏技术、安全的交互技术、Call函数技术、Hook技术和自我保护技术。本篇的每一章都包括同类技术的优缺点分析和大量的实例程序,相信根据这种安排,读者能够对外挂的制作过程和作弊过程有深刻的认识,同时,每一章中对同类技术的对比,也会帮助读者理解和掌握相应的技术。
第3篇是“游戏保护方案探索篇”。本篇主要带领读者分析游戏的保护方案,帮助读者掌握通用的分析方法。虽然现实环境中具体的保护方案可能千差万别,但是通过本篇的学习,读者能够从宏观上掌握分析的目标和方法,从而在新的保护方案面前有的放矢。
第4篇是“射击游戏安全专题”。本篇主要围绕第一人称射击类游戏展开。因为此类游戏的安全问题比较相似,所以本书专门用一篇来阐述此类游戏可能涉及的一些安全风险,以便读者集中了解这方面的安全问题。
第5篇是“外挂检测技术篇”。本篇主要向读者展示一些比较实用的外挂检测技术,其中不乏新颖的检测方案,希望能起到抛砖引玉的作用。
致谢
感谢我的父母,你们给了我一个能历经风雨的好身体。特别感谢我的父亲,是你坚持相信我能行,才又再次印证那句古语——浪子回头金不换。
感谢我的妻子,这么多年跟我东奔西走,陪在我身边,即使天各一方,依然默默地支持我,嗷嗷待哺的儿子也是你在带,感谢之辞已经无法承载这份情谊。
感谢我的好友唐仙、杨海燕、陈殊聪,是你们在我考研那段时间给予的鼓励和帮助让我选择了坚持,使我最终以平和的心态取得好成绩,愿友谊天长地久。
感谢电子科技大学网络***实验室的李毅超老师、刘丹老师和曹越老师,特别感谢李毅超老师抽出宝贵时间对书稿提出建议并作序。感谢黄沾、何子昂、梁晓等师兄和师姐的帮助,感谢杨宇、阳广元、钱彦江、舒伯承、覃丽芳等同门的鼓励,感谢罗尧、康凯、申文迪、刘泽鹏等师弟的支持,怀念在电子科技大学与你们并肩作战的日子。
感谢阿里巴巴安全技术团队的张玉东、×××的张谦博士、成都安思科技公司的沈东、凌码信息技术公司的任云韬、北京安管佳科技有限公司的石磊等对本书的宝贵建议和推荐。
感谢博文视点的张春雨以及他的团队,是你们的努力使本书最终能与广大读者见面。你们的专业意见给了我很多帮助,也开阔了我的视野。你们的效率和敬业精神给我留下了深刻的印象,让我相信国内技术类图书会有美好的未来。
最后特别感谢历史长河中那些曾在逆境中成才的先哲们,你们是人类文明的瑰宝,是所有处于逆境的有志之士的楷模。
 
联系方式
新浪微博:http://weibo.cn/winsunfish83
腾讯微博:http://t.qq.com/winsun_xu_GG
博  客:http://blog.csdn.net/winsunxu
电子邮箱:gamebot@foxmail.com