Windows核心安全編程從入門到實踐

Windows核心安全編程從入門到實踐

《Windows核心安全編程從入門到實踐》是2012年4月電子工業出版社出版的圖書,作者是林聚偉。該書主要介紹了驅動編程的基本方法,Windows各個系統組件的工作原理,驅動編程本身的安全等問題。

基本介紹

  • 書名:Windows核心安全編程從入門到實踐
  • 作者:林聚偉
  • ISBN:9787121160981
  • 定價:65.00元
  • 出版社:電子工業出版社
  • 出版時間:2012年4月
內容簡介,目錄,前言,

內容簡介

本書詳細介紹了Windows平台下的核心安全編程知識。首先簡單介紹了驅動編程的基本方法;然後詳細介紹了Windows各個系統組件的工作原理,如檔案系統、網路系統自上而下的執行流程。同時還介紹了各個組件涉及的安全問題,如檔案隱藏、鍵盤記錄等,並通過工程項目讓讀者從代碼層級了解這些信息安全問題及解決方法;最後介紹了驅動編程本身的安全問題,如安全編碼的注意事項和脆弱代碼的檢測手段。另外本書還介紹了簡單的調試和逆向技術,幫助解決開發過程中遇到的技術難題。通過閱讀本書,可以幫助讀者更深層次地了解核心態下的信息安全知識。
本書適合大專院校計算機系的學生、Windows程式設計師、從事信息安全行業的工程師以及所有對Windows核心安全編程感興趣的愛好者使用。

目錄

目 錄
第一部分 基礎篇
第1章 前置要求與環境搭建 2
1.1 驅動編程的語言 2
1.2 開發環境搭建 2
1.2.1 Visual Studio 2005/2008的安裝
與配置 2
1.2.2 WDK的安裝與配置 4
1.2.3 VisualDDK的安裝與配置 5
1.3 常用工具介紹 6
第2章 核心編程基礎知識 7
2.1 Windows主要系統組件 7
2.1.1 對象管理器 7
2.1.2 記憶體管理器 7
2.1.3 進程和執行緒管理器 7
2.1.4 I/O管理器 8
2.1.5 PnP管理器 8
2.1.6 電源管理器 8
2.1.7 配置管理器 9
2.1.8 安全引用監視器 9
2.2 常見名詞解釋 9
2.2.1 核心名詞 9
2.2.2 檔案名稱詞 13
2.2.3 網路名詞 13
2.3 常見核心數據結構 15
2.3.1 驅動框架常見數據結構 15
2.3.2 進程與執行緒數據結構 17
2.3.3 存儲系統數據結構 23
2.3.4 網路數據結構 25
2.3.5 其他一些常見的數據結構 29
第3章 基本編程方法 37
3.1 簡單的NT式驅動模型 37
3.1.1 驅動模型的選擇 37
3.1.2 NT式驅動程式基本結構 37
3.1.3 編譯驅動程式 40
3.1.4 載入驅動及查看輸出信息 40
3.2 套用層與核心的通信方法 43
3.2.1 訪問數據的I/O方式 43
3.2.2 讀寫驅動程式 45
3.2.3 傳送I/O控制碼 49
3.2.4 記憶體共享 54
3.3 同步技術 56
3.3.1 事件對象 56
3.3.2 信號燈對象 57
3.3.3 互斥體對象 58
3.3.4 定時器對象 61
3.3.5 自旋鎖 64
3.3.6 回調對象 64
3.3.7 原子操作 70
3.4 IRP處理 70
3.4.1 簡單的IRP流動圖 71
3.4.2 IRP的創建 72
3.4.3 IRP的傳送 75
3.4.4 為IRP設定完成函式 76
3.4.5 IRP的完成 78
3.4.6 多種典型的 IRP處理示例 85
3.5 字元串操作 89
3.5.1 STRING、ANSI_STRING和
UNICODE_STRING 89
3.5.2 初始化和銷毀 90
3.5.3 複製和添加 91
3.5.4 比較 92
3.5.5 轉換 93
3.6 記憶體管理 94
3.6.1 分配系統空間記憶體 94
3.6.2 運行時庫管理函式 95
3.6.3 使用核心棧 96
3.6.4 使用Lookaside快速鍊表 97
3.6.5 訪問用戶空間記憶體 101
3.6.6 記憶體區對象和視圖 101
3.6.7 MDL的使用 103
3.7 註冊表編程 105
3.7.1 註冊表對象管理函式 105
3.7.2 註冊表運行時庫函式 112
3.7.3 註冊表調用過濾 116
3.8 檔案編程 120
3.8.1 打開檔案句柄 120
3.8.2 執行相關檔案操作 121
3.9 其他 127
3.9.1 本地系統服務函式的Nt
和Zw版本 127
3.9.2 NTSTATUS返回值 128
3.9.3 雙向鍊表的使用 128
3.9.4 異常處理 129
第二部分 提升篇
第4章 進程 132
4.1 進程監控實現原理 132
4.2 Windows 7系統下的進程
監控軟體實例 132
4.2.1 核心模組程式實現 132
4.2.2 用戶模式程式實現 149
4.3 安裝與使用 164
第5章 磁碟 165
5.1 存儲驅動體系結構 165
5.2 設備樹示例 166
5.3 diskperf磁碟過濾驅動 167
5.3.1 diskperf介紹 167
5.3.2 diskperf的過濾框架 168
5.3.3 diskperf的PnP支持 172
5.3.4 diskperf的硬碟訪問監控
和性能數據捕獲 187
5.3.5 diskperf的電源支持 194
5.3.6 diskperf的安裝與測試 194
第6章 鍵盤 197
6.1 原理跟蹤 197
6.1.1 自下而上的過程 197
6.1.2 自上而下的過程 205
6.2 幾種常見的鍵盤記錄行為 208
6.2.1 套用層的訊息鉤子 208
6.2.2 鍵盤過濾驅動 208
6.2.3 鍵盤類驅動的分發
函式Hook 214
6.2.4 DKOM技術 214
6.2.5 其他方法 215
6.3 反鍵盤記錄 216
6.3.1 實現原理 216
6.3.2 反鍵盤記錄示例 216
第7章 檔案 242
7.1 原理跟蹤 242
7.1.1 Windows存儲棧 242
7.1.2 不涉及快取的數據存儲 243
7.1.3 涉及快取的數據存儲 253
7.2 簡單的檔案隱藏 254
7.2.1 檔案隱藏的原理 254
7.2.2 檔案隱藏的實現 255
7.3 scanner掃描程式 264
7.3.1 過濾管理器與微過濾
驅動概念 265
7.3.2 使用過濾管理模型的優勢 266
7.3.3 微過濾驅動的載入和卸載 267
7.3.4 用戶模式和核心模式的互動 269
7.3.5 scanner介紹 287
7.3.6 scanner驅動程式 288
7.3.7 scanner套用層程式 303
7.3.8 scanner的安裝與使用 309
第8章 網路 310
8.1 原理跟蹤 310
8.2 NDIS協定驅動 317
8.2.1 DriverEntry 317
8.2.2 綁定 320
8.2.3 數據傳送 327
8.2.4 數據接收 334
8.2.5 數據流動總結 348
8.3 OPEN_BLOCK的展示 349

前言

記得第一次在核心中簡單調用DbgPrint函式輸出“hello world”時興奮得手舞足蹈,也記得之後開發ARP防火牆時遭遇無數次藍屏而無限接近崩潰的狀態。時至今日,接觸Windows核心安全編程已有三年時間了,期間斷斷續續地寫了一些小程式,直到偶然一天收到《黑客防線》雜誌的邀請而萌生了寫一本書記錄自己一路走來經歷的想法,對於和我一樣正走在學習Windows核心安全編程之路上的菜鳥們來說,有很大的閱讀價值,尤其對於那些正準備上路或者剛剛上路的新晉菜鳥而言,通過閱讀本書,可以少走很多無謂的彎路。
本書的結構
本書共包括10章,其中:
第1~3章為基礎篇,介紹基於Windows編程的基礎知識;
第4~8章為提升篇,通過具體示例介紹各Windows組件相關的編程方法;
第9~10章為輔助篇,簡單介紹安全編碼及逆向與調試程式的方法。
本書的理論部分主要以WDK文檔作為支撐,全書關於理論介紹的知識絕大部分來源於WDK,另外一小部分知識直接或間接來源於其他文檔(如Windbg文檔等)、書籍(如Windows Internal 4等)、網路及個人經驗等。
本書的實踐部分來源於WDK提供的例子及個人項目,建議讀者在虛擬機中運行示例。
本書的閱讀說明
讀者可以根據需要選擇閱讀感興趣的章節,也可以從頭至尾完整地閱讀全書。
除了特別說明適用於Windows 7或其他系統的內容除外,本書所有的內容默認適用於Windows XP系統。
每章提供的示例建議在虛擬機環境下運行。由於本人能力和時間有限,並沒有在真機環境中測試過,不能保證所提供的示例程式穩定運行在各種環境下,若直接運行於真機環境中,可能會對您的計算機財產造成不必要的損害。
致謝
感謝趙躍華教授對我的悉心培養;感謝張翼(xyzreg)學長對我多年的指導和照顧;感謝全體535實驗室的師弟師妹們對本書的文字修正;感謝黑客防線在合作過程中的細緻幫助;最後,感謝我的父母對我無盡的給予。
如果您在閱讀過程中發現本書的技術性錯誤,或者有好的建議,歡迎致信。
作者
2011/12/28

相關詞條

熱門詞條

聯絡我們