目錄
第 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 模擬U盤病毒 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 U盤防禦軟件 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
· · · · · · (
收起)