前言
我的安全之路
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