|
深入淺出Windows API程序設計:核心編程篇
|
|
|
|
|
|
|
|
|
ISBN |
9787115571595 |
定价 |
RMB149.80 |
售价 |
RM164.80 |
优惠价 |
RM115.36 * (-30%)
|
作者 |
王端明
|
出版社 |
人民郵電出版社
|
出版日期 |
2022-07-01 |
装订 |
平裝. 單色印刷. 598 页. 26. |
库存量 |
購買後立即進貨 此中国简体书,船运需时约30个工作天(不含调货时间)。抱歉!目前无开放空运服务。 库存有限或需要调货,订购时间可能延长。如无法订购则将通知进行退款。 |
|
我要订购 有现货时通知我 |
|
放入下次购买清单 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
本書是WindowsAPI程式設計的進階圖書,內容包括多執行緒編程,內存管理,檔、驅動器和目錄操作,進程,剪貼板,動態連結程式庫,INI設定檔和註冊表操作,Windows異常處理,WinSock網路編程,其他常用WindowsAPI編程知識,PE檔案格式深入剖析。通過閱讀本書,讀者可以對Windows程序設計有加深入的認識,並將其應用到實際場景中。本書適合有一定經驗的WindowsAPI程序開發人員閱讀,也可以作為培訓學校的教材使用。 |
|
|
|
|
|
|
|
|
|
|
|
購買中國簡體書籍請注意:
1. 因裝幀品質及貨運條件未臻完善,中國簡體書可能有出現磨痕、凹痕、折痕等問題,故簡體字館除封面破損、內頁脫落、缺頁等較嚴重的狀態外,其餘所有商品將正常出貨。
|
|
|
|
|
|
|
|
|
目錄
第1章 多線程編程 1
1.1 使用多線程的必要性 2
1.2 多線程編程 5
1.3 線程的終止及其他相關函數 8
1.4 線程間的通信 10
1.4.1 全域變數 11
1.4.2 自訂消息 11
1.4.3 事件物件 15
1.4.4 手動和自動重置事件物件 22
1.5 線程間的同步 25
1.5.1 使用者模式線程同步 28
1.5.2 核心模式線程同步 36
第2章 內存管理 48
2.1 保護模式的分段與分頁管理機制 50
2.2 獲取系統資訊與內存狀態 53
2.3 虛擬位址空間管理函數 56
2.3.1 虛擬位址空間的分配與釋放 57
2.3.2 改變頁面保護屬性 60
2.3.3 查詢頁面資訊 61
2.4 堆管理函數 62
2.4.1 私有堆的創建和釋放 63
2.4.2 在堆中分配和釋放區塊 64
2.4.3 其他堆管理函數 67
2.4.4 在C++中使用堆 68
2.5 其他內存管理函數 70
第3章 檔、驅動器和目錄操作 72
3.1 基本概念 73
3.1.1 與硬碟存儲有關的幾個重要概念 73
3.1.2 分區、邏輯磁碟機、檔案系統和卷 74
3.1.3 檔案名、目錄、路徑和目前的目錄 76
3.2 檔操作 77
3.2.1 創建和打開文件 77
3.2.2 讀寫文件 80
3.2.3 文件指針 83
3.2.4 檔案屬性 85
3.2.5 複製檔 87
3.2.6 移動檔(目錄)、刪除檔 90
3.2.7 無緩衝I/O 93
3.3 邏輯磁碟機和目錄 94
3.3.1 邏輯磁碟機操作 94
3.3.2 目錄操作 96
3.3.3 環境變數 102
3.3.4 SHFileOperation函數 106
3.3.5 監視目錄變化 107
3.3.6 獲取硬碟序號 112
3.3.7 可移動硬碟和U盤監控 118
3.3.8 獲取主機板和BIOS序號 121
3.4 內存映射檔 127
3.4.1 內存映射檔相關函數 128
3.4.2 通過內存映射檔在多個進程間共用資料 134
3.4.3 使用內存映射檔來處理大型檔 136
3.5 APC非同步程序呼叫 137
第4章 進程 143
4.1 創建進程 143
4.2 多個進程間共用內核對象 150
4.3 進程終止 153
4.4 進程間通信 154
4.4.1 WM_COPYDATA 154
4.4.2 管道 159
4.4.3 郵件槽 164
4.5 進程枚舉 165
4.5.1 TlHelp32系列函數 165
4.5.2 EnumProcesses函數 177
4.5.3 進程環境塊PEB 181
4.6 進程調試 185
4.6.1 讀寫其他進程的位址空間 185
4.6.2 獲取一個以暫停模式啟動的進程模組基底位址 189
4.6.3 調試API 193
4.6.4 內存補丁 199
4.6.5 線程環境 204
4.7 窗口間諜 207
4.8 示例:一個程式退出時刪除自身 213
第5章 剪貼板 215
5.1 剪貼板常用函數與消息 215
5.1.1 基本剪貼板函數 215
5.1.2 剪貼板相關的消息 218
5.2 使用剪貼板進行進程間通信 220
5.2.1 Clipboard寫入端 221
5.2.2 Clipboard讀取端 226
5.3 監視剪貼板內容變化 230
5.3.1 相關函數和消息 230
5.3.2 剪貼板監視程式ClipboardMonitor 232
5.3.3 監視剪貼板的新方法 235
第6章 動態連結程式庫 236
6.1 靜態程式庫 236
6.2 動態連結程式庫 237
6.2.1 創建DLL項目 238
6.2.2 在可執行模組中使用DLL 244
6.2.3 入口點函數DllMain 246
6.2.4 延遲載入DLL 248
6.3 線程局部存儲 252
6.3.1 動態TLS 253
6.3.2 靜態TLS 256
6.4 Windows鉤子 258
6.5 在同一個可執行檔的多個實例間共用變數 265
6.6 注入DLL 267
6.6.1 通過Windows鉤子注入DLL 267
6.6.2 通過創建遠端線程注入DLL 276
6.6.3 通過函數轉發器機制注入DLL 283
6.6.4 通過CreateProcess函數寫入ShellCode注入DLL 290
6.6.5 通過調試器寫入ShellCode注入DLL 293
6.6.6 通過APC機制注入DLL 293
6.6.7 通過輸入法機制注入DLL 293
6.7 Shadow API技術 299
6.8 Hook API技術 304
6.8.1 亂數 304
6.8.2 通過遠端線程注入DLL實現API Hook 306
6.8.3 通過全域消息鉤子注入DLL實現進程隱藏 322
第7章 INI設定檔和註冊表操作 328
7.1 INI設定檔 329
7.1.1 鍵值對的創建、 新與刪除 329
7.1.2 獲取鍵值 330
7.1.3 管理小節 331
7.2 註冊表操作 335
7.2.1 子鍵的打開、關閉、創建和刪除 337
7.2.2 鍵值項的創建或設置、查詢和刪除 340
7.2.3 子鍵、鍵值項的枚舉 344
7.2.4 註冊表應用:程式開機自動運行設置檔關聯 347
第8章 Windows異常處理 349
8.1 結構化異常處理 349
8.1.1 try-except語句 349
8.1.2 GetExceptionCode和GetExceptionInformation 354
8.1.3 利用結構化異常處理進行反調試 358
8.1.4 軟體異常 360
8.2 向量化異常處理(全域) 361
8.2.1 向量化異常處理簡介 361
8.2.2 利用向量化異常處理實現基於中斷點的API Hook 362
8.3 頂層未處理異常過濾(全域) 367
8.4 向量化繼續處理(全域) 368
第9章 WinSock網路編程 374
9.1 OSI參考模型和TCP/IP協定簇 374
9.1.1 OSI參考模型 374
9.1.2 TCP/IP協議簇 377
9.1.3 通訊端網路編程介面 379
9.2 IP位址、網路位元組順序和WinSock的位址表示方式 380
9.2.1 IP位址和埠 380
9.2.2 網路位元組順序 381
9.2.3 WinSock的位址表示方式 381
9.3 WinSock網路編程 383
9.3.1 TCP網路編程的一般步驟 384
9.3.2 TCP伺服器程式 390
9.3.3 TCP用戶端程式 395
9.3.4 UDP編程 399
9.3.5 P2P技術 402
9.4 WinSock非同步I/O模型 403
9.4.1 阻塞模式下的多線程多用戶端通訊端編程 404
9.4.2 select模型 414
9.4.3 WSAAsyncSelect模型 419
9.4.4 WSAEventSelect模型 424
9.4.5 Overlapped模型 431
9.4.6 完成埠模型 447
9.4.7 深入介紹I/O完成埠 456
9.4.8 深入介紹線程池 463
9.5 IPHelper API及其他函數 474
9.5.1 獲取本地電腦的網路介面卡資訊 475
9.5.2 其他函數 478
9.5.3 校對時間程式 480
9.6 系統網路連接的啟用和禁用 482
第10章 其他常用Windows API編程知識 489
10.1 快捷方式 489
10.2 程式開機自動啟動 491
10.2.1 將程式的快捷方式寫入開機自動啟動程式目錄 491
10.2.2 創建任務計畫實現開機自動啟動 493
10.2.3 創建系統服務實現開機自動啟動 493
10.3 用戶帳戶控制 508
10.3.1 自動提示用戶提升許可權 510
10.3.2 利用ShellExecuteEx函數以管理員許可權啟動程式 512
10.3.3 繞過UAC提權提示以管理員許可權運行 513
10.4 使用者介面特權隔離 514
10.5 窗口的查找與枚舉 515
10.6 實現工作列通知區域圖示與氣泡通知 517
第11章 PE檔案格式深入剖析 520
11.1 DOS頭(DOS MZ頭和DOSStub塊) 521
11.2 PE頭(IMAGE_NT_HEADER32結構) 522
11.3 節表(節區資訊結構IMAGE_SECTION_HEADER清單) 531
11.4 64位可執行檔格式PE32+ 537
11.5 導入表 538
11.6 匯出表 547
11.7 重定位表 552
11.8 類比PE載入器直接載入可執行檔到進程內存中執行 555
11.9 線程局部存儲表 563
11.10 載入配置資訊表 568
11.11 資源表 569
11.12 延遲載入導入表 577
11.13 校驗和與CRC 577
11.14 64位元程式中如何書寫匯編代碼(以獲取CPUID為例) 580
11.15 Detours-master庫 583
11.15.1 注入DLL的編寫 583
11.15.2 將注入DLL載入到目標進程中 586
11.15.3 編輯可執行檔 591
11.16 通過修改模組導入表中的IAT項來Hook API 592 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
王端明
從2008年開始學習Windows API程式設計,精通匯編語言、C/C++和Windows API程式設計,精通Windows環境下的桌面軟體發展和加密解密。曾在tb網專門為客戶開發32/64位元Windows桌面軟體;對加密解密情有獨鍾,經常逆向分析各類商務軟體,對VMProtect、Safengine等高增強式加密保護軟體的脫殼或記憶體補丁有深入研究和獨到見解;喜歡分析軟體安全性漏洞,曾在金山和360等網站發表過多篇殺毒軟體漏洞分析文章。 |
|
|
|
|
|
|
|
|
|
|
|