定 價(jià):119 元
叢書(shū)名:華章程序員書(shū)庫(kù)
當(dāng)前圖書(shū)已被 26 所學(xué)校薦購(gòu)過(guò)!
查看明細(xì)
- 作者:(美)帕維爾·約西福維奇(Pavel Yosifovich)著;李亮譯
- 出版時(shí)間:2021/6/1
- ISBN:9787111684756
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類(lèi):TP316.7
- 頁(yè)碼:310頁(yè)
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16K
在Windows系統(tǒng)中沒(méi)有什么比內(nèi)核更強(qiáng)大了,但是如何編寫(xiě)內(nèi)核驅(qū)動(dòng)程序來(lái)利用這種強(qiáng)大能力呢?本書(shū)描述了如何編寫(xiě)Windows系統(tǒng)的軟件內(nèi)核驅(qū)動(dòng)程序,這類(lèi)驅(qū)動(dòng)程序不涉及硬件,只依賴(lài)于系統(tǒng)本身:進(jìn)程、線程、模塊、注冊(cè)表等。內(nèi)核代碼可用于監(jiān)視重要事件,在需要時(shí)阻止某些事件的發(fā)生,讀者可以通過(guò)編寫(xiě)各種過(guò)濾器來(lái)攔截驅(qū)動(dòng)程序中的調(diào)用。本書(shū)的內(nèi)容從基本概念到實(shí)際應(yīng)用,較為深入地解析了Windows內(nèi)核技術(shù),適合具有一定Windows應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)的中OO讀者閱讀。
帕維爾·約西福維奇(Pavel Yosifovich)是OO的軟件開(kāi)發(fā)者、培訓(xùn)師、作者和演講者。他熱愛(ài)關(guān)于軟件的一切,并且依然懷念他從前的Commodore 64電腦?梢酝ㄟ^(guò)zodiacon@live.com聯(lián)系他。
譯者序
OO章 Windows內(nèi)部概覽
1.1 進(jìn)程
1.2 虛擬內(nèi)存
1.2.1 頁(yè)狀態(tài)
1.2.2 系統(tǒng)內(nèi)存
1.3 線程
1.4 系統(tǒng)服務(wù)
1.5 系統(tǒng)總體架構(gòu)
1.6 句柄和對(duì)象
1.6.1 對(duì)象名稱(chēng)
1.6.2 訪問(wèn)已經(jīng)存在的對(duì)象
第2章 開(kāi)始內(nèi)核開(kāi)發(fā)
2.1 安裝工具
2.2 創(chuàng)建一個(gè)驅(qū)動(dòng)程序項(xiàng)目
2.3 DriverEntry和Unload例程
2.4 部署驅(qū)動(dòng)程序
2.5 簡(jiǎn)單的跟蹤
2.6 練習(xí)
2.7 總結(jié)
第3章 內(nèi)核編程基礎(chǔ)
3.1 內(nèi)核編程的一般準(zhǔn)則
3.1.1 未處理的異常
3.1.2 終止
3.1.3 函數(shù)返回值
3.1.4 IRQL
3.1.5 C++用法
3.1.6 測(cè)試和調(diào)試
3.2 調(diào)試構(gòu)建與發(fā)布構(gòu)建
3.3 內(nèi)核API
3.4 函數(shù)和錯(cuò)誤代碼
3.5 字符串
3.6 動(dòng)態(tài)內(nèi)存分配
3.7 鏈表
3.8 驅(qū)動(dòng)程序?qū)ο?nbsp;
3.9 設(shè)備對(duì)象
3.10 總結(jié)
第4章 驅(qū)動(dòng)程序:從頭到尾
4.1 簡(jiǎn)介
4.2 驅(qū)動(dòng)程序初始化
4.2.1 將信息傳遞給驅(qū)動(dòng)程序
4.2.2 客戶程序/驅(qū)動(dòng)程序之間的通信協(xié)議
4.2.3 創(chuàng)建設(shè)備對(duì)象
4.3 客戶程序代碼
4.4 Create和Close分發(fā)例程
4.5 DeviceIoControl分發(fā)例程
4.6 安裝與測(cè)試
4.7 總結(jié)
第5章 調(diào)試
5.1 Debugging Tools for Windows
5.2 WinDbg簡(jiǎn)介
5.3 內(nèi)核調(diào)試
5.3.1 本地內(nèi)核調(diào)試
5.3.2 本地內(nèi)核調(diào)試教程
5.4 完整內(nèi)核調(diào)試
5.4.1 配置目標(biāo)機(jī)
5.4.2 配置宿主機(jī)
5.5 內(nèi)核驅(qū)動(dòng)程序調(diào)試教程
5.6 總結(jié)
第6章 內(nèi)核機(jī)制
6.1 中斷請(qǐng)求級(jí)別
6.1.1 提升和降低IRQL
6.1.2 線程優(yōu)先級(jí)與IRQL
6.2 延遲過(guò)程調(diào)用
6.3 異步過(guò)程調(diào)用
6.4 結(jié)構(gòu)化異常處理
6.4.1 使用__try/__except
6.4.2 使用__try/__finally
6.4.3 使用C++ RAII代替__try/__finally
6.5 系統(tǒng)崩潰
6.5.1 崩潰轉(zhuǎn)儲(chǔ)信息
6.5.2 分析轉(zhuǎn)儲(chǔ)文件
6.5.3 系統(tǒng)掛起
6.6 線程同步
6.6.1 互鎖操作
6.6.2 分發(fā)器對(duì)象
6.6.3 互斥量
6.6.4 快速互斥量
6.6.5 信號(hào)量
6.6.6 事件
6.6.7 執(zhí)行體資源
6.7 高IRQL同步
6.8 工作項(xiàng)目
6.9 總結(jié)
第7章 I/O請(qǐng)求包
7.1 IRP簡(jiǎn)介
7.2 設(shè)備節(jié)點(diǎn)
7.3 IRP和I/O棧位置
7.4 分發(fā)例程
7.5 訪問(wèn)用戶緩沖區(qū)
7.5.1 緩沖I/O
7.5.2 直接I/O
7.5.3 IRP_MJ_DEVICE_CONTROL的用戶緩沖區(qū)
7.6 匯總:Zero驅(qū)動(dòng)程序
7.6.1 使用預(yù)編譯頭
7.6.2 DriverEntry例程
7.6.3 讀分發(fā)例程
7.6.4 寫(xiě)分發(fā)例程
7.6.5 測(cè)試應(yīng)用
7.7 總結(jié)
第8章 進(jìn)程和線程通知
8.1 進(jìn)程通知
8.2 實(shí)現(xiàn)進(jìn)程通知
8.2.1 DriverEntry例程
8.2.2 處理進(jìn)程退出通知
8.2.3 處理進(jìn)程創(chuàng)建通知
8.3 將數(shù)據(jù)提供給用戶模式
8.4 線程通知
8.5 映像載入通知
8.6 練習(xí)
8.7 總結(jié)
第9章 對(duì)象和注冊(cè)表通知
9.1 對(duì)象通知
9.1.1 操作前回調(diào)
9.1.2 操作后回調(diào)
9.2 進(jìn)程保護(hù)者驅(qū)動(dòng)程序
9.2.1 對(duì)象通知注冊(cè)
9.2.2 管理受保護(hù)的進(jìn)程
9.2.3 操作前回調(diào)
9.2.4 客戶應(yīng)用
9.3 注冊(cè)表通知
9.3.1 處理操作前通知
9.3.2 處理操作后回調(diào)
9.3.3 性能考慮
9.4 實(shí)現(xiàn)注冊(cè)表通知
9.4.1 處理注冊(cè)表回調(diào)
9.4.2 修改后的客戶程序代碼
9.5 練習(xí)
9.6 總結(jié)
OO0章 文件系統(tǒng)小過(guò)濾驅(qū)動(dòng)
10.1 簡(jiǎn)介
10.2 裝入與卸載
10.3 初始化
10.3.1 操作回調(diào)注冊(cè)
10.3.2 高度
10.4 安裝
10.4.1 INF文件
10.4.2 安裝驅(qū)動(dòng)程序
10.5 處理I/O操作
10.5.1 操作前回調(diào)
10.5.2 操作后回調(diào)
10.6 刪除保護(hù)驅(qū)動(dòng)程序
10.6.1 處理創(chuàng)建前回調(diào)
10.6.2 處理設(shè)置信息前回調(diào)
10.6.3 重構(gòu)
10.6.4 將驅(qū)動(dòng)程序通用化
10.6.5 測(cè)試修改后的驅(qū)動(dòng)程序
10.7 文件名
10.7.1 文件名的各個(gè)部分
10.7.2 RAII FLT_FILE_NAME_INFORMATION包裝器
10.8 另一個(gè)刪除保護(hù)驅(qū)動(dòng)程序
10.8.1 處理創(chuàng)建前回調(diào)和設(shè)置信息前回調(diào)
10.8.2 測(cè)試驅(qū)動(dòng)程序
10.9 上下文
10.10 初始化I/O請(qǐng)求
10.11 文件備份驅(qū)動(dòng)程序
10.11.1 創(chuàng)建后回調(diào)
10.11.2 寫(xiě)前回調(diào)
10.11.3 清理后回調(diào)
10.11.4 測(cè)試驅(qū)動(dòng)程序
10.11.5 恢復(fù)備份
10.12 用戶模式通信
10.12.1 創(chuàng)建通信端口
10.12.2 用戶模式連接
10.12.3 發(fā)送和接收消息
10.12.4 增強(qiáng)文件備份驅(qū)動(dòng)程序
10.12.5 用戶模式客戶程序
10.13 調(diào)試
10.14 練習(xí)
10.15 總結(jié)
OO1章 其他主題
11.1 驅(qū)動(dòng)程序簽名
11.2 驅(qū)動(dòng)程序驗(yàn)證器
11.3 使用原生API
11.4 過(guò)濾驅(qū)動(dòng)程序
11.4.1 過(guò)濾驅(qū)動(dòng)程序的實(shí)現(xiàn)
11.4.2 附加過(guò)濾器
11.4.3 在任意時(shí)刻附加過(guò)濾器
11.4.4 過(guò)濾器的清理
11.4.5 基于硬件的過(guò)濾驅(qū)動(dòng)程序的更多內(nèi)容
11.5 設(shè)備監(jiān)視器
11.5.1 增加過(guò)濾設(shè)備
11.5.2 移除過(guò)濾設(shè)備
11.5.3 初始化和卸載
11.5.4 處理請(qǐng)求
11.5.5 測(cè)試驅(qū)動(dòng)程序
11.5.6 請(qǐng)求的結(jié)果
11.6 驅(qū)動(dòng)程序掛鉤
11.7 內(nèi)核庫(kù)
11.8 總結(jié)