《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.1DoS实现的原理 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