书籍详情
游戏安全:手游安全技术入门
作者:腾讯游戏研发部游戏安全中心
出版社:电子工业出版社
出版时间:2016-06-01
ISBN:9787121287831
定价:¥79.00
购买这本书可以去
内容简介
《游戏安全——手游安全技术入门》是国内移动游戏安全领域的开山之作,填补了移动游戏安全书籍的空白,揭开了移动游戏外挂的神秘面纱。随着移动互联网的日益普及,业内对移动安全领域的专业人才的需求逐年增加,而该领域的专业人才相对匮乏,很多开发人员和有志于从事相关行业的在校学生等一直缺少相关的参考资料和书籍。作为移动安全领域的入门书籍,《游戏安全——手游安全技术入门》以移动端(涵盖了Android 和iOS两大平台)的游戏逆向分析和外挂技术为切入点,详细讲述了手游安全领域的诸多基础知识和技能,包括:移动端开发和调试环境搭建、典型的移动游戏特性、与外挂相关的安全开发技术、游戏和外挂的逆向分析方法、外挂开发实战演练、游戏引擎逆向分析等内容,书中的部分源代码可免费从网上下载。读者在掌握本书的内容之后,便可入门手游安全领域,同时可以很容易地将在本书中学到的知识扩展至移动端的其他领域,例如:安全方案开发、病毒分析、软件逆向及保护等。《游戏安全——手游安全技术入门》可作为高等院校计算机安全相关专业的辅助教材,也可供移动端安全技术人员、游戏开发人员,以及有志于从事游戏安全相关工作的学生等参考。
作者简介
邓立丰在2010年加入腾讯公司,早期从事端游客户端的安全工作,负责过《地下城与勇士》《QQ飞车》《剑灵》等大型PC端网络游戏的反外挂对抗工作;从2014年开始从事手游客户端的安全工作,先后负责过《天天酷跑》《全民飞机大战》《雷霆战机》《天天炫斗》《穿越火线:枪战王者》等移动端游戏的反外挂对抗工作。从事游戏安全行业6年,积累了丰富的游戏安全反外挂对抗经验,对游戏安全领域有较为深入的理解和认知。陈志豪在2014年本科毕业于中南大学,以应届毕业生身份进入腾讯公司,担任客户端安全工程师。主要从事腾讯所有自研或代理手游的安全评审、《天天飞车》《天天炫斗》等游戏的外挂对抗,以及其他手游的漏洞挖掘工作。对各种类型的主流游戏的外挂和反外挂原理都有所积累。王彬在2014年以应届毕业生身份加入腾讯公司的游戏部门,负责手游前端的安全对抗工作。目前主要负责《全民飞机大战》《王者荣耀》《穿越火线:枪战王者》等手游的反外挂工作,同时开发工具以支持手游安全评审及漏洞挖掘等相关工作。潘宇峰毕业于武汉大学,曾任百度安全工程师,在2015年加入腾讯公司,主要负责腾讯公司手游的安全评审和漏洞挖掘工作。熟悉基于Unity 3D、Cocos2d-x引擎的C++、C#、Lua游戏的分析和外挂制作。刘从刚在2015年加入腾讯公司的游戏安全部门,参与多个移动端游戏的反外挂对抗和运营工作,平时热爱逆向分析。彭智伟在2014年以应届毕业生身份进入腾讯公司,负责手游安全性评审和外挂分析工作。黎伟柱在2009年大学毕业,先后从事嵌入式系统和Android软件开发。在2014年加入腾讯公司,从事手游外挂对抗工作。熟悉Android软件框架,擅长软件开发及架构。丁笑一在2015年以应届毕业生身份进入腾讯公司的游戏部门,负责手游安全开发和对抗工作。熟悉各类手游的玩法和外挂原理,擅长Android和iOS平台的游戏安全方案的设计及分析工具的开发。王宏俊从2013年开始涉足Android安全行业,对Android安全的攻防有一定的经验,曾主导开发了Android版的《叉叉助手》。在2014年加入腾讯公司的业务安全中心,现在主要从事Android客户端安全方案的开发工作。
目录
第 1 篇概述篇 1第1 章手游面临的安全风险 21.1 静态修改文件 31.1.1 修改游戏资源 31.1.2 修改代码 41.1.3 修改配置 41.2 动态篡改逻辑 41.2.1 修改代码 51.2.2 修改数据 61.3 游戏协议 61.3.1 篡改游戏协议 61.3.2 重发游戏协议 71.4 游戏盗号 71.5 恶意发言 81.6 工作室 81.7 小结 8第 2 章外挂的定义、分类及实现原理 92.1 外挂的定义 92.2 外挂的分类 102.2.1 辅助版外挂 102.2.2 破解版外挂 152.3 外挂的实现原理 152.3.1 辅助版外挂的实现原理 162.3.2 破解版外挂的实现原理 172.4 小结 18第 3 章手游外挂技术汇总 193.1 ARM 汇编 193.2 C、C++语言 193.3 Android 开发 203.4 iOS开发 203.5 了解常用的游戏引擎 203.6 静态分析(IDA 分析) 213.7 动态分析(Android、iOS调试) 213.8 有必要了解的其他编程语言 213.9 静态修改 223.10 动态修改 223.11 小结 22第 2 篇环境搭建篇 23第4 章开发环境搭建 244.1 Android 开发环境搭建 244.1.1 Cygwin 环境搭建 244.1.2 Eclipse 环境搭建 274.1.3 Android 平台的Native 程序编写 294.1.4 Android Native 程序的NDK 编译 304.1.5 Android Native 程序的加载运行 304.2 iOSXcode开发环境搭建 314.2.1 下载Xcode 314.2.2 真机部署 324.3 iOS越狱开发环境搭建 334.3.1 Theos越狱开发环境搭建 344.3.2 iOSOpenDev下载与安装 354.3.3 如何创建和编译iOS动态库文件 364.3.4 如何加载、运行iOS动态库 374.4 小结 38第 5 章调试环境搭建 395.1 Android 平台调试环境的搭建 395.2 iOS 32 位调试环境的搭建 415.2.1 软件安装 415.2.2 iOS 32 位程序的调试 425.3 iOS 64 位程序调试环境的搭建 445.3.1 iPhone 设备的CPU 类型介绍 445.3.2 lldb环境搭建 455.3.3 lldb调试介绍 465.4 小结 48第 6 章工具汇总与使用 496.1 IDA Pro 496.1.1 用IDA 加载可执行文件 506.1.2 用IDA 分析可执行文件 526.1.3 IDA 功能界面 546.2 APKTool工具 616.2.1 反编译APK 文件 626.2.2 重打包APK 文件 636.3 ILSpy工具 646.3.1 加载文件 646.3.2 保存反编译代码 656.4 MachOView工具 666.4.1 加载Mach-O 文件 676.4.2 文件头信息 686.4.3 加密信息获取 696.5 MobileSubStrate工具组件 706.5.1 MobileHooker 716.5.2 MobileLoader 716.5.3 Safe Mode 726.6 小结 72第 3 篇游戏基础篇 73第7 章手游开发基础概述 747.1 游戏玩法与分类 747.1.1 MMORPG 类游戏 757.1.2 FPS 类游戏 777.1.3 ARPG 类游戏 787.1.4 卡牌类游戏 797.1.5 RTS 类游戏 797.1.6 消除类游戏 807.1.7 MOBA 类游戏 817.1.8 跑酷类游戏 817.2 游戏系统及开发的相关概念 827.2.1 手游系统的组成 827.2.2 手游开发语言 887.2.3 手游网络模式 887.3 小结 89第 8 章游戏引擎的基本概念及常见引擎介绍 908.1 什么是游戏引擎 908.2 游戏引擎子系统 918.2.1 渲染系统 918.2.2 音频系统 928.2.3 物理系统 938.2.4 人工智能 938.3 常用手游引擎 948.3.1 Cocos2D 引擎 948.3.2 Unity 3D 引擎 958.4 小结 96第 9 章游戏漏洞概述 979.1 游戏安全漏洞的基本概念 979.1.1 游戏逻辑漏洞 989.1.2 游戏协议稳定型漏洞 989.1.3 游戏服务端校验疏忽型漏洞 999.2 游戏漏洞风险点分类 999.2.1 手游常见类型 999.2.2 手游风险 1009.3 小结 104第 4 篇逆向篇 105第10 章静态分析 10610.1 ARM 反汇编速成 10610.1.1 ARM 体系简介 10610.1.2 ARM 指令样例解析 10710.1.3 Thumb 指令简述 11010.1.4 函数传参 11110.1.5 浮点数基础 11110.2 Android 平台的ELF 文件格式 11310.2.1 文件头信息 11410.2.2 程序头信息 11510.2.3 节表头信息 11710.3 iOS平台的Mach-O 文件格式 11810.3.1 文件头格式 11910.3.2 Load Command 信息 12110.4 IDA 静态分析 12310.4.1 IDA 启动及加载文件 12310.4.2 IDA 静态分析主界面及窗口 12410.4.3 用IDA 保存静态分析结果 12810.4.4 IDA 静态分析的常用功能及快捷键 12910.5 小结 132第 11 章动态分析 13311.1 Android 平台的IDA 动态调试 13311.1.1 启动IDA 调试器 13311.1.2 加载Android 原生动态链接库 13511.1.3 动态调试主界面 13811.1.4 IDA 动态调试断点和脚本功能 13911.1.5 IDA 动态调试修改数据功能 14111.1.6 用IDA 调试器修改代码 14311.2 iOS平台中的GDB 动态调试 14411.2.1 用GDB 加载调试程序 14411.2.2 GDB 常用的调试功能 14611.3 iOS平台的lldb动态调试 15111.3.1 用lldb加载调试程序 15111.3.2 lldb的调试功能 15411.3.3 其他功能 15711.4 小结 158第 5 篇开发篇 159第12 章定制化外挂开发流程 16012.1 什么是定制化外挂 16012.2 定制化外挂开发的基础流程 16112.3 定制化外挂开发各环节介绍 16112.3.1 逆向分析游戏逻辑 16212.3.2 验证外挂功能是否可行 16212.3.3 注入游戏进程 16312.3.4 枚举游戏进程模块 16312.3.5 Hook 关键函数 16312.3.6 游戏内存数据修改 16412.3.7 反调试功能 16412.4 小结 165第 13 章注入技术的实现原理 16613.1 什么是进程注入技术 16613.2 Android 平台下ptrace注入技术的实现 16713.2.1 ptrace函数介绍 16713.2.2 ptrace注入进程流程 16813.2.3 ptrace注入的实现 16913.2.4 ptrace注入实例测试 17313.3 Android 平台下Zygote 注入技术的实现 17413.3.1 Zygote 注入技术的原理 17413.3.2 Zygote 注入技术的实现流程 17413.3.3 Zygote 注入器的实现方式 17513.3.4 注入Zygote 的模块功能实现 18213.3.5 Zygote 注入实例测试 18213.4 Android 平台感染ELF 文件的注入技术实现 18413.4.1 ELF 文件的格式 18513.4.2 感染ELF 文件的注入实现原理 18613.4.3 感染ELF 文件的注入实现过程 18713.4.4 感染ELF 文件的注入实例分析 18813.4.5 感染ELF 文件的注入编程实现 19213.4.6 感染ELF 文件的注入实例测试 19413.5 iOS平台越狱环境的注入实现 19513.5.1 利用Theos环境创建注入工程 19513.5.2 工程文件说明 19613.5.3 编译和安装 20013.5.4 iOS注入原理介绍 20213.6 小结 203第 14 章 Hook 技术的实现原理 20514.1 Hook 技术简介 20514.2 Android 平台基于异常的Hook 实现 20614.2.1 基于异常Hook 的实现原理 20614.2.2 Android 平台基于异常Hook 的实现流程 20714.2.3 基于异常Hook 的实现代码 20814.2.4 基于异常Hook 的实例测试 21214.3 Android 平台的Inline Hook 实现 21414.3.1 Inline Hook 的实现原理 21414.3.2 Inline Hook 的实现流程 21514.3.3 Inline Hook 的实现代码 21614.3.4 Inline Hook 的实例测试 22014.4 Android 平台下导入表Hook 的实现 22414.4.1 导入表Hook 的实现原理 22414.4.2 导入表Hook 的实现流程 22414.4.3 导入表Hook 的实现代码 22514.4.4 Android 平台下导入表Hook 的实例测试 22914.5 小结 230第 15 章游戏进程的模块信息获取 23115.1 Android 平台进程模块的信息获取 23115.1.1 Android 内存模块遍历的原理 23215.1.2 Android 内存模块遍历的实现 23315.1.3 实例测试 23615.2 iOS平台进程模块信息的获取 23715.2.1 Dyld API 遍历模块的原理 23715.2.2 Dyld API 遍历模块实现 23915.2.3 通过内存遍历法获取模块的原理 23915.2.4 通过内存遍历法获取模块信息的实现 24115.2.5 实例测试 24715.3 小结 249第 16 章篡改游戏内容的实现原理 25016.1 游戏内容读写方式分类 25016.2 非注入式篡改 25116.2.1 篡改APK 安装包 25116.2.2 篡改游戏的安装目录文件 25316.2.3 篡改“/proc/”目录文件 25316.3 注入式篡改 25816.3.1 篡改内存数据 25916.3.2 篡改逻辑代码 25916.3.3 注入式篡改代码实例讲解 26016.4 小结 263第 17 章反调试技术 26417.1 Android 平台的常规反调试技术 26417.1.1 Android 平台的Self-Debugging 反调试方案 26517.1.2 Android 平台的轮询检测反调试方案 26817.1.3 Android 平台Java 层的反调试技术 27017.2 iOS平台的反调试技术 27017.2.1 iOS平台拒绝被附加反调试方案 27117.2.2 iOS平台的轮询检测反调试方案 27217.3 小结 273第 6 篇实战篇 275第18 章游戏逆向分析实战篇 27618.1 C++游戏分析实战篇 27618.1.1 C++游戏识别 27718.1.2 C++基础 27818.1.3 C++游戏的逆向分析方法 27918.1.4 C++游戏的破解思路 28118.1.5 C++游戏逆向分析实战篇——《雷霆战机》无敌和秒杀功能分析 28118.2 Unity 3D 游戏分析实战篇 28918.2.1 识别Unity 3D 游戏 28918.2.2 Unity 3D 游戏的破解方法 29018.2.3 Unity 3D 游戏分析涉及的工具 29118.2.4 Unity 3D 游戏分析实战篇——《星河战神》的无限冲刺功能分析 29218.3 Lua游戏分析实战 29518.3.1 识别Lua游戏 29518.3.2 破解Lua游戏的方法 29618.3.3 常用工具 29818.3.4 Lua游戏实战——破解《疾风猎人》的Lua代码 29818.3.5 Lua游戏分析实战——破解《游龙英雄》的Lua代码 30018.4 小结 302第 19 章外挂逆向分析实战——《雷霆战机》圈圈外挂分析 30319.1 外挂整体分析 30319.2 外挂注入功能分析 30419.2.1 com.oozhushou-1.apk 文件分析 30419.2.2 hhloader模块分析 30919.2.3 外挂注入的实现方式 31119.3 外挂作弊功能分析 31219.3.1 秒杀功能的实现分析 31219.3.2 忽略伤害功能的实现分析 31519.3.3 护盾延迟功能的实现分析 31619.4 小结 317第 20 章外挂开发实战——《2048》手游快速通关功能分析及开发 31820.1 游戏功能分析 31820.1.1 功能可行性分析 31820.1.2 游戏引擎的确认 32020.1.3 关键逻辑的逆向分析 32020.2 外挂功能的实现 32620.2.1 实现思路 32620.2.2 实现原理 32720.2.3 实现流程 32720.2.4 实现代码 32820.3 测试结果 32920.4 小结 330第 21 章Unity3D 引擎逆向分析 33221.1 Unity 3D 引擎概述 33221.2 Android 平台Unity 3D 引擎的Mono 机制分析 33321.2.1 Mono 介绍 33321.2.2 Mono 主框架的执行流程 33421.2.3 C#函数调用的执行过程 33521.3 iOS平台的Unity 3D 引擎IL2CPP 机制分析 33821.3.1 IL2CPP 机制生成代码的对比 33821.3.2 逆向分析IL2CPP 机制中C#函数的调用方式 34221.3.3 Unity 3D 引擎的IL2CPP 机制安全性分析 34721.4 Unity 3D 引擎AB 机制分析及《天天来战》AB 包还原 34921.4.1 Unity 3D 的AB 打包实现 34921.4.2 C#脚本的AB 包加载及运行过程 35121.4.3 《天天来战》游戏的AB 包处理方式分析及还原 35221.5 小结 358
猜您喜欢