注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計其他編程語言/工具Windows內核調試技術

Windows內核調試技術

Windows內核調試技術

定 價:¥79.00

作 者: 譚文
出版社: 電子工業(yè)出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787121500237 出版時間: 2025-04-01 包裝: 平裝-膠訂
開本: 128開 頁數(shù): 字數(shù):  

內容簡介

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

作者簡介

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

圖書目錄

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

本目錄推薦

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