注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計深入淺出Windows API程序設計:核心編程篇

深入淺出Windows API程序設計:核心編程篇

深入淺出Windows API程序設計:核心編程篇

定 價:¥149.90

作 者: 王端明 著
出版社: 人民郵電出版社
叢編項:
標 簽: 暫缺

ISBN: 9787115571595 出版時間: 2022-07-01 包裝: 平裝
開本: 16開 頁數(shù): 598 字數(shù):  

內容簡介

  本書是 Windows API 程序設計的進階圖書,內容包括多線程編程,內存管理,文件、驅動器和目錄操作,進程,剪貼板,動態(tài)鏈接庫,INI 配置文件和注冊表操作,Windows 異常處理,WinSock 網(wǎng)絡編程,其他常用Windows API 編程知識,PE 文件格式深入剖析。通過閱讀本書,讀者可以對 Windows 程序設計有更加深入的認識,并將其應用到實際場景中。本書適合有一定經(jīng)驗的 Windows API 程序開發(fā)人員閱讀,也可以作為培訓學校的教材使用。

作者簡介

  作者從2008年開始學習Windows API程序設計,精通匯編語言、C/C++和Windows API程序設計,精通Windows環(huán)境下的桌面軟件開發(fā)和加密解密。曾在tb網(wǎng)專門為客戶定制開發(fā)32/64位Windows桌面軟件;對加密解密情有獨鐘,經(jīng)常逆向分析各類商業(yè)軟件,對VMProtect、Safengine等高強加密保護軟件的脫殼或內存補丁有深入研究和獨到見解;喜歡分析軟件安全漏洞,曾在金山和360等網(wǎng)站發(fā)表過多篇殺毒軟件漏洞分析文章。

圖書目錄

第 1章 多線程編程\t1
1.1 使用多線程的必要性\t2
1.2 多線程編程\t5
1.3 線程的終止及其他相關函數(shù)\t8
1.4 線程間的通信\t10
1.4.1 全局變量\t11
1.4.2 自定義消息\t11
1.4.3 事件對象\t15
1.4.4 手動和自動重置事件對象\t22
1.5 線程間的同步\t25
1.5.1 用戶模式線程同步\t28
1.5.2 內核模式線程同步\t36
第 2章 內存管理\t48
2.1 保護模式的分段與分頁管理機制\t50
2.2 獲取系統(tǒng)信息與內存狀態(tài)\t53
2.3 虛擬地址空間管理函數(shù)\t56
2.3.1 虛擬地址空間的分配與釋放\t57
2.3.2 改變頁面保護屬性\t60
2.3.3 查詢頁面信息\t61
2.4 堆管理函數(shù)\t62
2.4.1 私有堆的創(chuàng)建和釋放\t63
2.4.2 在堆中分配和釋放內存塊\t64
2.4.3 其他堆管理函數(shù)\t67
2.4.4 在C++中使用堆\t68
2.5 其他內存管理函數(shù)\t70
第3章 文件、驅動器和目錄操作\t72
3.1 基本概念\t73
3.1.1 與硬盤存儲有關的幾個重要概念\t73
3.1.2 分區(qū)、邏輯驅動器、文件系統(tǒng)和卷\t74
3.1.3 文件名、目錄、路徑和當前目錄\t76
3.2 文件操作\t77
3.2.1 創(chuàng)建和打開文件\t77
3.2.2 讀寫文件\t80
3.2.3 文件指針\t83
3.2.4 文件屬性\t85
3.2.5 復制文件\t87
3.2.6 移動文件(目錄)、刪除文件\t90
3.2.7 無緩沖I/O\t93
3.3 邏輯驅動器和目錄\t94
3.3.1 邏輯驅動器操作\t94
3.3.2 目錄操作\t96
3.3.3 環(huán)境變量\t102
3.3.4 SHFileOperation函數(shù)\t106
3.3.5 監(jiān)視目錄變化\t107
3.3.6 獲取硬盤序列號\t112
3.3.7 可移動硬盤和U盤監(jiān)控\t118
3.3.8 獲取主板和BIOS序列號\t121
3.4 內存映射文件\t127
3.4.1 內存映射文件相關函數(shù)\t128
3.4.2 通過內存映射文件在多個進程間共享數(shù)據(jù)\t134
3.4.3 使用內存映射文件來處理大型文件\t136
3.5 APC異步過程調用\t137
第4章 進程\t143
4.1 創(chuàng)建進程\t143
4.2 多個進程間共享內核對象\t150
4.3 進程終止\t153
4.4 進程間通信\t154
4.4.1 WM_COPYDATA\t154
4.4.2 管道\t159
4.4.3 郵件槽\t164
4.5 進程枚舉\t165
4.5.1 TlHelp32系列函數(shù)\t165
4.5.2 EnumProcesses函數(shù)\t177
4.5.3 進程環(huán)境塊PEB\t181
4.6 進程調試\t185
4.6.1 讀寫其他進程的地址空間\t185
4.6.2 獲取一個以暫停模式啟動的進程模塊基地址\t189
4.6.3 調試API\t193
4.6.4 內存補丁\t199
4.6.5 線程環(huán)境\t204
4.7 窗口間諜\t207
4.8 示例:一個程序退出時刪除自身\t213
第5章 剪貼板\t215
5.1 剪貼板常用函數(shù)與消息\t215
5.1.1 基本剪貼板函數(shù)\t215
5.1.2 剪貼板相關的消息\t218
5.2 使用剪貼板進行進程間通信\t220
5.2.1 Clipboard寫入端\t221
5.2.2 Clipboard讀取端\t226
5.3 監(jiān)視剪貼板內容變化\t230
5.3.1 相關函數(shù)和消息\t230
5.3.2 剪貼板監(jiān)視程序ClipboardMonitor\t232
5.3.3 監(jiān)視剪貼板的新方法\t235
第6章 動態(tài)鏈接庫\t236
6.1 靜態(tài)鏈接庫\t236
6.2 動態(tài)鏈接庫\t237
6.2.1 創(chuàng)建DLL項目\t238
6.2.2 在可執(zhí)行模塊中使用DLL\t244
6.2.3 入口點函數(shù)DllMain\t246
6.2.4 延遲加載DLL\t248
6.3 線程局部存儲\t252
6.3.1 動態(tài)TLS\t253
6.3.2 靜態(tài)TLS\t256
6.4 Windows鉤子\t258
6.5 在同一個可執(zhí)行文件的多個實例間共享變量\t265
6.6 注入DLL\t267
6.6.1 通過Windows鉤子注入DLL\t267
6.6.2 通過創(chuàng)建遠程線程注入DLL\t276
6.6.3 通過函數(shù)轉發(fā)器機制注入DLL\t283
6.6.4 通過CreateProcess函數(shù)寫入ShellCode注入DLL\t290
6.6.5 通過調試器寫入ShellCode注入DLL\t293
6.6.6 通過APC機制注入DLL\t293
6.6.7 通過輸入法機制注入DLL\t293
6.7 Shadow API技術\t299
6.8 Hook API技術\t304
6.8.1 隨機數(shù)\t304
6.8.2 通過遠程線程注入DLL實現(xiàn)API Hook\t306
6.8.3 通過全局消息鉤子注入DLL實現(xiàn)進程隱藏\t322
第7章 INI配置文件和注冊表操作\t328
7.1 INI配置文件\t329
7.1.1 鍵值對的創(chuàng)建、更新與刪除\t329
7.1.2 獲取鍵值\t330
7.1.3 管理小節(jié)\t331
7.2 注冊表操作\t335
7.2.1 子鍵的打開、關閉、創(chuàng)建和刪除\t337
7.2.2 鍵值項的創(chuàng)建或設置、查詢和刪除\t340
7.2.3 子鍵、鍵值項的枚舉\t344
7.2.4 注冊表應用:程序開機自動運行設置文件關聯(lián)\t347
第8章 Windows異常處理\t349
8.1 結構化異常處理\t349
8.1.1 try-except語句\t349
8.1.2 GetExceptionCode和GetExceptionInformation\t354
8.1.3 利用結構化異常處理進行反調試\t358
8.1.4 軟件異常\t360
8.2 向量化異常處理(全局)\t361
8.2.1 向量化異常處理簡介\t361
8.2.2 利用向量化異常處理實現(xiàn)基于斷點的API Hook\t362
8.3 頂層未處理異常過濾(全局)\t367
8.4 向量化繼續(xù)處理(全局)\t368
第9章 WinSock網(wǎng)絡編程\t374
9.1 OSI參考模型和TCP/IP協(xié)議簇\t374
9.1.1 OSI參考模型\t374
9.1.2 TCP/IP協(xié)議簇\t377
9.1.3 套接字網(wǎng)絡編程接口\t379
9.2 IP地址、網(wǎng)絡字節(jié)順序和WinSock的地址表示方式\t380
9.2.1 IP地址和端口\t380
9.2.2 網(wǎng)絡字節(jié)順序\t381
9.2.3 WinSock的地址表示方式\t381
9.3 WinSock網(wǎng)絡編程\t383
9.3.1 TCP網(wǎng)絡編程的一般步驟\t384
9.3.2 TCP服務器程序\t390
9.3.3 TCP客戶端程序\t395
9.3.4 UDP編程\t399
9.3.5 P2P技術\t402
9.4 WinSock異步I/O模型\t403
9.4.1 阻塞模式下的多線程多客戶端套接字編程\t404
9.4.2 select模型\t414
9.4.3 WSAAsyncSelect模型\t419
9.4.4 WSAEventSelect模型\t424
9.4.5 Overlapped模型\t431
9.4.6 完成端口模型\t447
9.4.7 深入介紹I/O完成端口\t456
9.4.8 深入介紹線程池\t463
9.5 IPHelper API及其他函數(shù)\t474
9.5.1 獲取本地計算機的網(wǎng)絡適配器信息\t475
9.5.2 其他函數(shù)\t478
9.5.3 校對時間程序\t480
9.6 系統(tǒng)網(wǎng)絡連接的啟用和禁用\t482
第 10章 其他常用Windows API編程知識\t489
10.1 快捷方式\t489
10.2 程序開機自動啟動\t491
10.2.1 將程序的快捷方式寫入開機自動啟動程序目錄\t491
10.2.2 創(chuàng)建任務計劃實現(xiàn)開機自動啟動\t493
10.2.3 創(chuàng)建系統(tǒng)服務實現(xiàn)開機自動啟動\t493
10.3 用戶賬戶控制\t508
10.3.1 自動提示用戶提升權限\t510
10.3.2 利用ShellExecuteEx函數(shù)以管理員權限啟動程序\t512
10.3.3 繞過UAC提權提示以管理員權限運行\(zhòng)t513
10.4 用戶界面特權隔離\t514
10.5 窗口的查找與枚舉\t515
10.6 實現(xiàn)任務欄通知區(qū)域圖標與氣泡通知\t517
第 11章 PE文件格式深入剖析\t520
11.1 DOS頭(DOS MZ頭和DOSStub塊)\t521
11.2 PE頭(IMAGE_NT_HEADER32結構)\t522
11.3 節(jié)表(節(jié)區(qū)信息結構IMAGE_SECTION_HEADER列表)\t531
11.4 64位可執(zhí)行文件格式PE32+\t537
11.5 導入表\t538
11.6 導出表\t547
11.7 重定位表\t552
11.8 模擬PE加載器直接加載可執(zhí)行文件到進程內存中執(zhí)行\(zhòng)t555
11.9 線程局部存儲表\t563
11.10 加載配置信息表\t568
11.11 資源表\t569
11.12 延遲加載導入表\t577
11.13 校驗和與CRC\t577
11.14 64位程序中如何書寫匯編代碼(以獲取CPUID為例)\t580
11.15 Detours-master庫\t583
11.15.1 注入DLL的編寫\t583
11.15.2 將注入DLL加載到目標進程中\(zhòng)t586
11.15.3 編輯可執(zhí)行文件\t591
11.16 通過修改模塊導入表中的IAT項來Hook API\t592

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號