Visual C++黑客编程揭秘与防范
作 者: 梁洋洋 编著
出版时间:2009
内容简介
《Visual C++黑客编程揭秘与防范》全面介绍了在VisualC++环境中,使用WindowsSocket及API开发各类防范黑客软件及安全防护工具的编程实现方法,深入剖析了目前热门的黑客编程技术。《Visual C++黑客编程揭秘与防范》通过基础篇、提高篇、综合篇和拓展篇这种循序渐进地方式,向读者介绍了防范黑客攻击程序、安全防护工具、远程控制软件和网络安全管理软件的原理及具体编程实现方法。《Visual C++黑客编程揭秘与防范》内容丰富,实用性和实战性强,不仅包括读者必备的防范黑客的编程知识,更深入阐述了网络编程方面的高级技术。不仅适用于黑客程序开发,在读者掌握了《Visual C++黑客编程揭秘与防范》介绍的各种编程技术后,还能用于开发各类网络安全防护软件。《Visual C++黑客编程揭秘与防范》适合初、中级网络安全爱好者学习网络安全知识时使用,同时也可作为程序员和网络高级安全工程师的参考用书。
目录
第一篇 基础篇
第1章 开发网络安全程序基础 2
1.1 认识Windows API和Socket 2
1.1.1 Windows API编程的优点 2
1.1.2 Socket通信流程 3
1.2 服务器端Socket编程 4
1.2.1 使用Socket前的准备工作 4
1.2.2 建立Socket 4
1.2.3 绑定端口 5
1.2.4 监听端口 6
1.2.5 创建服务器端接受客户端请求 6
1.2.6 服务器端响应客户端连接请求 7
1.2.7 完成服务端与客户端Socket连接 8
1.3 客户端Socket编程 9
1.3.1 建立客户端的Socket 9
1.3.2 发起连接申请 9
1.4 用Socket实现数据的传送 9
1.4.1 认识TCP Socket与UDP Socket 10
1.4.2 发送和接收数据的函数 10
1.5 自定义Socket通信类 12
1.5.1 使用类的意义 12
1.5.2 VC中创建通信类 13
1.5.3 通信类的代码实现 16
1.6 小结 21
第2章 网络扫描器程序的实现和代码分析 22
2.1 扫描器的产生及原理 22
2.1.1 扫描器的产生 22
2.1.2 各种扫描器的原理及性能简介 23
2.2 主机扫描技术 25
2.2.1 ICMP Echo扫描 25
2.2.2 ARP扫描 25
2.3 端口扫描技术 27
2.3.1 常用端口简介 27
2.3.2 TCP connect扫描 28
2.3.3 TCP SYN扫描 28
2.4 操作系统识别技术 29
2.4.1 根据ICMP协议的应用得到TTL值 29
2.4.2 获取应用程序标识 30
2.4.3 利用TCP/IP协议栈指纹鉴别 30
2.4.4 操作系统指纹识别依据 30
2.4.5 操作系统指纹识别代码实现 33
2.4.6 Web站点猜测 40
2.4.7 综合分析 41
2.5 扫描器程序实现 42
2.5.1 ICMP echo扫描原理 43
2.5.2 ICMP echo扫描的实现方法 44
2.5.3 ARP扫描的原理 48
2.5.4 ARP扫描的实现方法 48
2.5.5 TCP SYN扫描的原理 53
2.5.6 TCP SYN扫描的实现方法 54
2.5.7 综合应用实例-ARP欺骗程序 56
2.5.8 ARP欺骗的原理 56
2.5.9 环境初始化 57
2.5.10 欺骗主程序实现 61
2.6 资产信息扫描器开发 66
2.6.1 资产信息扫描器的应用范围 66
2.6.2 扫描器的原理(基于SNMP协议) 66
2.6.3 扫描器的实现方法(基于SNMP协议) 67
2.7 小结 69
第3章 基于认证的扫描程序 70
3.1 通信认证的暴力破解剖析 70
3.1.1 FTP协议暴力破解原理 70
3.1.2 FTP协议暴力破解实现方法 70
3.1.3 IMAP协议破解原理 72
3.1.4 IMAP协议破解实现方法 73
3.1.5 POP3协议暴力破解原理 74
3.1.6 POP3协议暴力破解实现方法 75
3.1.7 Telnet协议暴力破解原理 77
3.1.8 Telnet协议暴力破解实现方法 77
3.2 防范恶意扫描及代码实现 79
3.2.1 防范恶意扫描的原理 80
3.2.2 防范恶意扫描的实现方法 80
3.3 小结 83
第二篇 提高篇
第4章 拒绝服务攻击剖析及防范 86
4.1 拒绝服务原理及概述 86
4.1.1 拒绝服务攻击技术类别 86
4.1.2 拒绝服务攻击形式 87
4.2 拒绝服务攻击原理及概述 88
4.2.1 DoS攻击剖析 88
4.2.2 DDoS攻击剖析 88
4.2.3 DRDoS攻击剖析 89
4.2.4 CC攻击剖析 90
4.3 拒绝服务攻击原理剖析 90
4.3.1 DoS实现的原理 90
4.3.2 DRDoS攻击实现剖析 107
4.3.3 CC攻击实现剖析 115
4.3.4 修改连接数限制 117
4.4 拒绝服务攻击防范 121
4.4.1 拒绝服务攻击现象及影响 121
4.4.2 DoS攻击的防范 121
4.4.3 DRDoS攻击的防范 122
4.4.4 CC攻击的防范 122
4.5 小结 124
第5章 感染型下载者 125
5.1 感染功能描述 125
5.1.1 话说熊猫烧香病毒 125
5.1.2 认识“下载者” 126
5.1.3 感染功能描述 127
5.2 感染型下载者工作流程剖析 133
5.3 感染磁盘剖析 135
5.3.1 感染所有磁盘原理 135
5.3.2 感染所有磁盘的方法 135
5.4 感染U盘和移动硬盘剖析 135
5.4.1 U盘和移动硬盘感染的原理 136
5.4.2 U盘和移动硬盘感染剖析 136
5.5 关闭杀毒软件和文件下载的原理剖析 139
5.5.1 关闭杀毒软件的原理 139
5.5.2 关闭杀毒软件和文件下载的方法 139
5.6 结束指定进程 142
5.6.1 结束指定进程的原理 143
5.6.2 结束指定进程的实现方法 143
5.6.3 暴力结束进程 144
5.7 局域网感染 150
5.7.1 局域网感染原理 150
5.7.2 局域网感染的方法 150
5.8 隐藏进程 153
5.8.1 隐藏进程的原理 153
5.8.2 隐藏进程的实现方法 154
5.9 感染可执行文件 155
5.9.1 感染可执行文件的原理 155
5.9.2 感染可执行文件的方法 155
5.10 感染网页文件 158
5.10.1 感染网页文件的原理 158
5.10.2 感染网页文件的实现方法剖析 158
5.11 多文件下载 160
5.11.1 多文件下载的原理 160
5.11.2 多文件下载的实现方法 160
5.12 自删除功能 162
5.12.1 自删除功能的原理 162
5.12.2 自删除功能的实现方法 162
5.13 下载者调用外部程序 163
5.13.1 下载者调用外部程序的原理 163
5.13.2 下载者调用外部程序的实现方法 163
5.14 “机器狗”程序 166
5.14.1 “机器狗”程序原理 167
5.14.2 “机器狗”实现剖析 168
5.15 利用第三方程序漏洞剖析 172
5.16 程序其他需要注意的地方 174
5.16.1 窗口程序的创建 174
5.16.2 应用程序互斥处理 175
5.16.3 禁止关闭窗口 176
5.17 小结 176
第6章 下载者程序的防范 177
6.1 下载者的防范措施 177
6.1.1 U盘感染的防范 177
6.1.2 驱动级病毒的防范 179
6.1.3 阻止第三方程序引起的漏洞 180
6.1.4 本地计算机防范ARP程序运行 181
6.1.5 其他需要注意的地方 182
6.2 U盘病毒防火墙的开发 182
6.2.1 U盘病毒防火墙的功能及实现技术 182
6.2.2 U盘病毒防火墙的代码实现 183
6.3 小结 188
第7章 浅谈RootKit 189
7.1 RootKit与系统内核功能 189
7.1.1 RootKit简介 189
7.1.2 RootKit相关的系统功能 189
7.1.3 Rootkit的分类及实现剖析 190
7.2 RootKit对抗杀毒软件剖析 193
7.2.1 增加空节来感染PE文件 193
7.2.2 通过Rootkit来绕过网络监控 198
7.2.3 绕过主动防御的方法 200
7.2.4 关于进程PEB结构的修改实现 202
7.2.5 RootKit程序实例 205
7.3 小结 210
第三篇 综合篇
第8章 用VC开发远程控制软件 212
8.1 远程控制软件简介 212
8.1.1 远程控制软件的形式 212
8.1.2 远程控制软件的特点 213
8.2 远程控制软件的功能 214
8.2.1 反向连接功能 214
8.2.2 动态更新IP功能 214
8.2.3 获取详细的计算机配置信息 215
8.2.4 进程管理功能 215
8.2.5 服务管理功能 216
8.2.6 文件管理功能 216
8.2.7 远程注册表管理 216
8.2.8 键盘记录 216
8.2.9 被控端的屏幕截取及控制 217
8.2.10 视频截取 217
8.2.11 语音监听 217
8.2.12 远程卸载 217
8.2.13 分组管理 217
8.3 控制软件的技术指标 217
8.3.1 隐蔽通信 218
8.3.2 服务端加壳压缩 218
8.3.3 程序自身保护技术 222
8.3.4 感染系统功能 223
8.4 小结 223
第9章 远程控制软件的通信架构 224
9.1 设计远程控制软件连接方式 224
9.1.1 典型的木马连接方式 224
9.1.2 反弹型木马连接 225
9.2 基本传输结构的设计 225
9.2.1 基本信息结构 225
9.2.2 临时连接结构 226
9.2.3 进程通信结构 226
9.2.4 设计结构成员变量占用空间的大小 227
9.3 命令调度过程的结构设计 227
9.3.1 设计进程传递的结构 228
9.3.2 优化结构成员变量占用空间的大小 228
9.3.3 传输命令结构体定义 229
9.3.4 传输命令结构的设计 229
9.4 小结 236
第10章 远程控制软件功能模块的实现——基础功能 237
10.1 反弹端口和IP自动更新 237
10.1.1 反弹端口原理 237
10.1.2 更新IP模块代码实现 239
10.2 基本信息的获得 240
10.2.1 获得硬盘序列号 240
10.2.2 获得服务端计算机的基本信息 250
10.3 IP地址转换物理地址 252
10.3.1 QQWry.Dat基本结构 252
10.3.2 了解文件头 253
10.3.3 了解记录区 253
10.3.4 设计的理由 254
10.3.5 IP地址库操作类 256
10.4 小结 265
第11章 远程控制软件功能模块的实现——标准功能 266
11.1 进程管理 266
11.1.1 Windows自带的任务管理器 266
11.1.2 进程管理实现的原理 267
11.1.3 进程管理相关API函数的介绍 267
11.1.4 进程管理功能实现 269
11.2 文件管理 273
11.2.1 服务器端两个重要的函数 274
11.2.2 客户端对应的两个函数 275
11.3 服务管理 277
11.3.1 客户端代码 277
11.3.2 服务端代码 278
11.4 服务端启动和网络更新 279
11.4.1 服务启动工作函数 280
11.4.2 网络下载器的选择和代码实现 280
11.4.3 分析下载文件并反弹连接 300
11.4.4 上线设置 301
11.5 远程控制命令 302
11.5.1 客户端代码 302
11.5.2 服务端代码 303
11.6 小结 304
第12章 远程控制软件功能模块的实现——高级功能 305
12.1 屏幕捕捉 305
12.1.1 屏幕捕捉程序结构 305
12.1.2 屏幕捕捉程序代码实现 306
12.2 远程屏幕实现方式 311
12.2.1 远程屏幕图像在网络上的传输过程 312
12.2.2 屏幕抓取与传输实现 312
12.2.3 屏幕图像数据流的压缩与解压缩 314
12.3 键盘记录 325
12.3.1 客户端执行代码 325
12.3.2 服务端执行代码 328
12.4 小结 329
第13章 远程控制软件功能模块的实现——扩展功能 330
13.1 客户端历史记录提取及系统日志删除 330
13.2 压缩功能的实现 332
13.3 DDoS功能模块 333
13.3.1 基本DDoS功能模块 333
13.3.2 UDP功能模块 335
13.3.3 IGMP功能模块 336
13.3.4 ICMP 功能模块 338
13.3.5 HTTP功能函数 340
13.4 SOCKS 5代理实现 341
13.5 视频监控模块开发 351
13.6 涉密文件关键字查询 356
13.7 ADSL拨号连接密码获取的原理剖析 360
13.8 小结 365
第14章 控制软件后期设计完善 366
14.1 版本控制 366
14.1.1 SVN简介 366
14.1.2 SVN使用 366
14.2 界面美化 368
14.2.1 概论 368
14.2.2 具体操作步骤 369
14.2.3 添加系统托盘 370
14.3 小结 371
第四篇 拓展篇
第15章 网络安全编程技术延伸 374
15.1 内网准入控制技术发展分析 374
15.1.1 局域网接入控制技术发展分析 374
15.1.2 可行的内网接入管理方案 374
15.1.3 软件接入网关的原理 375
15.1.4 软件接入网关的配置及实现 375
15.1.5 硬件接入网关的原理 376
15.1.6 硬件接入网关的认证程序流程 377
15.1.7 联动802.1x接入认证的流程 378
15.1.8 802.1x下的局域网准入控制方案 379
15.2 网络蜘蛛在安全领域的应用 381
15.2.1 网络蜘蛛的工作原理 381
15.2.2 简单爬虫的代码实现 382
15.3 SSDT及其恢复 386
15.3.1 认识SSDT 386
15.3.2 编程恢复SSDT 387
15.4 小结 392