當前位置:編程學習大全網 - 編程語言 - 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

  • 上一篇:中航工業西安慶安集團有限公司的工資待遇如何?
  • 下一篇:如何編制數控開齒編程
  • copyright 2024編程學習大全網