第一区间 Windows系统内核机制 2
第1章 CPU体系结构 2
1.1 相关技术和概念 2
1.2 微处理器指令集架构 6
1.3 UMA与NUMA架构 9
1.4 众核体系架构 10
1.5 CPU缓存机制 11
1.5.1 Cache机制 11
1.5.1.1 全关联型Cache 13
1.5.1.2 直接关联型Cache 15
1.5.1.3 组关联型Cache 15
1.5.1.4 存在的问题 17
1.5.2 TLB 19
1.6 国产X86架构CPU现状 20
本章小结 21
第2章 Windows整体框架 22
2.1 Windows操作系统的历史 22
2.2 Windows操作系统架构 24
2.3 WoW64 32
本章小结 34
第3章 Windows系统调用 35
3.1 预备知识 35
3.1.1 寄存器 36
3.1.2 堆栈 39
3.1.3 GDT和LDT 40
3.1.4 SSDT和IDT 42
3.1.5 KPCR和KPRCB 46
3.1.6 KTHREAD、ETHREAD、W32THREAD和TEB 47
3.1.7 TSS 48
3.1.8 调用约定 49
3.2 自陷型系统调用流程 51
3.2.1 切换流程 51
3.2.2 执行序言 54
3.2.3 执行跳板 55
3.2.4 执行尾声 56
3.3 快速型系统调用流程 57
3.3.1 切换流程 57
3.3.2 执行返回 59
本章小结 60
第4章 进程与线程的创建 61
4.1 数据结构 61
4.1.1 线程相关数据结构 62
4.1.2 进程相关数据结构 64
4.2 线程创建过程 66
本章小结 75
第5章 线程调度与切换 76
5.1 预备知识 76
5.1.1 线程调度 76
5.1.2 线程切换 78
5.2 线程切换过程 81
本章小结 84
第6章 异步过程调用机制 85
6.1 APC的数据结构 86
6.2 APC的运行机制 87
6.2.1 APC的执行流程 87
6.2.2 对堆栈框架的安排 89
6.2.3 用户APC的执行流程 91
6.2.4 APC的插入 92
6.3 进程挂靠机制 93
本章小结 94
第7章 系统中断机制 95
7.1 中断机制概述 95
7.1.1 中断的硬件处理机制 95
7.1.2 中断的软件处理机制 98
7.2 延迟过程调用机制 102
7.2.1 DPC的数据结构 103
7.2.2 DPC的入队流程 104
7.2.3 DPC的执行流程 105
本章小结 106
第8章 视窗型报文 107
8.1 视窗型报文的数据结构 108
8.2 视窗型报文的接收与发送 111
8.2.1 视窗型报文的接收 112
8.2.2 视窗型报文的发送 116
8.3 用户态空间回调机制 118
8.4 键盘与鼠标报文的响应机制 122
本章小结 125
第9章 结构化异常处理 126
9.1 结构化异常处理框架 127
9.2 内核态空间的结构化异常处理流程 132
9.3 用户态空间的结构化异常处理流程 139
本章小结 144
第10章 内存管理机制 145
10.1 内存管理综述 145
10.2 内存分配机制 150
10.2.1 虚拟地址空间 150
10.2.2 物理地址空间 151
10.2.3 页面映射机制 155
10.2.4 页面换出机制 159
10.3 内存页面异常处理 160
10.4 共享映射区机制 161
10.5 内存管理机制的改进 164
10.6 64位系统下的内存空间 164
本章小结 165
第11章 进程间通信机制 166
11.1 本地过程调用 167
11.1.1 本地过程调用通信过程 167
11.1.2 高级本地过程调用 168
11.2 命名管道 169
11.3 WMI 174
本章小结 177
第12章 Windows PE文件 178
12.1 COFF文件格式 178
12.2 PE文件格式 182
12.2.1 相关概念 182
12.2.2 PE文件结构 184
12.2.2.1 DOS头结构 185
12.2.2.2 NT头结构 186
12.2.2.3 数据目录表 190
12.2.2.4 区段表与区段 200
本章小结 203
第13章 Windows启动过程 204
13.1 系统启动的参与者 204
13.2 系统启动过程 206
13.2.1 BIOS+MBR方式 206
13.2.2 EFI+GPT方式 209
13.2.3 UEFI+GPT方式 210
本章小结 213
第14章 Windows内存安全机制 214
14.1 软件漏洞与病毒 214
14.1.1 软件漏洞 214
14.1.2 病毒 217
14.2 DEP机制 219
14.3 ASLR机制 221
14.4 Security Cookie机制 223
14.5 SafeSEH机制 225
14.6 SEHOP机制 227
14.7 Patch Guard机制 227
14.8 Safe Unlinking机制 228
14.9 CFG机制 229
14.10 Secure Boot机制 230
本章小结 231
第15章 可信计算技术 232
15.1 加解密技术 233
15.2 可信计算 236
15.3 可信平台模块 240
15.4 可信软件栈 246
15.5 基于可信计算的安全启动技术 248
15.6 TrustZone技术 249
15.7 TXT与SGX 250
本章小结 253
第二区间 Windows驱动体系 256
第16章 Windows设备驱动框架 256
16.1 驱动框架的数据结构 257
16.1.1 驱动对象 257
16.1.2 设备对象 259
16.1.3 内存描述符表 261
16.1.4 I/O请求包 262
16.2 NT式驱动模型 268
16.3 WDM驱动模型 269
16.4 WDF驱动模型 271
16.4.1 KMDF 272
16.4.2 UMDF 275
16.5 PNP管理器 276
本章小结 279
第17章 Windows网络协议栈驱动 280
17.1 NDIS框架 283
17.2 NDIS小端口驱动 288
17.3 协议驱动 292
17.4 AFD 296
17.5 TDI/TDX框架 305
17.6 WSK框架 311
17.7 WFP框架 312
17.8 WinPcap框架 316
本章小结 318
第18章 Windows文件系统 320
18.1 Windows存储驱动栈 324
18.2 FAT32文件系统 330
18.3 NTFS文件系统 337
18.4 ReFS文件系统 345
18.5 文件系统识别器 346
18.6 文件系统过滤框架FltMgr 347
本章小结 350
第19章 WDDM框架 351
19.1 WDDM框架基础库 351
19.2 WDDM框架与显卡驱动的交互 356
19.3 虚拟化桌面的显示支持 358
本章小结 359
第20章 Rootkit技术 360
20.1 挂钩技术 360
20.1.1 Inline Hook 361
20.1.2 SSDT Hook 365
20.1.3 IDT Hook 367
20.1.4 GDT Hook 369
20.1.5 MSR Hook 370
20.1.6 IAT/EAT Hook 371
20.1.7 消息报文Hook 373
20.1.8 Object Hook 375
20.1.9 DKOM 377
20.1.10 IVT Hook 378
20.2 注入技术 379
20.2.1 APC注入方式 379
20.2.2 注册表注入方式 380
20.2.3 远程线程注入方式 381
20.2.4 浏览器辅助对象方式 382
20.2.5 DLL劫持 383
20.2.6 PE感染 384
20.3 过滤驱动技术 385
20.4 Bootkit技术 386
本章小结 390
第三区间 应用软件通信机制 392
第21章 通信框架 392
21.1 Windows系统通信模型 392
21.1.1 I/O完成端口模型 392
21.1.2 select模型 396
21.1.3 重叠I/O模型 398
21.2 通信框架 400
21.2.1 ACE框架 400
21.2.2 WebRTC框架 408
21.2.3 Netty框架 414
21.2.4 Service Mesh 416
21.2.5 其他通信框架 420
21.2.5.1 Boost.Asio框架 420
21.2.5.2 Libevent 422
21.2.5.3 Libev框架 422
21.2.5.4 Libuv框架 423
21.2.5.5 RPC框架 423
21.2.5.6 HP-Socket框架 425
21.3 消息队列 430
21.3.1 ZeroMQ 433
21.3.2 RocketMQ 437
本章小结 442
第22章 新一代通信技术 443
22.1 软件定义网络 444
22.1.1 SDN 445
22.1.1.1 SDN框架结构 445
22.1.1.2 OpenFlow协议与相关表结构 450
22.1.1.3 SDN链路发现机制 456
22.1.1.4 SDN控制器项目 457
22.1.1.5 SD-WAN 460
22.1.1.6 IBN 461
22.1.2 NFV 462
22.1.2.1 NFV参考架构 463
22.1.2.2 NFV接口体系 465
22.1.3 网络切片 466
22.1.3.1 网络切片的定义 466
22.1.3.2 网络切片的分类与部署 467
22.1.3.3 网络切片的生命周期 469
22.2 数据平面加速技术 470
22.2.1 DPDK框架 470
22.2.1.1 传统的网络传输处理框架 471
22.2.1.2 DPDK框架关键技术 472
22.2.1.3 DPDK框架的结构和工作流程 480
22.2.1.4 基于DPDK框架的报文传输 482
22.2.2 SPDK框架 483
22.2.2.1 预备知识 484
22.2.2.2 SPDK框架结构 496
本章小结 499
第23章 应用软件网络协议栈 500
23.1 网络层协议 503
23.1.1 IPSec 503
23.1.2 ICMP 511
23.1.3 IGMP 516
23.1.4 RSVP 519
23.2 传输层协议 522
23.2.1 SCTP 523
23.2.2 QUIC 528
23.2.3 UDT 535
23.2.4 SSL/TLS/DTLS 541
23.2.5 TCP的拥塞控制机制 548
23.2.6 TCP加速技术 558
23.3 应用层协议 560
23.3.1 视联网协议栈 560
23.3.1.1 SRT协议 562
23.3.1.2 SRTP/SRTCP 563
23.3.1.3 音视频封装容器 568
23.3.1.4 H.32 3协议簇 574
23.3.1.5 GB/T 28181和GB 35114 583
23.3.2 物联网协议栈 589
23.3.2.1 接入协议 590
23.3.2.2 应用协议 593
23.4 网络安全 594
23.4.1 狭义网络安全 595
23.4.2 视联网安全 598
23.4.3 自主可控 602
本章小结 604
参考文献 606