《C++黑客編程揭秘與防範(第2版)》是2018年9月人民郵電出版社出版的圖書,作者是冀雲。
基本介紹
- 書名:C++黑客編程揭秘與防範(第2版)
- 作者:冀雲
- ISBN:9787115380579
- 頁數:405頁
- 定價:55元
- 出版社:人民郵電出版社
- 出版時間:2018年9月
- 裝幀:平裝
- 開本:16開
內容簡介,圖書目錄,
內容簡介
市面上關於黑客入門的書籍較為繁多,比如黑客圖解入門、黑客工具詳解、黑客木馬攻防等。但是,對於很多讀者來說,可能並不是單單掌握簡單的工具使用就能滿足的。很多讀者學習黑客知識是為了真正掌握與安全相關的知識。與安全相關的知識涉及面比較廣,包括數據安戀臘提剃全、存儲安全、系統安全、Web安全、網路安全等,本書圍繞Windows系統下套用層的開發來介紹一些關於安全方面的知識。
本書是《C++黑客編程揭秘與防範》的升級版,在前書的基礎上新添加了一些內容,同時也刪除了一些過時獄朵的內容。本書以Win32套用層下安全開發為中心,介紹Windows系統下的安全開發。
本書介紹了作業系統的相關操作,比如進程、執行緒、註冊表等知識。當讀者掌握了關於進程、執行緒、注殼說辨冊表等相關的開發知識後,就可以把一些常規的操作進程、註冊表、檔案等用代碼進行實現,這樣,一些日常的操作可與學習的編程知識相結合。除了操作的知識外,本書還介蘭煮戒紹了關於網路應用程式的開發,了解Winsock的開發後,讀者就會明白在套用層客戶端與伺服器端通信的原理。當然,本書除了介紹Win32開發外,還介紹了PE結囑芝拳構、調試接口、逆向等相關的知識。本書的最後部分介紹了關於惡意程式、專殺工具、掃描器等工具的開發。讀者只要將前面章節的知識掌握後,後面的實例寒拔少拒部分就水到渠成了。
圖書目錄
第 1章 黑客編程入門 1
1.1 初識Windows訊息 1
1.1.1 對訊息的演示測試 1
1.1.2 對MsgTest代碼的解釋 3
1.1.3 如何獲取視窗的類名稱 4
1.2 Windows訊息機制的處理 5
1.2.1 DOS程式與Windows程式執行流程
對比 5
1.2.2 一個簡單的Windows應用程式 7
1.3 模擬滑鼠鍵盤按鍵的操作 13
1.3.1 基於傳送訊息的模擬 13
1.3.2 通過API函式模擬滑鼠鍵盤按鍵的
操作 16
1.4 通過訊息實現進程間的通信 19
1.4.1 通過自定義訊息進行進程通信 19
1.4.2 通過WM_COPYDATA訊息進行進程
通信 21
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 總結 33
第 2章 黑客網路編程 34
2.1 Winsock編程基礎知識 34
2.1.1 網路基礎知識 34
2.1.2 面向連線協定與非面向連線協定所
使用的函式 36
2.1.3 Winsock網路編程知識 36
2.1.4 位元組順序 41
2.2 Winsock編程實例 43
2.2.1 基於TCP的通信 43
2.2.2 基於UDP的通信 45
2.2.3 口令暴力猜解 47
2.3 非阻塞模式開發 54
2.3.1 設定Winsock的工作模式 54
2.3.2 非阻塞模式下的簡單遠程控制的開發 55
2.4 原始套接字的開發遷碑采 64
2.4.1 Ping命令的使用 64
2.4.2 Ping命令的構造 65
2.4.3 Ping命令的實現 67
2.5 總結 68
第3章 黑客Windows API編程 69
3.1 檔案相關API函式 69
3.1.1 檔案相關操作API函式 69
3.1.2 模擬隨身碟病毒 73
3.1.3 免疫AutoRun病毒工具的編寫 75
3.2 註冊表編程 77
3.2.1 註冊表結構簡介 78
3.2.2註冊表操作常用API函式介紹 79
3.2.3 註冊表下啟動項的管理 82
3.3 服務相關的編程 86
3.3.1 如何查看系統服務 86
3.3.2 服務控制管理器的實現 87
3.4 進程與執行緒 93
3.4.1 進程的創建 94
3.4.2 進程的結束 99
3.4.3 進程的枚舉 100
3.4.4 進程的暫停與恢復 104
3.4.5 多執行緒編程基礎 108
3.5 DLL編程 114
3.5.1 編寫一個簡單的DLL程式 114
3.5.2 遠程執行緒的編程 120
3.6 總結 129
第4章 黑客核心驅動開發基礎 130
4.1 驅動版的“Hello World” 130
4.1.1 驅動版“Hello World”代碼編寫 130
4.1.2 驅動程式的編譯 133
4.1.3 驅動檔案的裝載與輸出 133
4.1.4 驅動程式裝載工具實現 134
4.2 核心下的檔案操作 136
4.2.1 核心檔案的讀寫程式 136
4.2.2 核心下檔案讀寫函式介紹 139
4.3 核心下的註冊表操作 145
4.3.1 核心下註冊表的讀寫程式 145
4.3.2 核心下註冊表讀寫函式的介紹 148
4.4 總結 150
第5章 黑客逆向基礎 151
5.1 x86彙編語言介紹 151
5.1.1 暫存器 151
5.1.2 常用彙編指令集 154
5.1.3 定址方式 159
5.2 逆向調試分析工具 160
5.2.1 OllyDbg使用介紹 160
5.2.2 OD破解實例 164
5.3 逆向反彙編分析工具 168
5.4 C語言代碼逆向基礎 177
5.4.1 函式的識別 177
5.4.2 if…else…結構分析 186
5.4.3 switch結構分析 188
5.4.4 循環結構分析 191
5.5 逆向分析實例 195
5.5.1 wcslen函式的逆向 195
5.5.2 掃雷遊戲輔助工具 198
5.6 總結 201
第6章 加密與解密 202
6.1 PE檔案結構 202
6.1.1 PE檔案結構全貌 202
6.1.2 PE結構各部分簡介 203
6.2 詳解PE檔案結構 204
6.2.1 DOS頭部詳解IMAGE_DOS_HEA-
DER 204
6.2.2 PE頭部詳解IMAGE_NT_HEAD-
ERS 206
6.2.3 檔案頭部詳解IMAGE_FILE_HEAD-
ER 207
6.2.4 可選頭詳解IMAGE_OPTIONAL_
HEADER 209
6.2.5 節表詳解IMAGE_SECTION_HEAD-
ER 212
6.3 PE結構的3種地址 214
6.3.1 與PE結構相關的3種地址 214
6.3.2 3種地址的轉換 215
6.4 PE相關編程實例 218
6.4.1 PE查看器 218
6.4.2 簡單的查殼工具 221
6.4.3 地址轉換器 224
6.4.4 添加節區 227
6.5 破解基礎知識及調試API函式的
套用 233
6.5.1 CrackMe程式的編寫 233
6.5.2 用OD破解CrackMe 235
6.5.3 檔案補丁及記憶體補丁 239
6.6 調試API函式的使用 243
6.6.1 常見的3種斷點方法 243
6.6.2 調試API函式及相關結構體介紹 246
6.7 打造一個密碼顯示器 256
6.8 KeyMake工具的使用 260
6.9 總結 262
第7章 黑客高手的HOOK技術 263
7.1 HOOK技術知識前奏 263
7.2 內聯鉤子—Inline Hook 264
7.2.1 Inline Hook的原理 264
7.2.2 Inline Hook的實現 265
7.2.3 Inline Hook實例 269
7.2.4 7位元組的Inline Hook 273
7.2.5 Inline Hook的注意事項 274
7.3 導入地址表鉤子——IAT HOOK 277
7.3.1 導入表簡介 278
7.3.2 導入表的數據結構定義 278
7.3.3 手動分析導入表 280
7.3.4 編程枚舉導入地址表 283
7.3.5 IAT HOOK介紹 284
7.3.6 IAT HOOK實例 284
7.4 Windows鉤子函式 287
7.4.1鉤子原理 288
7.4.2 鉤子函式 288
7.4.3 鉤子實例 290
7.5 總結 294
第8章 黑客編程實例剖析 295
8.1 惡意程式編程技術 295
8.1.1 惡意程式的自啟動技術 295
8.1.2 木馬的配置生成與反彈連線埠技術 303
8.1.3 病毒的感染技術 309
8.1.4 病毒的自刪除技術 313
8.1.5 隱藏DLL檔案 316
8.1.6 連線埠復用技術 323
8.1.7 遠程cmd通信技術 326
8.2 黑客工具編程技術 331
8.2.1 連線埠掃描技術 331
8.2.2 嗅探技術的實現 341
8.3 反病毒編程技術 344
8.3.1 病毒專殺工具的開發 344
8.3.2 行為監控HIPS 366
8.3.3 隨身碟防禦軟體 371
8.3.4 監控工具 376
8.4 實現引導區解析工具 379
8.4.1 通過WinHex手動解析引導區 379
8.4.2 通過程式解析MBR 383
8.4.3 自定義MBR的各種結構體 383
8.4.4 硬碟設備的符號連結 384
8.4.5 解析MBR的程式實現 385
8.5 加殼與脫殼 387
8.5.1 手動加殼 387
8.5.2 編寫簡單的加殼工具 389
8.6 驅動下的進程遍歷 390
8.6.1 配置VMware和WinDbg進行驅動
調試 390
8.6.2 EPROCESS和手動遍歷進程 392
8.6.3 編程實現進程遍歷 395
8.7 HOOK SSDT 396
8.7.1 SSDT 396
8.7.2 HOOK SSDT 398
8.7.3 Inline HOOK SSDT 400
8.8 總結 403
附錄 反病毒公司部分面試題 404
參考文獻 406
2.2.1 基於TCP的通信 43
2.2.2 基於UDP的通信 45
2.2.3 口令暴力猜解 47
2.3 非阻塞模式開發 54
2.3.1 設定Winsock的工作模式 54
2.3.2 非阻塞模式下的簡單遠程控制的開發 55
2.4 原始套接字的開發 64
2.4.1 Ping命令的使用 64
2.4.2 Ping命令的構造 65
2.4.3 Ping命令的實現 67
2.5 總結 68
第3章 黑客Windows API編程 69
3.1 檔案相關API函式 69
3.1.1 檔案相關操作API函式 69
3.1.2 模擬隨身碟病毒 73
3.1.3 免疫AutoRun病毒工具的編寫 75
3.2 註冊表編程 77
3.2.1 註冊表結構簡介 78
3.2.2註冊表操作常用API函式介紹 79
3.2.3 註冊表下啟動項的管理 82
3.3 服務相關的編程 86
3.3.1 如何查看系統服務 86
3.3.2 服務控制管理器的實現 87
3.4 進程與執行緒 93
3.4.1 進程的創建 94
3.4.2 進程的結束 99
3.4.3 進程的枚舉 100
3.4.4 進程的暫停與恢復 104
3.4.5 多執行緒編程基礎 108
3.5 DLL編程 114
3.5.1 編寫一個簡單的DLL程式 114
3.5.2 遠程執行緒的編程 120
3.6 總結 129
第4章 黑客核心驅動開發基礎 130
4.1 驅動版的“Hello World” 130
4.1.1 驅動版“Hello World”代碼編寫 130
4.1.2 驅動程式的編譯 133
4.1.3 驅動檔案的裝載與輸出 133
4.1.4 驅動程式裝載工具實現 134
4.2 核心下的檔案操作 136
4.2.1 核心檔案的讀寫程式 136
4.2.2 核心下檔案讀寫函式介紹 139
4.3 核心下的註冊表操作 145
4.3.1 核心下註冊表的讀寫程式 145
4.3.2 核心下註冊表讀寫函式的介紹 148
4.4 總結 150
第5章 黑客逆向基礎 151
5.1 x86彙編語言介紹 151
5.1.1 暫存器 151
5.1.2 常用彙編指令集 154
5.1.3 定址方式 159
5.2 逆向調試分析工具 160
5.2.1 OllyDbg使用介紹 160
5.2.2 OD破解實例 164
5.3 逆向反彙編分析工具 168
5.4 C語言代碼逆向基礎 177
5.4.1 函式的識別 177
5.4.2 if…else…結構分析 186
5.4.3 switch結構分析 188
5.4.4 循環結構分析 191
5.5 逆向分析實例 195
5.5.1 wcslen函式的逆向 195
5.5.2 掃雷遊戲輔助工具 198
5.6 總結 201
第6章 加密與解密 202
6.1 PE檔案結構 202
6.1.1 PE檔案結構全貌 202
6.1.2 PE結構各部分簡介 203
6.2 詳解PE檔案結構 204
6.2.1 DOS頭部詳解IMAGE_DOS_HEA-
DER 204
6.2.2 PE頭部詳解IMAGE_NT_HEAD-
ERS 206
6.2.3 檔案頭部詳解IMAGE_FILE_HEAD-
ER 207
6.2.4 可選頭詳解IMAGE_OPTIONAL_
HEADER 209
6.2.5 節表詳解IMAGE_SECTION_HEAD-
ER 212
6.3 PE結構的3種地址 214
6.3.1 與PE結構相關的3種地址 214
6.3.2 3種地址的轉換 215
6.4 PE相關編程實例 218
6.4.1 PE查看器 218
6.4.2 簡單的查殼工具 221
6.4.3 地址轉換器 224
6.4.4 添加節區 227
6.5 破解基礎知識及調試API函式的
套用 233
6.5.1 CrackMe程式的編寫 233
6.5.2 用OD破解CrackMe 235
6.5.3 檔案補丁及記憶體補丁 239
6.6 調試API函式的使用 243
6.6.1 常見的3種斷點方法 243
6.6.2 調試API函式及相關結構體介紹 246
6.7 打造一個密碼顯示器 256
6.8 KeyMake工具的使用 260
6.9 總結 262
第7章 黑客高手的HOOK技術 263
7.1 HOOK技術知識前奏 263
7.2 內聯鉤子—Inline Hook 264
7.2.1 Inline Hook的原理 264
7.2.2 Inline Hook的實現 265
7.2.3 Inline Hook實例 269
7.2.4 7位元組的Inline Hook 273
7.2.5 Inline Hook的注意事項 274
7.3 導入地址表鉤子——IAT HOOK 277
7.3.1 導入表簡介 278
7.3.2 導入表的數據結構定義 278
7.3.3 手動分析導入表 280
7.3.4 編程枚舉導入地址表 283
7.3.5 IAT HOOK介紹 284
7.3.6 IAT HOOK實例 284
7.4 Windows鉤子函式 287
7.4.1鉤子原理 288
7.4.2 鉤子函式 288
7.4.3 鉤子實例 290
7.5 總結 294
第8章 黑客編程實例剖析 295
8.1 惡意程式編程技術 295
8.1.1 惡意程式的自啟動技術 295
8.1.2 木馬的配置生成與反彈連線埠技術 303
8.1.3 病毒的感染技術 309
8.1.4 病毒的自刪除技術 313
8.1.5 隱藏DLL檔案 316
8.1.6 連線埠復用技術 323
8.1.7 遠程cmd通信技術 326
8.2 黑客工具編程技術 331
8.2.1 連線埠掃描技術 331
8.2.2 嗅探技術的實現 341
8.3 反病毒編程技術 344
8.3.1 病毒專殺工具的開發 344
8.3.2 行為監控HIPS 366
8.3.3 隨身碟防禦軟體 371
8.3.4 監控工具 376
8.4 實現引導區解析工具 379
8.4.1 通過WinHex手動解析引導區 379
8.4.2 通過程式解析MBR 383
8.4.3 自定義MBR的各種結構體 383
8.4.4 硬碟設備的符號連結 384
8.4.5 解析MBR的程式實現 385
8.5 加殼與脫殼 387
8.5.1 手動加殼 387
8.5.2 編寫簡單的加殼工具 389
8.6 驅動下的進程遍歷 390
8.6.1 配置VMware和WinDbg進行驅動
調試 390
8.6.2 EPROCESS和手動遍歷進程 392
8.6.3 編程實現進程遍歷 395
8.7 HOOK SSDT 396
8.7.1 SSDT 396
8.7.2 HOOK SSDT 398
8.7.3 Inline HOOK SSDT 400
8.8 總結 403
附錄 反病毒公司部分面試題 404
參考文獻 406