注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)深入淺出Windows API程序設(shè)計(jì):核心編程篇

深入淺出Windows API程序設(shè)計(jì):核心編程篇

深入淺出Windows API程序設(shè)計(jì):核心編程篇

定 價(jià):¥149.90

作 者: 王端明 著
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787115571595 出版時(shí)間: 2022-07-01 包裝: 平裝
開本: 16開 頁(yè)數(shù): 598 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

  作者從2008年開始學(xué)習(xí)Windows API程序設(shè)計(jì),精通匯編語(yǔ)言、C/C++和Windows API程序設(shè)計(jì),精通Windows環(huán)境下的桌面軟件開發(fā)和加密解密。曾在tb網(wǎng)專門為客戶定制開發(fā)32/64位Windows桌面軟件;對(duì)加密解密情有獨(dú)鐘,經(jīng)常逆向分析各類商業(yè)軟件,對(duì)VMProtect、Safengine等高強(qiáng)加密保護(hù)軟件的脫殼或內(nèi)存補(bǔ)丁有深入研究和獨(dú)到見解;喜歡分析軟件安全漏洞,曾在金山和360等網(wǎng)站發(fā)表過(guò)多篇?dú)⒍拒浖┒捶治鑫恼隆?/div>

圖書目錄

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