黑客攻防技术宝典-系统实战篇-(第2版)

价格 79.00对比
发货 广东东莞市
销量 暂无
评价 已有 0 条评价
人气 已有 4 人关注
数量
+-
库存100
 
联系方式
加关注0

图书资料维护组

VIP   VIP会员第1年
资料通过认证
保证金未缴纳

内容简介

《黑客攻防技术宝典:系统实战篇(第2版)》由世界安全专家亲自执笔,详细阐述了系统安全、应用程序安全、软件破解、加密解密等安全领域的核心问题,并用大量的实例说明如何检查Windows、Linux、Solaris等流行操作系统中的安全漏洞和Oracle等数据库中的安全隐患。  《黑客攻防技术宝典:系统实战篇(第2版)》适用于所有计算机安全领域的技术人员和管理人员以及对计算机安全感兴趣的爱好者。

目录

第一部分 破解入门:x86上的Linux
第1章 写在前面 2
1.1 基本概念 2
1.1.1 内存管理 3
1.1.2 汇编语言 4
1.2 识别汇编指令里的C和C++代码 5
1.3 小结 7

第2章 栈溢出 8
2.1 缓冲区 8
2.2 栈 10
2.3 栈上的缓冲区溢出 13
2.4 有趣的转换 17
2.5 利用漏洞获得根特权 20
2.5.1 地址问题 21
2.5.2 NOP法 26
2.6 战胜不可执行栈 28
2.7 小结 31

第3章 shellcode 32
3.1 理解系统调用 32
3.2 为exit()系统调用写shellcode 34
3.3 可注入的shellcode 37
3.4 派生shell 39
3.5 小结 46

第4章 格式化串漏洞 47
4.1 储备知识 47
4.2 什么是格式化串 47
4.3 什么是格式化串漏洞 49
4.4 利用格式化串漏洞 52
4.4.1 使服务崩溃 53
4.4.2 信息泄露 54
4.5 控制程序执行 59
4.6 为什么会这样 67
4.7 格式化串技术概述 67
4.8 小结 69

第5章 堆溢出 70
5.1 堆是什么 70
5.2 发现堆溢出 71
5.2.1 基本堆溢出 72
5.2.2 中级堆溢出 77
5.2.3 堆溢出 83
5.3 小结 84

第二部分 其他平台:Windows、Solaris、OS X和Cisco
第6章 Windows操作系统 86
6.1 Windows和Linux有何不同 86
6.2 堆 88
6.3 DCOM、DCE-RPC的优缺点 90
6.3.1 侦察 91
6.3.2 破解 93
6.3.3 令牌及其冒用 93
6.3.4 Win32平台的异常处理 95
6.4 调试Windows 96
6.4.1 Win32里的bug 96
6.4.2 编写Windows shellcode 97
6.4.3 Win32 API黑客指南 97
6.4.4 黑客眼中的Windows 98
6.5 小结 99

第7章 Windows shellcode 100
7.1 句法和过滤器 100
7.2 创建 101
7.2.1 剖析PEB 102
7.2.2 分析Heapoverflow.c 102
7.3 利用Windows异常处理进行搜索 116
7.4 弹出shell 121
7.5 为什么不应该在Windows上弹出shell 122
7.6 小结 122

第8章 Windows溢出 123
8.1 栈缓冲区溢出 123
8.2 基于帧的异常处理程序 123
8.3 滥用Windows 2003 Server上的基于帧的异常处理 127
8.3.1 滥用已有的处理程序 128
8.3.2 在与模块不相关的地址里寻找代码段,从而返回缓冲区 129
8.3.3 在没有Load Configuration Directory的模块的地址空间里寻找代码段 130
8.3.4 关于改写帧处理程序的说明 131
8.4 栈保护与Windows 2003 Server 131
8.5 堆缓冲区溢出 136
8.6 进程堆 136
8.6.1 动态堆 136
8.6.2 与堆共舞 136
8.6.3 堆是如何工作的 137
8.7 破解堆溢出 140
8.7.1 改写PEB里指向RtlEnter CriticalSection的指针 140
8.7.2 改写指向未处理异常过滤器的指针 146
8.7.3 修复堆 152
8.7.4 堆溢出的其他问题 154
8.7.5 有关堆的总结 154
8.8 其他的溢出 154
8.8.1 .data区段溢出 154
8.8.2 TEBPEB溢出 156
8.9 破解缓冲区溢出和不可执行栈 156
8.10 小结 161

第9章 战胜过滤器 162
9.1 为仅接受字母和数字的过滤器写破解代码 162
9.2 为使用Unicode的过滤器写破解代码 165
9.2.1 什么是Unicode 165
9.2.2 从ASCII转为Unicode 166
9.3 破解Unicode漏洞 166
9.4 百叶窗法 168
9.5 译码器和译码 171
9.5.1 译码器的代码 172
9.5.2 在缓冲区地址上定位 173
9.6 小结 174

第10章 Solaris破解入门 175
10.1 SPARC体系结构介绍 175
10.1.1 寄存器和寄存器窗口 176
10.1.2 延迟槽 177
10.1.3 合成指令 177
10.2 SolarisSPARC shellcode基础 178
10.2.1 自定位和SPARC shellcode 1

摘要与插图

为了理解本书的大部分内容,我们还必须掌握汇编语言,尤其是IA32上的汇编语言。原因有三:一是本书中所举的例子大部分都是用IA32汇编语言编写的;二是在寻找bug的过程中,我们需要阅读并理解汇编指令;三是在大多数利用安全漏洞的过程中,我们需要自己编写(或修改已存在的)汇编程序。
  除IA32外,熟知其他的硬件体系结构也很重要(只是破解起来稍微有些难度),因此,我们在书中用了几章介绍怎样在非IA32平台上发现和利用漏洞。我们建议:如果你打算在某种硬件平台上研究安全问题,那么一定要牢固掌握汇编语言(尤其是你选择的硬件结构体系的汇编语言),这对你的帮助将大。
  如果在此之前,你没有接触过汇编语言,那么我建议你先从数字系统(是十六进制)、数据大小、数值符号表示等内容学起,这些内容在大多数大学计算机体系架构教材里都可以找到。
  寄存器
  要想发现并利用漏洞,一定要熟悉IA32寄存器以及怎样用汇编指令操作它们。可以用汇编指令访问(读、写)寄存器。
  寄存器是存储器,考虑到性能的因素,通常直接把寄存器和总线连在一起。现代计算机系统在执行操作时要使用寄存器,一般用汇编指令来操作寄存器。从应用的角度可以把寄存器分为4类:
  通用寄存器
  段寄存器
  控制寄存器
  其他寄存器
举报收藏 0
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  版权声明  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2021111040号