注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)其他編程語(yǔ)言/工具Windows內(nèi)核調(diào)試技術(shù)

Windows內(nèi)核調(diào)試技術(shù)

Windows內(nèi)核調(diào)試技術(shù)

定 價(jià):¥79.00

作 者: 譚文
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787121500237 出版時(shí)間: 2025-04-01 包裝: 平裝-膠訂
開(kāi)本: 128開(kāi) 頁(yè)數(shù): 字?jǐn)?shù):  

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

  本書(shū)以為安全系統(tǒng)所開(kāi)發(fā)的Windows驅(qū)動(dòng)程序?yàn)槔?,由淺入深地介紹了Windows內(nèi)核調(diào)試所需要的環(huán)境、工具、相關(guān)知識(shí)及技巧。書(shū)中列舉了Windows內(nèi)核編程開(kāi)發(fā)者容易犯的各類(lèi)錯(cuò)誤,以及由此導(dǎo)致的不同缺陷的調(diào)試和解決方法。對(duì)遠(yuǎn)程調(diào)試、面向海量用戶(hù)的內(nèi)核驅(qū)動(dòng)程序的質(zhì)量控制、程序沖突、無(wú)文檔編程等內(nèi)核開(kāi)發(fā)中常遇到的問(wèn)題,也提供了對(duì)應(yīng)的解決方案。本書(shū)適合具有C語(yǔ)言基礎(chǔ)的計(jì)算機(jī)相關(guān)專(zhuān)業(yè)大中專(zhuān)院校學(xué)生、軟件行業(yè)Windows相關(guān)的底層開(kāi)發(fā)者、計(jì)算機(jī)安全行業(yè)的開(kāi)發(fā)和研究人員閱讀。

作者簡(jiǎn)介

  譚文,某著名互聯(lián)網(wǎng)企業(yè)專(zhuān)家工程師,從事底層及安全相關(guān)開(kāi)發(fā)工作二十余年。參與開(kāi)發(fā)過(guò)DLP、防火墻、模擬器、反病毒軟件、業(yè)務(wù)安全等多種著名產(chǎn)品。其編寫(xiě)的代碼在日活上億的用戶(hù)機(jī)器上穩(wěn)定運(yùn)行,守護(hù)著用戶(hù)與系統(tǒng)的安全。著有《天書(shū)夜讀:從匯編語(yǔ)言到Windows內(nèi)核編程》《寒江獨(dú)釣:Windows內(nèi)核安全編程》《Windows內(nèi)核編程》多部相關(guān)技術(shù)專(zhuān)著。業(yè)余愛(ài)好劍道,為上海華劍館弟子。

圖書(shū)目錄

第1章 內(nèi)核開(kāi)發(fā)與調(diào)試的準(zhǔn)備 001
1.1 環(huán)境部署和工具安裝 001
1.1.1 選擇調(diào)試工具 001
1.1.2 安裝Visual Studio和WDK 003
1.1.3 安裝被調(diào)試的虛擬機(jī) 004
1.2 WinDbg的用法和存在的各種問(wèn)題 007
1.2.1 做好快照并快速連接WinDbg 007
1.2.2 符號(hào)表和卡頓 008
1.2.3 源代碼問(wèn)題 010
1.3 內(nèi)核調(diào)試的實(shí)際操作示例 011
1.3.1 WinDbg中有用的主要窗口 011
1.3.2 常用的調(diào)試命令 013
1.3.3 調(diào)用棧與當(dāng)前進(jìn)程 014
1.4 編寫(xiě)第一個(gè)例子 017
1.4.1 無(wú)法加載問(wèn)題 017
1.4.2 不起作用的代碼 020
1.4.3 正確的代碼結(jié)構(gòu)與異常處理 023
1.4.4 以覆蓋為目的的調(diào)試 025
第2章 常見(jiàn)錯(cuò)誤和非法地址訪問(wèn)藍(lán)屏 028
2.1 非法指針導(dǎo)致的藍(lán)屏 028
2.1.1 空指針訪問(wèn)導(dǎo)致的藍(lán)屏 028
2.1.2 空指針寫(xiě)入導(dǎo)致的藍(lán)屏 030
2.1.3 簡(jiǎn)單亂指針導(dǎo)致的藍(lán)屏 032
2.1.4 亂指針遍歷鏈表導(dǎo)致的藍(lán)屏 033
2.1.5 出現(xiàn)亂指針的原因 035
2.2 越界導(dǎo)致的藍(lán)屏 037
2.2.1 分配邊界頁(yè)面的函數(shù) 037
2.2.2 字符串越界導(dǎo)致的藍(lán)屏 038
2.2.3 內(nèi)存掃描越界導(dǎo)致的藍(lán)屏 041
2.2.4 棧越界導(dǎo)致的藍(lán)屏 043
2.3 非法地址執(zhí)行導(dǎo)致的藍(lán)屏 045
2.3.1 執(zhí)行空函數(shù)指針導(dǎo)致的藍(lán)屏 045
2.3.2 執(zhí)行棧地址函數(shù)指針導(dǎo)致的藍(lán)屏 046
2.3.3 執(zhí)行已卸載驅(qū)動(dòng)函數(shù)導(dǎo)致的藍(lán)屏 047
2.4 各類(lèi)非法訪問(wèn)錯(cuò)誤總結(jié) 050
第3章 內(nèi)核開(kāi)發(fā)中的泄漏、卡死與重入 052
3.1 內(nèi)存泄漏 052
3.1.1 通過(guò)任務(wù)管理器觀察內(nèi)存泄漏 052
3.1.2 通過(guò)PoolTag來(lái)排查泄漏 056
3.1.3 分三級(jí)管理的內(nèi)存分配 058
3.1.4 快速定位內(nèi)存泄漏 064
3.2 卡死 067
3.2.1 死循環(huán)導(dǎo)致的進(jìn)程強(qiáng)卡死 068
3.2.2 死循環(huán)導(dǎo)致的系統(tǒng)卡死 071
3.2.3 自旋鎖未釋放導(dǎo)致的系統(tǒng)卡死和藍(lán)屏 075
3.3 重入 080
3.3.1 遞歸導(dǎo)致的雙重失敗崩潰 081
3.3.2 回調(diào)重入導(dǎo)致的崩潰 083
3.3.3 文件系統(tǒng)設(shè)備棧引起的重入 087
第4章 用戶(hù)環(huán)境缺陷的調(diào)試 093
4.1 與用戶(hù)保持聯(lián)系 093
4.1.1 無(wú)法及時(shí)聯(lián)系用戶(hù)的原因 093
4.1.2 簡(jiǎn)單快速獲取反饋 094
4.1.3 用正確的方式和用戶(hù)接觸 095
4.2 建議用戶(hù)使用轉(zhuǎn)儲(chǔ)文件協(xié)助調(diào)試 095
4.2.1 手動(dòng)開(kāi)啟崩潰轉(zhuǎn)儲(chǔ)的設(shè)置 096
4.2.2 默認(rèn)開(kāi)啟崩潰轉(zhuǎn)儲(chǔ)并上傳轉(zhuǎn)儲(chǔ)文件 097
4.2.3 強(qiáng)制生成轉(zhuǎn)儲(chǔ)文件 099
4.3 編寫(xiě)一個(gè)強(qiáng)制藍(lán)屏工具 100
4.3.1 使用代碼安裝一個(gè)驅(qū)動(dòng)程序 100
4.3.2 以管理員模式運(yùn)行及提權(quán) 103
4.3.3 加載驅(qū)動(dòng)程序 106
4.3.4 完成并加載藍(lán)屏驅(qū)動(dòng)程序 108
4.4 轉(zhuǎn)儲(chǔ)文件分析示例 111
4.4.1 非法內(nèi)存訪問(wèn)的轉(zhuǎn)儲(chǔ)文件 111
4.4.2 進(jìn)程強(qiáng)卡死的轉(zhuǎn)儲(chǔ)文件 115
4.4.3 內(nèi)存泄漏的轉(zhuǎn)儲(chǔ)文件 119
第5章 海量用戶(hù)項(xiàng)目開(kāi)發(fā)與調(diào)試 122
5.1 “無(wú)法調(diào)試”的缺陷 123
5.1.1 缺陷到底能否被解決 123
5.1.2 解決缺陷的通用手段和模式 125
5.1.3 用分段排除法調(diào)整定位缺陷 126
5.2 模塊劃分為基礎(chǔ)的調(diào)整 128
5.2.1 通用的模塊劃分方法 128
5.2.2 內(nèi)核程序功能劃分與開(kāi)關(guān) 131
5.2.3 利用配置進(jìn)行動(dòng)態(tài)開(kāi)關(guān) 135
5.3 建立自監(jiān)控機(jī)制 138
5.3.1 初始化過(guò)程的監(jiān)控 139
5.3.2 功能有效性的自我監(jiān)控 144
5.3.3 持續(xù)執(zhí)行的心跳監(jiān)控 148
5.4 利用海量用戶(hù)定位未知缺陷 151
5.4.1 用隨機(jī)對(duì)照試驗(yàn)來(lái)確認(rèn)未知缺陷 151
5.4.2 確定外網(wǎng)內(nèi)核驅(qū)動(dòng)程序“健康度” 154
5.4.3 繼續(xù)分組對(duì)比以確認(rèn)未知缺陷 155
5.4.4 在發(fā)布和更新中持續(xù)監(jiān)控健康度 157
第6章 內(nèi)核掛鉤與沖突問(wèn)題調(diào)試 158
6.1 解決沖突的正確方式 158
6.1.1 積極但低調(diào)地解決問(wèn)題 158
6.1.2 用戶(hù)價(jià)值才是唯一取向 159
6.2 掛鉤的開(kāi)發(fā) 161
6.2.1 被掛鉤的程序 162
6.2.2 枚舉和注冊(cè)回調(diào)的時(shí)序 164
6.2.3 導(dǎo)入地址表的檢索 170
6.2.4 掛鉤的實(shí)現(xiàn) 175
6.3 沖突的發(fā)現(xiàn)、分析與解決 183
6.3.1 沖突的現(xiàn)象 183
6.3.2 用dps命令手工解析調(diào)用棧 185
6.3.3 逆向分析第三方程序并解決問(wèn)題 189
6.3.4 肇事方視角定位解決問(wèn)題 192
第7章 文件系統(tǒng)過(guò)濾與逆向調(diào)試 195
7.1 微過(guò)濾驅(qū)動(dòng) 195
7.1.1 補(bǔ)齊微過(guò)濾驅(qū)動(dòng)所需要的注冊(cè)表項(xiàng) 196
7.1.2 啟動(dòng)微過(guò)濾驅(qū)動(dòng)程序 202
7.1.3 對(duì)文件打開(kāi)進(jìn)行過(guò)濾 205
7.2 微過(guò)濾驅(qū)動(dòng)的動(dòng)態(tài)卸載問(wèn)題 210
7.2.1 重現(xiàn)缺陷并進(jìn)行初步定位 211
7.2.2 尋找案發(fā)第一現(xiàn)場(chǎng) 213
7.3 利用IDA Pro進(jìn)行靜態(tài)分析 216
7.3.1 IDA Pro操作入門(mén) 216
7.3.2 利用IDA Pro F5逆向FltUnregisterFilter 219
7.3.3 逆向nt模塊中的ExWaitForRundownProtectionRelease 223
7.4 IDA Pro分析和WinDbg調(diào)試的協(xié)同 225
7.4.1 通過(guò)符號(hào)表查找線索 225
7.4.2 IDA Pro靜態(tài)分析尋找調(diào)用者 226
7.4.3 WinDbg動(dòng)態(tài)調(diào)試尋找調(diào)用者 229
第8章 非文檔開(kāi)發(fā)與調(diào)試 233
8.1 使用非文檔方式定位函數(shù) 233
8.1.1 內(nèi)核函數(shù)的公開(kāi)、導(dǎo)出和未導(dǎo)出 234
8.1.2 繞過(guò)導(dǎo)入表來(lái)定位函數(shù) 236
8.1.3 間接定位函數(shù)的代碼實(shí)現(xiàn) 239
8.2 使用非文檔方式探索內(nèi)核功能 243
8.2.1 嘗試監(jiān)控MmMaploSpace的調(diào)用 243
8.2.2 研究PTE Tracker如何開(kāi)啟 246
8.2.3 解決PTE Tracker開(kāi)啟后的藍(lán)屏問(wèn)題 249
8.3 逆向Windows內(nèi)核數(shù)據(jù)結(jié)構(gòu) 251
8.3.1 從公開(kāi)參數(shù)到未公開(kāi)參數(shù) 251
8.3.2 從參數(shù)到內(nèi)部變量和結(jié)構(gòu) 254
8.3.3 通過(guò)各種參考資料逆向內(nèi)核 260
8.4 實(shí)現(xiàn)非文檔操作的編碼實(shí)現(xiàn) 264
8.4.1 從確認(rèn)操作系統(tǒng)的版本開(kāi)始 264
8.4.2 確定需要的全局變量和數(shù)據(jù)結(jié)構(gòu) 265
8.4.3 定位全局變量的位置 268
8.4.4 讀取PTE Tracker記錄并進(jìn)行驗(yàn)證 275

本目錄推薦

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