【推荐语】
1.美亚全,10余年,销量10余万册; 2.随书附的Linux环境,供读者编程和调; 3.本书从黑客角度介绍了C编程的基础知识; 4.不仅介绍了如何运行现有的漏洞,还解释了神秘的黑客技术是如何工作的; 5.众多知名技术媒体和平台联袂。 所谓黑客之道,指的是创造地解决问题的艺术,无论这意味着是独辟蹊径解决了一个难题,还是使用编程技术来发掘漏洞。尽管很多人都自称黑客,但却很少有人具有坚实的技术基础来真正推动黑客之道。 本书不仅介绍了如何运行现有的漏洞,还解释了神秘的黑客技术是如何工作的。本书从黑客角度介绍了C编程的基础知识。 与本书配套的光盘资源(可从异步社区)提供了一个完整的Linux编程和调试环境,从而使我们免于修改自己的操作系统。通过在这个Linux环境中练中的示例,我们可以在掌握理论知识的同时,自行探索黑客技术。通过亲自动手调试代码、溢出缓冲区、劫持网络通信、绕过保护机制、发掘利用密码弱点,我们甚可以发现新的漏洞。 本书介绍了如下内容: 使用C语言、汇编语言和shell脚本编写程序; 使用缓冲区溢出和格式字符串来破坏系统内存,使其运行任意代码; 使用调试器来检查处理器寄存器和系统内存,以便理解所发生的事情; 绕过常见的措施,比如不可执行的堆栈和入侵检测系统; 使用端口绑定或回连shellcode来访问服务器,并更改服务器的日志记录行为来藏匿自身; 重定向网络流量、隐藏开放的端口自并劫持TCP连接; 使用FMS攻击破解加密的无线流浪,并使用密码概率矩阵来加速攻击。 黑是在不断地突破界限,调查未知事物并提升其技能。即使你还不知道如行编程,也可以通过本书学到编程、机器架构、网络通信和黑客技术等知识。将这些知识与本书提供的Linux环境接合起来,尽情释放你的创造力吧!
【目录】
第1章 简介
第2章 编程
2.1 编程的含义
2.2 伪代码
2.3 控制结构
2.3.1 If-Then-Elr/>
2.3.2 While/Until循环
2.3.3 For循环
2.4 更多编程基本概念
2.4.1 变量
2.4.2 算术运算符
2.4.3 比较运算符
2.4.4 函数
2.5 动手练r/>
2.5.1 了解全局
2.5.2 x86处理器
2.5.3 汇编语言
2.6 接着学知识
2.6.1 字符串
2.6.2 signed、unsigned、long和short
2.6.3 指针
2.6.4 格式化字符串
2.6.5 强制类型转换
2.6.6 命令行参数
2.6.7 变量作用域
2.7 内存分段
2.7.1 C语言中的内存分段
2.7.2 使用堆
2.7.3 对malloc(行错误检查
2.8 运用基础知识构建程序
2.8.1 文件访问
2.8.2 文件权限
2.8.3 用户ID
2.8.4 结构
2.8.5 函数指针
2.8.6 伪数
2.8.7 猜扑克游戏
第3章 漏洞发掘
3.1 通用的漏洞发掘技术
3.2 缓冲区溢出
3.3 尝BASH
3.4 其他内存段中的溢出
3.4.1 一种基本的基于堆的溢出
3.4.2 函数指针溢出
3.5 格式化字符串
3.5.1 格式化参数
3.5.2 格式化参数漏洞
3.5.3 读取任意内存地址的内容
3.5.4 向任意内存地址写入
3.5.5 直接参数访问
3.5.6 使用short写入
3.5.7 使用.dtorr/>
3.5.8 notesearch程序的另一个漏洞
3.5.9 重写全局偏移表
第4章 网络
4.1 OSI模型
4.2 套接字
4.2.1 套接字函数
4.2.2 套接字地址
4.2.3 网络字节顺序
4.2.4 Inter地址转换
4.2.5 一个简单的服务器示例
4.2.6 一个Web客户端示例
4.2.7 一个微型Web服务器
4.3 分析较低层的处理细节
4.3.1 数据链路层
4.3.2 网络层
4.3.3 传输层
4.4 网络
4.4.1 原始套接字
4.4.2 libpcap器
4.4.3 对行解码
4.4.4 活动
4.5 拒绝服务
4.5.1 SYN泛洪
4.5.2 死亡之ping
4.5.3 泪滴攻击
4.5.4 ping泛洪
4.5.5 放大攻击
4.5.6 分布式DoS泛洪
4.6 TCP/IP劫持
4.6.1 RST劫持
4.6.2 持续劫持
4.7 端口扫描
4.7.1 秘密SYN扫描
4.7.2 FIN、X-mas和null扫描
4.7.3 欺骗诱饵
4.7.4 空闲扫描
4.7.5 主动防御(shroud)
4.8 发动攻击
4.8.1 利用GD行分析
4.8.2 投弹
4.8.3 将shellcode绑定到端口
第5章 shellcode
5.1 对比汇编语言和C语言
5.2 开始编写shellcode
5.2.1 使用堆栈的汇编语言指令
5.2.2 使用GD行分析
5.2.3 删除null字节
5.3 衍生shell的shellcode
5.3.1 特权问题
5.3.2一步缩短代码
5.4 端口绑定shellcode
5.4.1 标准文件描述符
5.4.2 分支控制结构
5.5 反向连接shellcode
第6章 对策
6.1 用于检测入侵的对策
6.2 系统守护程序
6.2.1 信号简介
6.2.2 tinyweb守护程序
6.3 攻击工具
6.4 日志文件
6.5 忽略明显征兆
6.5.1 分行
6.5.2 恢复原样
6.5.3 程
6.6 不错伪装
6.6.1 伪造记录的IP地址
6.6.2 无日志记录的漏洞发掘
6.7 完整的基础设施
6.8 偷运有效载荷
6.8.1 字符串编码
6.8.2 隐藏NOP雪橇的方式
6.9 缓冲区约束
6.10 加固对策
6.11 不可执行堆栈
6.11.1 ret2libc
6.11.2入system()
6.12 排列的堆栈空间
6.12.1 用BASH和GD行研究
6.12.2 探测linux-gate
6.12.3 运用知识
6.12.4 次尝试
6.12.5 多次尝试终获
第7章 密码学
7.1 信息理论
7.1.1 保证
7.1.2 一次密码簿
7.1.3 量子密钥分发
7.1.4 计算
7.2 算法运行时间
7.3 对称加密
7.4 非对称加密
7.4.1 RSA
7.4.2 PeterShor的量子因子算法
7.5 混合密码
7.5.1 中间人攻击
7.5.2 不同的SSH协议主机指纹
7.5.3 模糊指纹
7.6 密码攻击
7.6.1 字典攻击
7.6.2 穷举攻击
7.6.3 散列查找表
7.6.4 密码概率矩阵
7.7 无线802.11b加密
7.7.1 WEP
7.7.2 RC4流密码
7.8 WEP攻击
7.8.1 离线攻击
7.8.2 密钥流重用
7.8.3 基于IV的解密字典表
7.8.4 IP重定向
7.8.5 FMS攻击
第8章 写在后
返回顶部