描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787115535559
1.美亚全五星好评,畅销10余年,销量10余万册; 2.随书附赠配套完整的Linux环境,供读者编程和调试使用; 3.本书从黑客角度介绍了C编程的基础知识; 4.不仅介绍了如何运行现有的漏洞,还解释了神秘的黑客技术是如何工作的; 5.众多知名技术媒体和平台联袂推荐。 所谓黑客之道,指的是创造性地解决问题的艺术,无论这意味着是独辟蹊径解决了一个难题,还是使用编程技术来发掘漏洞。尽管很多人都自称黑客,但却很少有人具有坚实的技术基础来真正推动黑客之道。 本书不仅介绍了如何运行现有的漏洞,还解释了神秘的黑客技术是如何工作的。本书从黑客角度介绍了C编程的基础知识。 与本书配套的光盘资源(可从异步社区下载)提供了一个完整的Linux编程和调试环境,从而使我们免于修改自己的操作系统。通过在这个Linux环境中练习本书中的示例,我们可以在掌握理论知识的同时,自行探索黑客技术。通过亲自动手调试代码、溢出缓冲区、劫持网络通信、绕过保护机制、发掘利用密码弱点,我们甚至可以发现新的漏洞。 本书介绍了如下内容: 使用C语言、汇编语言和shell脚本编写程序; 使用缓冲区溢出和格式字符串来破坏系统内存,使其运行任意代码; 使用调试器来检查处理器寄存器和系统内存,以便彻底理解所发生的事情; 绕过常见的安全措施,比如不可执行的堆栈和入侵检测系统; 使用端口绑定或回连shellcode来访问服务器,并更改服务器的日志记录行为来藏匿自身; 重定向网络流量、隐藏开放的端口自并劫持TCP连接; 使用FMS攻击破解加密的无线流浪,并使用密码概率矩阵来加速暴力攻击。 黑客总是在不断地突破界限,调查未知事物并提升其技能。即使你还不知道如何进行编程,也可以通过本书学到编程、机器架构、网络通信和黑客技术等知识。将这些知识与本书提供的Linux环境接合起来,尽情释放你的创造力吧!
作为一本黑客破解方面的畅销书和长销书,《黑客之道:漏洞发掘的艺术(第2版)》完全从程序开发的角度讲述黑客技术,虽然篇幅不长,但内容丰富,涉及了缓冲区、堆、栈溢出、格式化字符串的编写等编程知识,网络嗅探、端口扫描、拒绝服务攻击等网络知识,以及信息论、密码破译、各种加密方法等密码学方面的知识。 通过阅读《黑客之道:漏洞发掘的艺术(第2版)》,读者可以了解黑客攻击的精髓、各种黑客技术的作用原理,甚至利用并欣赏各种黑客技术,使自己的网络系统的安全性更高,软件稳定性更好,问题解决方案更有创造性。 值得一提的是,书中的代码示例都是在基于运行Linux系统的x86计算机上完成的,与本书配套的LiveCD(可从异步社区下载)提供了已配置好的Linux环境,鼓励读者在拥有类似结构的计算机上进行实践。读者将看到自己的工作成果,并不断实验和尝试新的技术,而这正是黑客所崇尚的精神。 《黑客之道:漏洞发掘的艺术(第2版)》适合具有一定编程基础且对黑客技术感兴趣的读者阅读。
第 1章 简介1
第 2章 编程 5
2.1 编程的含义 5
2.2 伪代码 6
2.3 控制结构 7
2.3.1 If-Then-Else 7
2.3.2 While Until循环 9
2.3.3 For循环 9
2.4 更多编程基本概念 10
2.4.1 变量 11
2.4.2 算术运算符 11
2.4.3 比较运算符 13
2.4.4 函数 15
2.5 动手练习 18
2.5.1 了解全局 19
2.5.2 x86处理器 22
2.5.3 汇编语言 23
2.6 接着学习基础知识 36
2.6.1 字符串 36
2.6.2 signed、unsigned、long和short 40
2.6.3 指针 41
2.6.4 格式化字符串 46
2.6.5 强制类型转换 49
2.6.6 命令行参数 56
2.6.7 变量作用域 60
2.7 内存分段 68
2.7.1 C语言中的内存分段 73
2.7.2 使用堆 75
2.7.3 对malloc()进行错误检查 78
2.8 运用基础知识构建程序 79
2.8.1 文件访问 80
2.8.2 文件权限 85
2.8.3 用户ID 86
2.8.4 结构 94
2.8.5 函数指针 98
2.8.6 伪随机数 99
2.8.7 猜扑克游戏 100
第3章 漏洞发掘 113
3.1 通用的漏洞发掘技术 115
3.2 缓冲区溢出 116
3.3 尝试使用BASH 131
3.4 其他内存段中的溢出 147
3.4.1 一种基本的基于堆的溢出 148
3.4.2 函数指针溢出 153
3.5 格式化字符串 166
3.5.1 格式化参数 166
3.5.2 格式化参数漏洞 168
3.5.3 读取任意内存地址的内容 170
3.5.4 向任意内存地址写入 171
3.5.5 直接参数访问 178
3.5.6 使用short写入 181
3.5.7 使用.dtors 182
3.5.8 notesearch程序的另一个漏洞 187
3.5.9 重写全局偏移表 189
第4章 网络 193
4.1 OSI模型 193
4.2 套接字 195
4.2.1 套接字函数 196
4.2.2 套接字地址 198
4.2.3 网络字节顺序 200
4.2.4 Internet地址转换 200
4.2.5 一个简单的服务器示例 201
4.2.6 一个Web客户端示例 204
4.2.7 一个微型Web服务器 210
4.3 分析较低层的处理细节 214
4.3.1 数据链路层 215
4.3.2 网络层 216
4.3.3 传输层 218
4.4 网络嗅探 221
4.4.1 原始套接字嗅探 223
4.4.2 libpcap嗅探器 225
4.4.3 对层进行解码 227
4.4.4 活动嗅探 237
4.5 拒绝服务 250
4.5.1 SYN泛洪 250
4.5.2 死亡之ping 254
4.5.3 泪滴攻击 255
4.5.4 ping泛洪 255
4.5.5 放大攻击 255
4.5.6 分布式DoS泛洪 256
4.6 TCP IP劫持 256
4.6.1 RST劫持 257
4.6.2 持续劫持 262
4.7 端口扫描 262
4.7.1 秘密SYN扫描 263
4.7.2 FIN、X-mas和null扫描 263
4.7.3 欺骗诱饵 264
4.7.4 空闲扫描 264
4.7.5 主动防御(shroud) 266
4.8 发动攻击 272
4.8.1 利用GDB进行分析 273
4.8.2 投弹 275
4.8.3 将shellcode绑定到端口 278
第5章 shellcode 281
5.1 对比汇编语言和C语言 281
5.2 开始编写shellcode 286
5.2.1 使用堆栈的汇编语言指令 286
5.2.2 使用GDB进行分析 289
5.2.3 删除null字节 290
5.3 衍生shell的shellcode 295
5.3.1 特权问题 299
5.3.2 进一步缩短代码 302
5.4 端口绑定shellcode 303
5.4.1 复制标准文件描述符 308
5.4.2 分支控制结构 310
5.5 反向连接shellcode 315
第6章 对策 320
6.1 用于检测入侵的对策 320
6.2 系统守护程序 321
6.2.1 信号简介 322
6.2.2 tinyweb守护程序 325
6.3 攻击工具 329
6.4 日志文件 335
6.5 忽略明显征兆 337
6.5.1 分步进行 337
6.5.2 恢复原样 342
6.5.3 子进程 348
6.6 高级伪装 349
6.6.1 伪造记录的IP地址 349
6.6.2 无日志记录的漏洞发掘 354
6.7 完整的基础设施 357
6.8 偷运有效载荷 361
6.8.1 字符串编码 362
6.8.2 隐藏NOP雪橇的方式 365
6.9 缓冲区约束 366
6.10 加固对策 379
6.11 不可执行堆栈 380
6.11.1 ret2libc 380
6.11.2 进入system() 380
6.12 随机排列的堆栈空间 382
6.12.1 用BASH和GDB进行研究 384
6.12.2 探测linux-gate 388
6.12.3 运用知识 391
6.12.4 第 一次尝试 392
6.12.5 多次尝试终获成功 393
第7章 密码学 396
7.1 信息理论 397
7.1.1 安全 397
7.1.2 一次性密码簿 397
7.1.3 量子密钥分发 397
7.1.4 计算安全性 398
7.2 算法运行时间 399
7.3 对称加密 400
7.4 非对称加密 402
7.4.1 RSA 402
7.4.2 Peter Shor的量子因子算法 405
7.5 混合密码 406
7.5.1 中间人攻击 407
7.5.2 不同的SSH协议主机指纹 411
7.5.3 模糊指纹 414
7.6 密码攻击 419
7.6.1 字典攻击 420
7.6.2 穷举暴力攻击 423
7.6.3 散列查找表 424
7.6.4 密码概率矩阵 425
7.7 无线802.11b加密 435
7.7.1 WEP 435
7.7.2 RC4流密码 436
7.8 WEP攻击 437
7.8.1 离线暴力攻击 437
7.8.2 密钥流重用 438
7.8.3 基于IV的解密字典表 439
7.8.4 IP重定向 439
7.8.5 FMS攻击 440
第8章 写在后 451
本书第2版的赞誉 本书相当稀缺罕见,值得对安全感兴趣的任何人员阅读。 ——SLASHDOT 本书做了一个卓越的事情,它将C语言编程、汇编语言编程、漏洞发现和发掘利用整合在一起。如果你只能选择一本图书来学习,请选择本书! ——DINO DAI ZOVI 本书鼓励大家动手操作。每章的重点都是一系列示例外加措辞精良的指导。本书并不曲高和寡,它没有向读者呈现大量的黑客理论知识,而是将重心放在了示例的实用性上。 ——THE REGISTER 本书对堆和堆栈溢出的介绍相当清晰易
评论
还没有评论。