《网络分析技术揭秘 原理、实践与WinPcap深入解析》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:彭文波,吕雪峰,宋泽宇著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2012
  • ISBN:9787111380382
  • 页数:448 页
图书介绍:本书主要介绍了计算机网络分析的原理。同时,结合著名开源软件库WinPcap说明了如何通过实际的程序设计来实现网络分析的方方面面。其中,包括网络设备的打开、数据包的发送、数据包的过滤、数据包的捕获、数据包的存储与回放、网络状态的统计与网络海量数据包存储等重要内容。希望通过对WinPcap的架构、使用与实现机制的深入分析,可以让读者快速熟悉操作系统内核与用户层交互的实现机制。同时对内核层与用户层的相关知识更为熟悉,为进一步掌握新技术提供良好的基础,并且能将相关知识运用到实际项目中。

第1章 揭开网络分析的神秘面纱 1

1.1 网络分析概述 1

1.2 网络分析的主要用途 3

1.3 黑客使用嗅探器的方法 4

1.4 被嗅探数据的真面目 6

1.4.1 使用嗅探器获得FTP的用户名和密码 6

1.4.2 使用嗅探器分析冲击波蠕虫(Blaster Worm) 7

1.5 常见的网络分析器 10

1.6 网络分析器的工作原理 11

1.6.1 以太网简介 11

1.6.2 理解开放系统互连(OSI)模型 11

1.6.3 了解CSMA/CD协议 15

1.6.4 IP、ICMP、TCP与UDP协议 16

1.6.5 硬件 17

1.6.6 欺骗交换机 19

1.7 嗅探器的检测 21

1.7.1 检测嗅探器的原理 21

1.7.2 防止网络嗅探可采取的安全措施 22

1.8 网络分析工具的主要功能组成 22

1.9 Wireshark的概述、安装与使用 24

1.9.1 Wireshark的概述 24

1.9.2 Wireshark的安装 24

1.9.3 Wireshark的使用 26

1.10 小结 30

第2章 初识网络分析基础库WinPcap 31

2.1 WinPcap概述 31

2.2 WinPcap的优点 31

2.3 WinPcap的使用者 32

2.4 WinPcap的体系架构 33

2.4.1 WinPcap的主要组成 33

2.4.2 数据包捕获的基本过程 34

2.4.3 WinPcap的驱动程序 35

2.4.4 WinPcap内核驱动的主要功能 36

2.5 用户空间库接口函数 39

2.5.1 wpcap.dll库中的重要函数 39

2.5.2 Packet.dll库中的重要函数 42

2.6 小结 44

第3章 网络分析工具的内核驱动基础知识 45

3.1 Windows驱动程序基础知识 45

3.1.1 驱动对象(DRIVER_OBJECT) 45

3.1.2 设备对象(DEVICE_OBJECT) 46

3.1.3 设备扩展(_DEVICE_EXTENSION) 48

3.1.4 IRP与派遣函数 49

3.1.5 同步处理 50

3.1.6 内核的内存操作 55

3.1.7 内存操作的运行时函数 56

3.1.8 内核的注册表操作 57

3.2 NDIS协议驱动程序 63

3.2.1 三种类型的网络驱动程序 63

3.2.2 协议驱动程序的特征结构体 64

3.3 小结 67

第4章 编译与使用WinPcap 68

4.1 源代码目录结构 68

4.2 构建驱动程序NPF 69

4.3 构建Packet.dll库 70

4.4 构建wpcap.dll库 72

4.5 安装NPF驱动程序与各库文件 73

4.6 使用WinPcap库进行程序开发的实例 73

4.7 小结 83

第5章 WinPcap驱动程序的初始化与清除 84

5.1 驱动程序中的初始化函数DriverEntry 84

5.1.1 DriverEntry函数的工作流程 84

5.1.2 DriverEntry函数的具体实现 86

5.2 驱动程序中的卸载函数DriverUnload 103

5.3 小结 105

第6章 获得与释放网络适配器设备列表 106

6.1 使用WinPcap选择合适的适配器 106

6.1.1 wpcap.dll库导出的相应函数 106

6.1.2 获得与释放网络适配器列表的实例 107

6.1.3 获取已安装设备高级信息的实例 109

6.2 获得网络适配器列表的幕后 109

6.2.1 wpcap.dll库中获得网络适配器列表的实现 109

6.2.2 Packet.dll库中获得网络适配器列表的实现 122

6.2.3 内核空间中获得网络适配器列表的实现 141

6.3 释放网络适配器列表的实现 143

6.4 小结 144

第7章 打开与关闭适配器 145

7.1 使用WinPcap打开与关闭适配器 145

7.1.1 wpcap.dll库导出的相应函数 145

7.1.2 关键数据结构pcap_t 146

7.1.3 打开与关闭网络适配器的实例 147

7.2 打开与关闭适配器的幕后 151

7.2.1 打开适配器的实现 151

7.2.2 关闭适配器的实现 200

7.3 小结 207

第8章 数据包的发送 208

8.1 使用WinPcap发送数据包 208

8.1.1 wpcap.dll库导出的相应函数 208

8.1.2 数据包发送实例 209

8.2 数据包发送的幕后 217

8.2.1 发送单个数据包的实现 219

8.2.2 单个数据包发送多次的实现 236

8.2.3 发送队列方式的实现 238

8.3 小结 254

第9章 数据包的内核过滤 255

9.1 基础知识 255

9.1.1 flex和bison简介 255

9.1.2 #line宏 262

9.1.3 以太网的典型帧结构 263

9.1.4 数据包过滤的原理简介 264

9.1.5 BPF虚拟机 265

9.1.6 Tcpdump与WinDump 268

9.1.7 BPF指令集实例 269

9.1.8 BPF过滤器的优化研究 270

9.1.9 BPF系统架构 273

9.2 WinPcap数据包过滤基础 274

9.2.1 数据包过滤过程 274

9.2.2 过滤表达式 274

9.2.3 编译过滤表达式生成过滤器的字节码 275

9.2.4 把过滤器字节码传递给内核 275

9.3 使用WinPcap过滤数据包 275

9.3.1 wpcap.dll库导出的相应函数 275

9.3.2 使用过滤器的实例 276

9.4 数据包过滤的幕后 279

9.4.1 wpcap.dll库中相应函数的实现 279

9.4.2 Packet.dll库对应的函数 287

9.4.3 驱动程序中对应的函数 288

9.4.4 NPF_tap函数的数据包过滤部分 297

9.5 小结 300

第10章 数据包的接收 301

10.1 使用WinPcap接收数据包 301

10.1.1 wpcap.dll库导出的相应函数 301

10.1.2 数据包接收的实例 302

10.2 数据接收的幕后 307

10.2.1 wpcap.dll库中相应函数的实现 308

10.2.2 Packet.dll库中相应函数的实现 314

10.2.3 内核空间部分的实现 316

10.3 小结 339

第11章 统计网络流量与网络状态 340

11.1 使用WinPcap进行网络统计的方法 340

11.1.1 wpcap.dll库导出的相应函数 340

11.1.2 统计实例 341

11.2 网络统计的幕后 346

11.2.1 工作模式 346

11.2.2 模式设置函数 347

11.2.3 网络流量统计的实现 350

11.2.4 网络状态统计的实现 354

11.3 小结 360

第12章 文件的存储与读取 361

12.1 libpcap文件存储格式 361

12.1.1 转储文件的头信息 361

12.1.2 每个数据包的头信息 363

12.2 使用WinPcap进行文件存储与读取 364

12.2.1 wpcap.dll导出的相应函数 364

12.2.2 文件存储与读取的实例 364

12.3 数据包文件存储的幕后 372

12.3.1 pcap_dump_open函数 373

12.3.2 pcap_dump函数 375

12.3.3 pcap_dump_flush函数 375

12.3.4 pcap_dump_close函数 376

12.4 数据包文件读取的幕后 376

12.5 内核文件转储的实现 382

12.5.1 wpcap.dll库中相应函数的实现 382

12.5.2 Packet.dll库中相应函数的实现 384

12.5.3 驱动程序中对应的函数 387

12.6 小结 389

第13章 修改源代码 390

13.1 给wpcap.dll增加设置重复发送次数的函数 390

13.1.1 修改步骤 390

13.1.2 测试结果 391

13.2 修改WinPcap的内核驱动代码 392

13.2.1 支持内核转储功能 392

13.2.2 测试内核统计与转储模式 406

13.2.3 支持大量数据包的转储 410

13.2.4 内核驱动程序修改后的源文件 411

13.3 小结 411

第14章 性能测试与分析 412

14.1 测试环境 412

14.2 测试实例 413

14.2.1 不同发送方式的比较 413

14.2.2 发送不同数据包长度的比较 420

14.2.3 不同接收方式的比较 423

14.3 小结 430

附录A 源语法规范 431

附录B 过滤表达式规范 433

附录C SYN洪泛攻击的详细资料 438

附录D ARP欺骗资料 442

参考文献 448