《彻底研究 黑客编程技术揭秘与攻防实战》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:赵笑声编著
  • 出 版 社:北京:中国铁道出版社
  • 出版年份:2016
  • ISBN:9787113219864
  • 页数:502 页
图书介绍:本书以经典的Visual C++作为开发工具,深入颇为神秘的黑客编程开发技术,全面介绍了在Windows环境中使用Socket API开发各类黑客软件及系统安全防护工具软件的编程实现方法,同时全书站在知己知彼,保障网络和数据安全的角度上,集中阐述了如何防范黑客攻击的原理和实战技巧。

第1章 黑客入门,Socket API开发必知 1

1.1 Windows API和Socket 1

1.1.1 Windows API编程的优点 1

1.1.2 Socket通信流程 2

1.2服务器端Socket的操作 3

1.2.1在初始化阶段调用WSAStartup 3

1.2.2建立Socket 4

1.2.3绑定端口 4

实例1.1 bind函数调用示例 5

1.2.4监听端口 6

1.2.5 accept函数 6

实例1.2 accept函数示例 7

1.2.6 WSAAsyncSelect函数 7

实例1.3响应Socket事件的结构代码 8

1.2.7结束服务器端与客户端Socket连接 8

1.3客户端Socket的操作 9

1.3.1建立客户端的Socket 9

1.3.2发起连接申请 9

实例 1.4 connect函数示例 9

1.4 Socket数据的传送 9

1.4.1 TCP Socket与UDP Socket 10

1.4.2发送和接收数据的函数 10

1.5自定义CMyTcpTran通信类 12

1.5.1为什么要使用类 13

1.5.2 Visual C++中创建通信类 13

实例1.5 CMyTcpTran类头文件 15

1.5.3 CMyTcpTran类的代码实现 17

实例1.6 CMyTcpTran类方法的函数实现 17

实例1.7 Socket通信库初始化实现方法 18

实例1.8初始化套接字资源 18

实例1.9创建连接通信函数的实现 20

实例1.10初始化Socket资源的接收函数 21

实例1.11发送套接字数据的函数实现 23

1.6小结 25

第2章 专业风范,网络扫描器的开发实现 26

2.1扫描器的产生及原理 26

2.1.1扫描器的产生 26

2.1.2不同扫描方式扫描器原理及性能简介 27

2.2主机扫描技术 29

2.2.1 ICMP Echo扫描 29

2.2.2 ARP扫描 30

2.3端口扫描技术 31

2.3.1常用端口简介 31

2.3.2 TCP connect扫描 32

2.3.3 TCP SYN扫描 33

2.4操作系统识别技术 33

2.4.1根据ICMP协议的应用得到TTL值 33

2.4.2获取应用程序标识 35

2.4.3利用TCP/IP协议栈指纹鉴别 35

2.4.4操作系统指纹识别依据 36

2.4.5操作系统指纹识别代码实现 39

2.4.6 Web站点猜测 48

2.4.7综合分析 49

实例2.1一段端口检测程序代码 50

2.5扫描器程序实现 52

2.5.1 ICMP echo扫描原理 52

2.5.2 ICMP echo扫描的实现方法 53

实例2.2 ICMP扫描程序类定义 54

实例2.3 ICMP扫描的代码实现 55

实例2.4 ICMP扫描判断主机存活 58

2.5.3 ARP扫描的原理 59

2.5.4 ARP扫描的实现方法 60

实例2.5 ARP设备扫描的实现方式 60

实例2.6 ARP扫描程序实例 64

2.5.5 TCP SYN扫描的原理 66

2.5.6 TCP SYN扫描的实现方法 66

实例2.7 TCP SYN扫描实例 66

2.5.7综合应用实例——ARP欺骗程序 70

2.5.8 ARP欺骗的原理 70

2.5.9 Winpcap环境初始化 70

实例2.8 Winpcap驱动程序初始化 70

2.5.10欺骗主程序 77

实例2.9 ARP欺骗程序的实现方法 77

2.6资产信息扫描器开发 83

2.6.1资产信息扫描器的应用范围 83

2.6.2 snmp协议扫描的原理 84

2.6.3 snmp协议扫描的实现方法 84

实例2.10 snmp协议扫描的实现方法 84

2.7小结 87

第3章 提升,暴力破解和防范 88

3.1针对应用程序通信认证的暴力破解 88

3.1.1 FTP协议暴力破解原理 88

3.1.2 FTP协议暴力破解实现方法 88

实例3.1 FTP暴力破解程序代码 89

3.1.3 IMAP协议破解原理 92

3.1.4 IMAP协议破解方法 92

实例3.2 IMAP协议破解 92

3.1.5 POP3协议暴力破解原理 94

3.1.6 POP3协议暴力破解实现方法 95

实例3.3 POP3协议暴力破解 95

3.1.7 Telnet协议暴力破解原理 98

3.1.8 Telnet协议暴力破解实现方法 98

实例3.4 Telnet协议暴力破解 98

3.2防范恶意扫描及代码实现 101

3.2.1防范恶意扫描的原理 101

3.2.2防范恶意扫描的实现方法 102

实例3.5防范恶意扫描程序的框架 102

3.3小结 106

第4章 用代码说话,拒绝服务攻击与防范 107

4.1拒绝服务原理及概述 107

4.1.1拒绝服务攻击技术类别 107

4.1.2拒绝服务攻击形式 108

4.2拒绝服务攻击原理及概述 109

4.2.1 DoS攻击 109

4.2.2 DDoS攻击 110

4.2.3 DRDoS攻击 110

4.2.4 CC攻击 111

4.3拒绝服务攻击代码实现 112

4.3.1 DoS实现代码的原理 112

实例4.1典型UDP Flood攻击 117

实例4.2 SYN Flood攻击代码示例 120

实例4.3典型TCP多连接攻击程序示例 123

实例4.4 ICMP Flood攻击数据包构造 127

实例4.5 ICMP Flood攻击 130

4.3.2 DRDoS攻击的代码实现 132

实例4.6 InitSynPacket函数实现过程 134

实例4.7 InitIcmpPacket函数实现过程 136

实例4.8 SYN反射线程实现方式 136

实例4.9 ICMP反射攻击线程实现 138

实例4.10开启反射攻击线程 140

实例4.11反射攻击线程 140

4.3.3 CC攻击的代码实现 143

实例4.12 CC攻击代码实现 143

4.3.4修改TCP并发连接数限制 146

实例4.13修改TCP并发连接线程 146

4.4拒绝服务攻击防范 151

4.4.1拒绝服务攻击现象及影响 151

4.4.2 DoS攻击的防范 151

4.4.3 DRDoS攻击的防范 152

4.4.4 CC攻击的防范 152

实例4.14 ASP程序Session认证 153

实例4.15 ASP程序判断真实IP地址 153

4.5小结 154

第5章 你也能开发“病毒” 155

5.1感染功能描述 155

5.1.1话说熊猫烧香 155

5.1.2何为“下载者” 156

5.1.3感染功能描述 157

5.2感染型下载者工作流程 165

5.3感染所有磁盘 166

5.3.1感染所有磁盘原理 167

5.3.2感染所有磁盘的实现方法 167

实例5.1感染所有磁盘的代码 167

5.4感染U盘、移动硬盘 167

5.4.1 U盘、移动硬盘感染的原理 167

5.4.2 U盘、移动硬盘感染的实现方法 168

实例5.2 U盘感染实现代码 171

5.5关闭杀毒软件和文件下载的实现 171

5.5.1关闭杀毒软件的原理 171

5.5.2关闭杀毒软件和文件下载的实现方法 172

实例5.3关闭杀毒软件和文件下载 172

5.6结束指定进程 176

5.6.1结束指定进程的原理 177

5.6.2结束指定进程的实现方法 177

实例5.4结束指定进程 177

5.6.3暴力结束进程 178

实例5.5暴力结束进程 178

实例5.6下载执行程序 186

5.7局域网感染 187

5.7.1局域网感染原理 187

5.7.2局域网感染的实现方法 187

实例5.7局域网同网段扫描并感染的代码实现 187

实例 5.8 IPC连接操作 190

5.8隐藏进程 191

5.8.1隐藏进程的原理 192

5.8.2隐藏进程的实现方法 192

5.9感染可执行文件 193

5.9.1感染可执行文件的原理 193

5.9.2感染可执行文件的实现方法 193

实例5.9汇编查找kernel.dll的地址 193

实例5.10遍历文件目录查找exe文件路径 196

实例5.11全盘搜索exe文件 197

5.10感染网页文件 197

5.10.1感染网页文件的原理 197

5.10.2感染网页文件的实现方法 197

实例5.12向指定文件尾部写入代码 197

实例5.13搜索网页文件并调用感染函数 198

实例5.14设置文件隐藏属性 199

5.11多文件下载 200

5.11.1多文件下载的原理 200

5.11.2多文件下载的实现方法 200

5.12自删除功能 202

5.12.1自删除功能的原理 202

5.12.2自删除功能的实现方法 202

实例5.15 程序自删除功能 202

5.13下载者调用外部程序 203

5.13.1下载者调用外部程序的原理 203

5.13.2下载者调用外部程序的实现方法 203

实例5.16 zxarps.exe程序帮助信息 203

实例5.17释放资源调用ARP攻击程序 206

实例5.18调用ARP攻击程序循环攻击C段IP地址 207

5.14“机器狗”程序 208

5.14.1“机器狗”程序原理 208

5.14.2“机器狗”代码实现 209

实例5.19“机器狗”释放驱动并安装执行的代码实现 209

实例5.20驱动感染userinit.exe 213

5.15利用第三方程序漏洞 216

实例5.21迅雷溢出漏洞利用文件Thunder.js 217

5.16程序其他需要注意的地方 219

5.16.1窗口程序的创建 219

实例5.22创建窗口程序的代码实现 219

5.16.2应用程序互斥处理 220

实例5.23应用程序互斥处理 220

5.16.3禁止关闭窗口 221

5.17小结 221

第6章 你当然也能开发杀毒程序 222

6.1下载者的防范措施 222

6.1.1 U盘感染的防范 222

6.1.2驱动级病毒的防范 224

6.1.3阻止第三方程序引起的漏洞 226

6.1.4本地计算机防范ARP程序运行 227

6.1.5其他需要注意的地方 228

6.2 U盘病毒防火墙的开发 228

6.2.1 U盘病毒防火墙的功能及实现技术 228

6.2.2 U盘病毒防火墙的代码实现 229

实例6.1全盘检测AutoRun.inf文件 229

实例6.2单个磁盘的扫描检测程序 229

实例6.3删除病毒文件 231

实例6.4格式化磁盘 231

实例6.5调用System函数格式化磁盘 232

实例6.6备份文件 232

实例6.7增加注册表启动项 235

实例6.8禁止系统自动播放功能 235

6.3小结 237

第7章 攻防的高难度的动作 238

7.1 Rootkit与系统内核功能 238

7.1.1 Rootkit简介 238

7.1.2 Rootkit相关的系统功能 238

7.1.3 Rootkit的分类及实现 239

实例7.1 IRPS形式的Rootkit编码实现 241

7.2 Rootkit对抗杀毒软件 243

7.2.1增加空节来感染PE文件 244

实例7.2给程序增加空字节 244

7.2.2通过Rootkit来绕过KIS 7.0的网络监控程序 251

实例7.3编程绕过KIS 252

7.2.3 HIV绕过卡巴斯基主动防御的方法 253

实例7.4 HIV绕过卡巴斯基 253

7.2.4关于进程PEB结构的修改实现 255

实例7.5进程PEB结构的修改实现 255

实例7.6修改PEB信息 258

7.2.5结束AVP的批处理 259

实例7.7结束AVP的批处理程序 259

7.3 Rootkit程序实例 262

实例7.8 RootKit程序保护文件功能 262

实例7.9上层应用程序调用sys驱动 268

7.4小结 270

第8章 没开发过自己的软件,怎么成大师 271

8.1远程控制软件简介 271

8.1.1远程控制软件的形式 271

8.1.2远程控制软件的特点 272

8.2远程控制软件的功能 273

8.2.1反弹连接功能 273

8.2.2动态更新IP功能 273

8.2.3详细的计算机配置信息的获取 274

8.2.4进程管理功能 274

8.2.5服务管理功能 274

8.2.6文件管理功能 275

8.2.7远程注册表管理 275

8.2.8键盘记录 275

8.2.9被控端的屏幕截取以及控制 276

8.2.10视频截取 276

8.2.11语音监听 276

8.2.12远程卸载 276

8.2.13分组管理 276

8.3技术指标 276

8.3.1隐蔽通信 276

8.3.2服务器端加壳压缩 277

8.3.3程序自身保护技术 281

8.3.4感染系统功能 282

8.4小结 282

第9章 黑客也要懂软件工程 283

9.1设计远程控制软件连接方式 283

9.1.1.典型的C/S型木马连接方式 283

9.1.2反弹型木马连接 284

9.2基本传输结构的设计 284

9.2.1基本信息结构 284

实例9.1定义控被控上报基本信息结构 285

9.2.2临时连接结构 285

实例9.2定义临时通信连接结构 285

9.2.3进程通信结构 285

实例9.3定义进程通信结构 286

9.2.4设计结构成员变量占用空间的大小 286

9.3命令调度过程的结构设计 287

9.3.1设计进程传递的结构 287

实例9.4定义进程结构变量 287

9.3.2优化结构成员变量占用空间的大小 287

9.3.3传输命令结构体定义 288

实例9.5构建传输命令结构 288

9.3.4传输命令结构的设计 288

实例9.6定义传输命令结构预定义的宏 288

实例9.7进程管理命令的代码实现 290

实例9.8双击鼠标事件功能实现 294

实例9.9进程信息管理及显示客户端 296

实例9.10 CProcManageDlg类中的处理过程 297

实例9.11客户端调用CProcManageDlg类 297

9.4小结 298

第10章 吃透开发基础功能 299

10.1反弹端口和IP自动更新 299

10.1.1反弹端口原理 299

10.1.2更新IP模块代码实现 301

实例10.1定义FTP连接信息 301

实例10.2生成IP地址更新文件 301

实例10.3 FTP连接编程实现 302

10.2基本信息的获得 303

10.2.1 CGetHDSerial类获得硬盘序列号 303

实例10.4 CGetHDSerial类头文件宏定义 303

实例10.5 CGetHDSerial类头文件结构定义 303

实例10.6 CGetHDSerial类的方法声明 305

实例10.7 CGetHDSerial类的方法实现 306

实例10.8 GetHDSerial方法实现 309

实例10.9字符转换函数 310

实例10.10 WinNTReadIDEHDSerial()函数实现 312

实例10.11 WinNTReadSCSIHDSerial()函数的实现 313

实例10.12 WinNTGetIDEHDInfo()函数的实现 315

10.2.2获得服务器端计算机的基本信息 315

实例10.13 GetClientSystemInfo()获取计算机基本信息 316

10.3 IP地址转换物理位置 318

10.3.1 QQWry.dat基本结构 318

10.3.2了解文件头 319

10.3.3了解记录区 319

10.3.4设计的理由 321

10.3.5 IP地址库操作类 322

实例10.14 IP地址库操作类的头文件 322

实例10.15 IP地址库操作函数的实现 324

实例10.16 GetStartIPInfo()函数的实现 325

实例10.17 GetRecordCount()和GetStr()的实现 327

实例10.18 GetCountryLocal()函数的实现 328

实例10.19 GetStr)和SaveToFile()函数的实现 329

实例10.20 IP2Add()函数实现IP地址到物理地址的转换 330

实例10.21 IP地址检索函数GetIndex()的实现 330

实例10.22 GetSIP()和IP2D WORD()函数的实现 332

实例10.23测试函数Test()的实现 333

10.4小结 335

第11章 让软件成型 336

11.1进程管理 336

11.1.1 Windows自带的任务管理器 336

11.1.2进程管理实现的原理 337

11.1.3进程管理相关API函数介绍 337

11.1.4代码实现进程管理功能 339

实例11.1进程结束编码实现 339

实例11.2服务器端显示相关信息 341

实例11.3界面初始化的代码实现 342

实例11.4初始化进程及客户端枚举进程功能编码实现 342

11.2文件管理 345

11.2.1服务器端两个重要的函数 346

实例11.5服务器端两个重要的函数 346

11.2.2客户端对应的两个函数 348

实例11.6客户端两个重要的函数 348

11.3服务管理 351

11.3.1客户端代码 351

实例11.7服务管理功能客户端代码实现 351

11.3.2服务器端代码 352

实例11.8服务管理功能服务器端实现方式 352

11.4服务器端启动和网络更新 353

11.4.1服务启动工作函数 354

实例11.9服务启动函数的编码实现 354

11.4.2网络下载器的选择和代码实现 354

实例11.10 HttpDownload类代码 355

实例11.11 wininet.dll库编写下载者 379

11.4.3分析下载文件并且反弹连接 382

实例11.12分析下载文件和反弹连接 382

11.4.4上线设置 383

11.5远程cmdshell 385

11.5.1客户端代码 385

实例11.13远程cmdshell客户端代码 385

11.5.2服务器端代码 386

实例11.14远程cmdshell服务器端代码 386

11.6小结 387

第12章 版本迭代中增加软件功能 388

12.1屏幕捕捉 388

12.1.1屏幕捕捉程序结构 388

12.1.2远程屏幕控制服务器的代码实现 390

实例12.1远程屏幕控制 390

实例12.2屏幕控制客户端编码 394

12.2远程屏幕实现方式 397

12.2.1远程屏幕图像在网络上的传输过程 398

12.2.2屏幕抓取与传输方法及其改进实现 398

12.2.3屏幕图像数据流的压缩与解压缩 399

实例12.3监控端程序实现方法 399

实例12.4程序监听连接及显示连接数量的实现方式 402

实例12.5用户界面初始化及绘制 403

实例12.6连接显示及界面捕获等功能实现 404

实例12.7异或法捕获屏幕数据 406

实例12.8屏幕控制客户端编码实现 411

12.3键盘记录 415

12.3.1客户端执行代码 415

实例12.9键盘记录客户端编码 415

12.3.2服务器端执行代码 420

实例12.10键盘记录服务器端功能代码 420

12.4小结 421

第13章 根据新的需求扩展 422

13.1客户端历史记录提取与系统日志删除 422

实例13.1客户端历史记录提取 422

实例13.2删除日志功能的代码 424

13.2压缩功能的实现 424

实例13.3 zip压缩功能 424

13.3 DDoS攻击模块 425

13.3.1基本DDoS攻击模块 425

实例13.4 DDoS攻击模块 425

13.3.2 UDP攻击模块 428

实例13.5 UDP攻击模块 428

13.3.3 IGMP攻击模块 430

实例13.6 IGMP攻击模块 430

13.3.4 ICMP攻击模块 433

实例13.7 ICMP攻击模块的实现 433

13.3.5 HTTP攻击函数 435

实例13.8 HTTP攻击函数的实现方式 435

13.4 Socks5代理实现 437

实例13.9 Socks5编程实现 440

13.5视频监控模块开发 450

实例13.10视频监控模块编码实现 450

实例13.11视频捕捉功能调用 453

13.6涉密文件关键字查询 457

实例13.12涉密关键字查询 457

实例13.13遍历目录函数 458

实例13.14对比涉密字符串 460

实例13.15 Ul界面显示查询结果 461

实例13.16记录文件 461

13.7 ADSL拨号连接密码获取的原理 462

实例13.17 ADSL拨号连接密码获取的类 462

13.8小结 469

第14章 交付、优化和维护 470

14.1版本控制 470

14.1.1 SVN简介 470

14.1.2 SVN使用 470

14.2界面美化 473

14.2.1概论 473

14.2.2具体操作步骤 474

实例14.1代码中引用Skin++的皮肤库 474

14.2.3添加系统托盘 475

实例14.2建立菜单资源 475

实例14.3创建系统托盘图标 476

14.3小结 476

第15章 大师也要继续学习 477

15.1内网准入控制技术发展分析 477

15.1.1局域网准入控制技术发展分析 477

15.1.2可行的内网准入管理方案 478

15.1.3软件接入网关的原理 478

15.1.4软件接入网关的配置及实现 478

15.1.5硬件接入网关的原理 479

15.1.6硬件接入网关的认证程序流程 480

实例15.1认证通信结构 481

实例15.2程序认证流程 481

实例15.3接入网关的判断逻辑 482

15.1.7联动802.1x接入认证的流程 483

15.1.8 802.1x下的局域网准入控制方案 483

15.2网络蜘蛛在安全领域的应用 485

15.2.1网络蜘蛛的工作原理 485

15.2.2简单爬虫的代码实现 486

实例15.4简单爬虫程序代码实现 487

实例15.5 HTTP访问线程 487

实例15.6相关辅助函数 491

15.3 SSDT及其恢复 492

15.3.1什么是SSDT 492

15.3.2编程恢复SSDT 493

实例15.7编程恢复SSDT 493

15.4小结 502