內容簡介
市面上關於黑客入門的書籍較多,比如黑客圖解入門類、黑客工具詳解類、黑客木馬攻防類等,但是,對於很多讀者來說,可能並不是掌握簡單的工具即滿足。很多讀者學習黑客知識是為了真正掌握與安全相關的知識。與安全相關的知識涉及面比較廣,包括數據安全、存儲安全、系統安全、Web安全、網路安全等,本書圍繞Windows系統下套用層的開發來介紹一些安全方面的知識。本書是在第 2 版的基礎上新添加了一些內容,同時也刪除了一些過時的內容。本書以Win32套用層下的安全開發為中心,介紹Windows系統下的安全開發。本書介紹了作業系統的相關操作,比如進程、執行緒、註冊表等知識。當讀者掌握了關於進程、執行緒、註冊表等的開發知識後,可以用代碼實現一些常規的操作,如對進程、註冊表、檔案等進行操作,這樣,一些日常的操作可與學習的編程知識相結合。除了操作外,本書還介紹了網路應用程式的開發技術,了解Winsock的開發後,讀者會明白在套用層客戶端與伺服器端通信的原理。當然,除了介紹Win32開發外,本書還介紹了PE結構、調試接口、逆向等知識。本書剖析了惡意程式、專殺工具、掃描器等的開發技術,以幫助讀者更好地了解安全知識,為開發安全的軟體打下基礎。
圖書目錄
第 1章 黑客編程入門 1
1.1 初識Windows訊息 1
1.1.1 對訊息的演示測試 1
1.1.2 對“訊息測試”程式代碼的解釋 3
1.1.3 如何獲取視窗的類名稱 4
1.2 Windows訊息機制的處理 5
1.2.1 DOS程式與Windows程式執行流程對比 5
1.2.2 一個簡單的Windows應用程式 7
1.3 模擬滑鼠鍵盤按鍵的操作 12
1.3.1 基於傳送訊息的模擬 13
1.3.2 通過API函式模擬滑鼠鍵盤按鍵的操作 16
1.4 通過訊息實現進程間的通信 18
1.4.1 通過自定義訊息進行進程通信 19
1.4.2 通過WM_COPYDATA訊息進行進程
通信 20
1.5 VC相關開發輔助工具 24
1.5.1 Error Lookup工具的使用 24
1.5.2 Windows Error Lookup Tool工具的使用 25
1.5.3 VC6調試工具介紹 26
1.6 總結 32
第 2章 黑客網路編程 34
2.1 Winsock編程基礎知識 34
2.1.1 網路基礎知識 34
2.1.2 面向連線協定與非面向連線協定所使用的
函式 36
2.1.3 Winsock網路編程知識 37
2.1.4 位元組順序 42
2.2 Winsock編程實例 44
2.2.1 基於TCP的通信 44
2.2.2 基於UDP的通信 46
2.2.3 密碼暴力猜解剖析 48
2.3 非阻塞模式開發 55
2.3.1 設定Winsock的工作模式 55
2.3.2 非阻塞模式下簡單遠程控制的開發 56
2.4 原始套接字的開發 65
2.4.1 Ping命令的使用 65
2.4.2 Ping命令的構造 66
2.4.3 Ping命令的實現 67
2.5 總結 69
第3章 黑客Windows API編程 70
3.1 API函式、病毒和對病毒的免疫 70
3.1.1 檔案相關操作API函式 70
3.1.2 模擬隨身碟病毒 74
3.1.3 免疫AutoRun病毒工具的編寫 76
3.2 註冊表編程 78
3.2.1 註冊表結構簡介 79
3.2.2 註冊表操作常用API函式介紹 80
3.2.3 註冊表下啟動項的管理 84
3.3 服務相關的編程 87
3.3.1 如何查看系統服務 88
3.3.2 服務控制管理器的實現 89
3.4 進程與執行緒 94
3.4.1 進程的創建 95
3.4.2 進程的結束 100
3.4.3 進程的枚舉 101
3.4.4 進程的暫停與恢復 106
3.4.5 多執行緒編程基礎 110
3.5 DLL編程 116
3.5.1 編寫一個簡單的DLL程式 116
3.5.2 遠程執行緒的編程 122
3.5.3 異步過程調用 132
3.6 總結 135
第4章 黑客核心驅動開發基礎 136
4.1 驅動版的“Hello World” 136
4.1.1 驅動版“Hello World”代碼編寫 136
4.1.2 驅動程式的編譯 139
4.1.3 驅動檔案的裝載與輸出 140
4.1.4 驅動程式裝載工具實現 140
4.2 核心下的檔案操作 142
4.2.1 核心檔案的讀寫程式 142
4.2.2 核心下檔案讀寫函式介紹 145
4.3 核心下的註冊表操作 151
4.3.1 核心下註冊表的讀寫程式 151
4.3.2 核心下註冊表讀寫函式的介紹 154
4.4 總結 156
第5章 黑客逆向基礎 157
5.1 x86彙編語言介紹 157
5.1.1 暫存器 157
5.1.2 常用彙編指令集 160
5.1.3 定址方式 165
5.2 逆向調試分析工具 166
5.2.1 OllyDbg使用介紹 166
5.2.2 OD破解實例 170
5.3 逆向反彙編分析工具 174
5.4 C語言代碼逆向基礎 182
5.4.1 函式的識別 183
5.4.2 if…else…結構分析 192
5.4.3 switch結構分析 194
5.4.4 循環結構分析 196
5.5 逆向分析實例 201
5.5.1 wcslen函式的逆向 201
5.5.2 掃雷遊戲輔助工具 203
5.6 總結 208
第6章 加密與解密 209
6.1 PE檔案結構 209
6.1.1 PE檔案結構全貌 209
6.1.2 PE結構各部分簡介 210
6.2 詳解PE檔案結構 211
6.2.1 DOS頭部IMAGE_DOS_HEADER
詳解 211
6.2.2 PE頭部IMAGE_NT_HEADERS詳解 213
6.2.3 檔案頭部IMAGE_FILE_HEADER
詳解 214
6.2.4 可選頭部IMAGE_OPTIONAL_
HEADER詳解 215
6.2.5 IMAGE_SECTION_HEADER詳解 219
6.3 PE結構的地址與地址的轉換 220
6.3.1 與PE結構相關的3種地址 220
6.3.2 3種地址的轉換 221
6.4 PE相關編程實例 224
6.4.1 PE查看器 224
6.4.2 簡單的查殼工具 228
6.4.3 地址轉換器 231
6.4.4 添加節區 233
6.5 破解基礎知識及調試API函式的
套用 239
6.5.1 CrackMe程式的編寫 239
6.5.2 用OD破解CrackMe 241
6.5.3 檔案補丁及記憶體補丁 245
6.6 調試API函式的使用 248
6.6.1 常見的3種產生斷點的方法 249
6.6.2 調試API函式及相關結構體介紹 252
6.7 打造一個密碼顯示器 262
6.8 KeyMake工具的使用 265
6.9 總結 267
第7章 黑客高手的HOOK技術 269
7.1 HOOK技術概述 269
7.2 內聯鉤子——Inline Hook 270
7.2.1 Inline Hook的原理 270
7.2.2 Inline Hook的實現 271
7.2.3 Inline Hook實例 275
7.2.4 7位元組的Inline Hook 279
7.2.5 Inline Hook的注意事項 280
7.3 導入地址表鉤子——IAT HOOK 283
7.3.1 導入表簡介 284
7.3.2 導入表的數據結構定義 284
7.3.3 手動分析導入表 286
7.3.4 編程枚舉導入地址表 289
7.3.5 IAT HOOK介紹 290
7.3.6 IAT HOOK實例 290
7.4 Windows鉤子函式 293
7.4.1 鉤子原理 294
7.4.2 鉤子函式 294
7.4.3 鉤子實例 296
7.5 總結 300
第8章 黑客編程實例剖析 301
8.1 惡意程式編程技術剖析 301
8.1.1 惡意程式的自啟動技術 301
8.1.2 木馬的配置生成與反彈連線埠技術 309
8.1.3 病毒的感染技術 315
8.1.4 病毒的自刪除技術 319
8.1.5 隱藏DLL檔案 322
8.1.6 連線埠復用技術 329
8.1.7 遠程cmd通信技術 333
8.2 黑客工具編程技術剖析 338
8.2.1 連線埠掃描技術 338
8.2.2 嗅探技術的實現 347
8.3 反病毒編程技術 351
8.3.1 病毒專殺工具的開發 351
8.3.2 行為監控HIPS 372
8.3.3 隨身碟防禦軟體 378
8.3.4 監控工具 382
8.4 實現引導區解析工具 385
8.4.1 通過WinHex手動解析引導區 385
8.4.2 通過程式解析MBR 388
8.4.3 自定義MBR的各種結構體 389
8.4.4 硬碟設備的符號連結 390
8.4.5 解析MBR的程式實現 391
8.5 加殼與脫殼 392
8.5.1 手動加殼 392
8.5.2 編寫簡單的加殼工具 394
8.6 驅動下的進程遍歷 395
8.6.1 配置VMware和WinDbg進行驅動調試 396
8.6.2 EPROCESS和手動遍歷進程 397
8.6.3 編程實現進程遍歷 401
8.7 HOOK SSDT 402
8.7.1 SSDT 402
8.7.2 HOOK SSDT 404
8.7.3 Inline HOOK SSDT 406
8.8 總結 408
第9章 黑客編程實例 409
9.1 網路安全簡介 409
9.1.1 網路與網路安全的簡單介紹 409
9.1.2 網路協定基礎介紹 410
9.2 網路中的破解 418
9.2.1 電子信箱的破解 418
9.2.2 FTP伺服器的破解 424
9.3 Web安全 427
9.4 總結 456
第 10章 安卓軟體安全初探 457
10.1 安卓執行檔格式解析 457
10.1.1 準備一個Dex檔案 457
10.1.2 DEX檔案格式詳解 459
10.2 實現Dex檔案格式解析工具 483
10.2.1 解析工具所需的結構體 483
10.2.2 解析Dex檔案 483
10.3 總結 493
附錄 反病毒公司部分面試題 494
參考文獻 496