游戲安全:手游安全技術入門

游戲安全:手游安全技術入門
定價:474
NT $ 474
 

內容簡介

本書是國內移動游戲安全領域的開山之作,填補了移動游戲安全書籍的空白,揭開了移動游戲外掛的神秘面紗。

隨着移動互聯網的日益普及,業內對移動安全領域的專業人才的需求逐年增加,而該領域的專業人才相對匱乏,很多開發人員和有志於從事相關行業的在校學生等一直缺少相關的參考資料和書籍。

作為移動安全領域的入門書籍,本書以移動端(涵蓋了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章手游面臨的安全風險2
1.1靜態修改文件3
1.1.1修改游戲資源3
1.1.2修改代碼4
1.1.3修改配置4
1.2動態篡改邏輯4
1.2.1修改代碼5
1.2.2修改數據6
1.3游戲協議6
1.3.1篡改游戲協議6
1.3.2重發游戲協議7
1.4游戲盜號7
1.5惡意發言8
1.6工作室8
1.7小結8
第2章外掛的定義、分類及實現原理9
2.1外掛的定義9
2.2外掛的分類10
2.2.1輔助版外掛10
2.2.2破解版外掛15
2.3外掛的實現原理15
2.3.1輔助版外掛的實現原理16
2.3.2破解版外掛的實現原理17
2.4小結18
第3章手游外掛技術匯總19
3.1ARM匯編19
3.2C、C++語言19
3.3Android開發20
3.4iOS開發20
3.5了解常用的游戲引擎20
3.6靜態分析(IDA分析)21
3.7動態分析(Android、iOS調試)21
3.8有必要了解的其他編程語言21
3.9靜態修改22
3.10動態修改22
3.11小結22

第2篇 環境搭建篇 23
第4章開發環境搭建24
4.1Android開發環境搭建24
4.1.1Cygwin環境搭建24
4.1.2Eclipse環境搭建27
4.1.3Android平台的Native程序編寫29
4.1.4Android Native程序的NDK編譯30
4.1.5Android Native程序的加載運行30
4.2iOS Xcode開發環境搭建31
4.2.1下載Xcode31
4.2.2真機部署32
4.3iOS越獄開發環境搭建33
4.3.1Theos越獄開發環境搭建34
4.3.2iOSOpenDev下載與安裝35
4.3.3如何創建和編譯iOS動態庫文件36
4.3.4如何加載、運行iOS動態庫37
4.4小結38
第5章調試環境搭建39
5.1Android平台調試環境的搭建39
5.2iOS32位調試環境的搭建41
5.2.1軟件安裝41
5.2.2iOS32位程序的調試42
5.3iOS64位程序調試環境的搭建44
5.3.1iPhone設備的CPU類型介紹44
5.3.2lldb環境搭建45
5.3.3lldb調試介紹46
5.4小結48
第6章工具匯總與使用49
6.1IDAPro49
6.1.1用IDA加載可執行文件50
6.1.2用IDA分析可執行文件52
6.1.3IDA功能界面54
6.2APKTool工具61
6.2.1反編譯APK文件62
6.2.2重打包APK文件63
6.3ILSpy工具64
6.3.1加載文件64
6.3.2保存反編譯代碼65
6.4MachOView工具66
6.4.1加載Mach—O文件67
6.4.2文件頭信息68
6.4.3加密信息獲取69
6.5MobileSubStrate工具組件70
6.5.1MobileHooker71
6.5.2MobileLoader71
6.5.3SafeMode72
6.6小結72

第3篇 游戲基礎篇 73
第7章手游開發基礎概述74
7.1游戲玩法與分類74
7.1.1MMORPG類游戲75
7.1.2FPS類游戲77
7.1.3ARPG類游戲78
7.1.4卡牌類游戲79
7.1.5RTS類游戲79
7.1.6消除類游戲80
7.1.7MOBA類游戲81
7.1.8跑酷類游戲81
7.2游戲系統及開發的相關概念82
7.2.1手游系統的組成82
7.2.2手游開發語言88
7.2.3手游網絡模式88
7.3小結89
第8章游戲引擎的基本概念及常見引擎介紹90
8.1什麼是游戲引擎90
8.2游戲引擎子系統91
8.2.1渲染系統91
8.2.2音頻系統92
8.2.3物理系統93
8.2.4人工智能93
8.3常用手游引擎94
8.3.1Cocos2D引擎94
8.3.2Unity3D引擎95
8.4小結96
第9章游戲漏洞概述97
9.1游戲安全漏洞的基本概念97
9.1.1游戲邏輯漏洞98
9.1.2游戲協議穩定型漏洞98
9.1.3游戲服務端校驗疏忽型漏洞99
9.2游戲漏洞風險點分類99
9.2.1手游常見類型99
9.2.2手游風險100
9.3小結104

第4篇 逆向篇 105
第10章靜態分析106
10.1ARM反匯編速成106
10.1.1ARM體系簡介106
10.1.2ARM指令樣例解析107
10.1.3Thumb指令簡述110
10.1.4函數傳參111
10.1.5浮點數基礎111
10.2Android平台的ELF文件格式113
10.2.1文件頭信息114
10.2.2程序頭信息115
10.2.3節表頭信息117
10.3iOS平台的Mach—O文件格式118
10.3.1文件頭格式119
10.3.2Load Command信息121
10.4IDA靜態分析123
10.4.1IDA啟動及加載文件123
10.4.2IDA靜態分析主界面及窗口124
10.4.3用IDA保存靜態分析結果128
10.4.4IDA靜態分析的常用功能及快捷鍵129
10.5小結132
第11章動態分析133
11.1Android平台的IDA動態調試133
11.1.1啟動IDA調試器133
11.1.2加載Android原生動態鏈接庫135
11.1.3動態調試主界面138
11.1.4IDA動態調試斷點和腳本功能139
11.1.5IDA動態調試修改數據功能141
11.1.6用IDA調試器修改代碼143
11.2iOS平台中的GDB動態調試144
11.2.1用GDB加載調試程序144
11.2.2GDB常用的調試功能146
11.3iOS平台的lldb動態調試151
11.3.1用lldb加載調試程序151
11.3.2lldb的調試功能154
11.3.3其他功能157
11.4小結158

第5篇 開發篇 159
第12章定制化外掛開發流程160
12.1什麼是定制化外掛160
12.2定制化外掛開發的基礎流程161
12.3定制化外掛開發各環節介紹161
12.3.1逆向分析游戲邏輯162
12.3.2驗證外掛功能是否可行162
12.3.3注入游戲進程163
12.3.4枚舉游戲進程模塊163
12.3.5Hook關鍵函數163
12.3.6游戲內存數據修改164
12.3.7反調試功能164
12.4小結165
第13章注入技術的實現原理166
13.1什麼是進程注入技術166
13.2Android平台下ptrace注入技術的實現167
13.2.1ptrace函數介紹167
13.2.2ptrace注入進程流程168
13.2.3ptrace注入的實現169
13.2.4ptrace注入實例測試173
13.3Android平台下Zygote注入技術的實現174
13.3.1Zygote注入技術的原理174
13.3.2Zygote注入技術的實現流程174
13.3.3Zygote注入器的實現方式175
13.3.4注入Zygote的模塊功能實現182
13.3.5Zygote注入實例測試182
13.4Android平台感染ELF文件的注入技術實現184
13.4.1ELF文件的格式185
13.4.2感染ELF文件的注入實現原理186
13.4.3感染ELF文件的注入實現過程187
13.4.4感染ELF文件的注入實例分析188
13.4.5感染ELF文件的注入編程實現192
13.4.6感染ELF文件的注入實例測試194
13.5iOS平台越獄環境的注入實現195
13.5.1利用Theos環境創建注入工程195
13.5.2工程文件說明196
13.5.3編譯和安裝200
13.5.4iOS注入原理介紹202
13.6小結203
第14章Hook技術的實現原理205
14.1Hook技術簡介205
14.2Android平台基於異常的Hook實現206
14.2.1基於異常Hook的實現原理206
14.2.2Android平台基於異常Hook的實現流程207
14.2.3基於異常Hook的實現代碼208
14.2.4基於異常Hook的實例測試212
14.3Android平台的Inline Hook實現214
14.3.1Inline Hook的實現原理214
14.3.2Inline Hook的實現流程215
14.3.3Inline Hook的實現代碼216
14.3.4Inline Hook的實例測試220
14.4Android平台下導入表Hook的實現224
14.4.1導入表Hook的實現原理224
14.4.2導入表Hook的實現流程224
14.4.3導入表Hook的實現代碼225
14.4.4Android平台下導入表Hook的實例測試229
14.5小結230
第15章游戲進程的模塊信息獲取231
15.1Android平台進程模塊的信息獲取231
15.1.1Android內存模塊遍歷的原理232
15.1.2Android內存模塊遍歷的實現233
15.1.3實例測試236
15.2iOS平台進程模塊信息的獲取237
15.2.1DyldAPI遍歷模塊的原理237
15.2.2DyldAPI遍歷模塊實現239
15.2.3通過內存遍歷法獲取模塊的原理239
15.2.4通過內存遍歷法獲取模塊信息的實現241
15.2.5實例測試247
15.3小結249
第16章篡改游戲內容的實現原理250
16.1游戲內容讀寫方式分類250
16.2非注入式篡改251
16.2.1篡改APK安裝包251
16.2.2篡改游戲的安裝目錄文件253
16.2.3篡改「/proc/」目錄文件253
16.3注入式篡改258
16.3.1篡改內存數據259
16.3.2篡改邏輯代碼259
16.3.3注入式篡改代碼實例講解260
16.4小結263
第17章反調試技術264
17.1Android平台的常規反調試技術264
17.1.1Android平台的Self—Debugging反調試方案265
17.1.2Android平台的輪詢檢測反調試方案268
17.1.3Android平台Java層的反調試技術270
17.2iOS平台的反調試技術270
17.2.1iOS平台拒絕被附加反調試方案271
17.2.2iOS平台的輪詢檢測反調試方案272
17.3小結273

第6篇 實戰篇 275
第18章游戲逆向分析實戰篇 276
18.1C++游戲分析實戰篇 276
18.1.1C++游戲識別277
18.1.2C++基礎278
18.1.3C++游戲的逆向分析方法279
18.1.4C++游戲的破解思路281
18.1.5C++游戲逆向分析實戰篇 ——《雷霆戰機》無敵和秒殺功能分析281
18.2Unity3D游戲分析實戰篇 289
18.2.1識別Unity3D游戲289
18.2.2Unity3D游戲的破解方法290
18.2.3Unity3D游戲分析涉及的工具291
18.2.4Unity3D游戲分析實戰篇 ——《星河戰神》的無限沖刺功能分析292
18.3Lua游戲分析實戰295
18.3.1識別Lua游戲295
18.3.2破解Lua游戲的方法296
18.3.3常用工具298
18.3.4Lua游戲實戰——破解《疾風獵人》的Lua代碼298
18.3.5Lua游戲分析實戰——破解《游龍英雄》的Lua代碼300
18.4小結302
第19章外掛逆向分析實戰——《雷霆戰機》圈圈外掛分析303
19.1外掛整體分析303
19.2外掛注入功能分析304
19.2.1com.oozhushou—1.apk文件分析304
19.2.2hhloader模塊分析309
19.2.3外掛注入的實現方式311
19.3外掛作弊功能分析312
19.3.1秒殺功能的實現分析312
19.3.2忽略傷害功能的實現分析315
19.3.3護盾延遲功能的實現分析316
19.4小結317
第20章外掛開發實戰——《2048》手游快速通關功能分析及開發318
20.1游戲功能分析318
20.1.1功能可行性分析318
20.1.2游戲引擎的確認320
20.1.3關鍵邏輯的逆向分析320
20.2外掛功能的實現326
20.2.1實現思路326
20.2.2實現原理327
20.2.3實現流程327
20.2.4實現代碼328
20.3測試結果329
20.4小結330
第21章Unity3D引擎逆向分析332
21.1Unity3D引擎概述332
21.2Android平台Unity3D引擎的Mono機制分析333
21.2.1Mono介紹333
21.2.2Mono主框架的執行流程334
21.2.3C#函數調用的執行過程335
21.3iOS平台的Unity3D引擎IL2CPP機制分析338
21.3.1IL2CPP機制生成代碼的對比338
21.3.2逆向分析IL2CPP機制中C#函數的調用方式342
21.3.3Unity3D引擎的IL2CPP機制安全性分析347
21.4Unity3D引擎AB機制分析及《天天來戰》AB包還原349
21.4.1Unity3D的AB打包實現349
21.4.2C#腳本的AB包加載及運行過程351
21.4.3《天天來戰》游戲的AB包處理方式分析及還原352
21.5小結358
 

十多年前我剛進入游戲行業時,國內做網絡游戲的公司屈指可數,那時游戲行業還不被主流社會所接納,被媒體妖魔化更是家常便飯。

游戲的制作者們背負着巨大的輿論壓力還能毅然、決然地去做游戲,正是因為他們都是被游戲本身的魅力所征服的資深玩家。

只有我們自己知道,游戲是一種非常棒的體驗,和看電影、聽音樂一樣是一種有益的娛樂形式。我知道有很多人不是為了尋求一份高薪工作,也不是看好游戲行業所謂的發展前景,只是出於自己對游戲的熱愛,就不顧一切地進入了這個不被世人所理解的行業。
網路書店 類別 折扣 價格
  1. 新書
    $474