第1章 网络安全概述 1
1.1网络安全原理 1
1.1.1信息安全 1
1.1.2网络安全 1
1.1.3网络安全模型 3
1.1.4安全策略 4
1.1.5安全管理 4
1.2网络安全的组成 5
1.2.1客户端安全 5
1.2.2服务器安全 5
1.2.3网络设施安全 5
1.3研究网络安全的必要性 5
1.3.1技术层面 5
1.3.2社会层面 6
1.4网络安全技术 6
1.4.1网络安全扫描 6
1.4.2网络协议分析 7
1.4.3网络数据包生成 7
1.4.4网络入侵检测 8
第2章 网络安全编程基础 9
2.1协议基础 9
2.1.1 TCP/IP协议 9
2.1.2 OSI协议模型 11
2.2网络编程 12
2.2.1套接字编程 12
2.2.2 WinSock编程 14
2.3原始套接字 41
2.3.1原始套接字基本原理 41
2.3.2发送数据 45
2.3.3监听数据 52
2.4操作系统 57
2.4.1 Linux操作系统 57
2.4.2 Windows操作系统 59
2.5编程语言 59
2.5.1 C语言 59
2.5.2 C++语言 60
2.5.3 Shell语言 60
2.5.4其他编程语言 60
2.6 Visual C++网络安全编程基础 60
2.6.1进程处理 60
2.6.2线程处理 63
2.6.3定时器处理 65
2.6.4注册表处理 67
2.6.5获取网络接口信息 71
第3章 网络安全扫描编程 80
3.1网络安全扫描介绍 80
3.1.1何为网络安全扫描 80
3.1.2网络安全扫描的作用 80
3.1.3应用场合 81
3.2端口扫描 81
3.2.1端口的意义 81
3.2.2端口扫描过程 82
3.3高级ICMP扫描技术 83
3.4高级TCP扫描技术 85
3.4.1 SYN扫描 86
3.4.2 ACK扫描 87
3.4.3 FIN扫描 88
3.4.4 NULL扫描 88
3.5高级UDP扫描技术 88
3.6木马扫描技术 89
3.7隐秘扫描技术 89
3.8漏洞扫描技术 90
3.9操作系统探测技术 91
3.10端口扫描实现 92
3.10.1 ICMP扫描实现 92
3.10.2 TCP扫描实现 98
3.10.3 UDP扫描实现 112
3.10.4木马扫描实现 124
3.10.5隐秘扫描实现 127
3.11操作系统探测实现 138
3.12服务器扫描实现 152
3.12.1 Web服务器 152
3.12.2 FTP服务器 157
3.12.3 E-mail服务器 165
3.13多线程扫描技术 169
3.13.1 Windows多线程原理 169
3.13.2 VC++多线程技术 174
3.13.3多线程扫描编程实现 175
第4章 网络协议分析编程 180
4.1网络协议分析系统概述 180
4.1.1网络嗅探 180
4.1.2应用场合 180
4.1.3基本功能 181
4.2网络协议原理 181
4.2.1网络分层 181
4.2.2网络协议 183
4.3协议类型 184
4.3.1 TCP/IP协议 184
4.3.2 NETBIOS协议 185
4.3.3IPX/SPX协议 186
4.4 TCP/IP协议族原理 187
4.4.1分解与封装 187
4.4.2 Ethernet 188
4.4.3 ARP/RARP 188
4.4.4 IP 193
4.4.5 UDP 195
4.4.6 TCP 200
4.4.7 ICMP 206
4.4.8 HTTP/FTP 217
4.5编程实现 222
4.5.1基于原始套接字 222
4.5.2基于WinPcap 222
4.5.3其他技术 223
4.6网络数据包捕获 224
4.6.1网卡混杂模式 224
4.6.2交换网络 225
4.7基于原始套接字的编程实现方法 226
4.7.1捕获数据包 226
4.7.2协议分析 229
4.8基于WinPcap的编程实现方法 241
4.8.1 WinPcap编程模式 241
4.8.2捕获数据包 244
4.8.3整体框架 247
4.8.4协议分析 255
第5章 网络数据包生成编程 269
5.1网络数据包生成技术概述 269
5.1.1基本原理 269
5.1.2作用 269
5.2网络数据包生成编程实现 270
5.2.1原始套接字方法 270
5.2.2基于WinPcap方法 271
5.2.3基于Libnet方法 271
5.3原始套接字的方法 271
5.3.1生成IP数据包 271
5.3.2生成TCP数据包 278
5.3.3生成UDP数据包 288
5.3.4生成ICMP数据包 294
5.4基于WinPcap的方法 301
5.4.1基本流程 301
5.4.2生成ARP数据包 306
5.4.3生成IP数据包 312
5.4.4生成TCP数据包 319
5.4.5生成UDP数据包 328
5.4.6生成ICMP数据包 335
5.5基于Libnet的方法 342
5.5.1基本方法 342
5.5.2数据包生成 343
第6章 入侵检测编程 352
6.1入侵检测系统概述 352
6.1.1入侵检测的分类 352
6.1.2入侵检测的标准化 352
6.1.3入侵检测的作用 352
6.2入侵检测原理 353
6.2.1入侵检测模型 353
6.2.2异常检测 353
6.2.3误用检测 353
6.3入侵检测技术 353
6.3.1模式匹配 353
6.3.2统计分析 354
6.3.3状态转换分析 354
6.3.4专家系统 354
6.3.5神经网络 354
6.3.6模型推理 354
6.3.7数据挖掘 354
6.3.8基于协议分析 355
6.4编程实现 355
6.5数据包的捕获实现 357
6.6数据包分析 361
6.6.1分析流程 361
6.6.2协议种类 362
6.6.3程序实现 362
6.7入侵检测模块 370
6.7.1检测方法 370
6.7.2实现 376
参考文献 386