网上购物 货比三家
您现在的位置:快乐比价网 > 图书 > 计算机与网络 > 安全与加密 > 商品详情

软件剖析――代码攻防之道

分享到:
软件剖析――代码攻防之道

最 低 价:¥29.90

定 价:¥0.00

作 者:Greg Hoglund,Gary McGraw

出 版 社:清华大学出版社

出版时间:2005 年1月

I S B N:730210445X

价格
缺货
价格
29.90元
价格
31.50元
价格
34.70元
价格
35.91元

商品详情

编辑推荐

本书是第15届Jolt大奖入围作品,由两名软件专家写出的一本具有启发意义的书,它进入了最聪明和最邪恶的破坏者的思想,并揭示了这些人的思维方式。本书应该是一本基本读物——所有需要安全的人都应仔细阅读!

内容简介

本书详细解释了恶意的软件攻击者所采用的技术,描述了各种攻击模式,并且展示了如何发现新的薄弱环节。作者讨论了实现bug和架构缺陷的区别、逆向工程工具、服务器/客户机软件的脆弱性、恶意输入攻击、缓冲区溢出等内容,并且介绍了一个简单的windows xp内核rootkit。本书要求读者具备全面的系统硬件、操作系统软件结构、网络协议和编程(特别是c/c++和java)知识。本书是面向有意成为软件安全专家的指南,适用于对编程有一定经验的软件设计师和软件测试师。
   软件是如何可被码解的?攻击者是如何有目地地破解软件的?为什么防火墙、指令检测系统以及反病毒软件不能将黑客们拒之门外?什么工具可以用来破解软件?本书为您提供了详细的答案。书中提供了大量黑客们破解软件的示例,包括实际攻击、攻击模式、攻击工具以及相关破解技术,并全面阐述了逆向工程、典型的对服务器软件的攻击、对客户端软件的攻击、制造恶意输入的技术,以及缓冲区溢出的技术细节等内容。在深入阅读本书后,您就可洞悉软件世界的激烈斗争,成为安全领域的专爱。

作者简介

Greg Hoglund博士十几年来一直是软件安全领域的领军人物。他创建并记录了第一个基于Windows NT的rootkit,可以通过站点www.rootkit,com找到相关内容。
Gary McGraw博士Cigital公司的CTO,也是软件和应用程序安全领域的世界级权威。McGraw博士与其他作者合著了Java Security(Wiley,1996)和Bui/ding Secure Software(Addison-Wesley,2002)。他同时还兼任一些大公司的顾问,致力于软件安全的科学研究,并提供安全建议。
邓劲生,计算机专业博士。先后在国防科技大学网络中心、.. << 查看详细

目录

第1章 软件——问题的根源
1.1 软件简史
1.1.1 软件和信息战
1.1.2 数字谍报手段
1.2 不良软件很普遍
1.2.1 nasa(美国国家航空和宇宙航行局)的火星登陆器
1.2.2 丹佛机场行李管理系统
1.2.3 鱼鹰mv-22
1.2.4 美国军事系统自伤
1.2.5 microsoft和“爱”bug
1.3 问题三组合
1.3.1 复杂性
1.3.2 代码行数越多,bug就越多
1.3.3 可扩展性
1.3.4 连通性
1.3.5 结论
1.4 软件的未来
1.4.1 短期未来:2003—2004
1.4.2 中期未来:2005—2007
1.4.3 长期未来:2008—2010
.1.4.4 十条思路
1.5 什么是软件安全
1.6 小结
第2章 攻击模式
2.1 分类
2.1.1 bug
2.1.2 缺陷
2.1.3 脆弱点
2.1.4 设汁中的脆弱点
2.2 开放系统
2.2.1 风险
2.2.2 潜在损失
2.2.3 暴露度与力度
2.2.4 实际风险
2.3 一次攻击历程
2.3.1 攻击者的观点
2.3.2 为什么不能信任用户
2.3.3 “开锁”
2.3.4 一个简单的示例
2.4 攻击模式:灾难性的蓝图
2.4.1 破解、攻击和攻击者
2.4.2 攻击模式
2.4.3 代码注入
2.4.4 活动区
2.4.5 输出事件
2.4.6 反馈事件
2.5 攻击示例:对microsoft c++编译器的攻击
2.5.1 攻击的技术细节
2.5.2 对microsoft栈保护的概述
2.5.3 绕过microsoft的安全特性
2.5.4 解决方案
2.5.5 攻击回顾
2.6 应用攻击模式
2.6.1 网络扫描
2.6.2 操作系统辨识
2.6.3 端口扫描
2.6.4 路径追踪和区文件传输
2.6.5 目标组件
2.6.6 选择攻击模式
2.6.7 环境缺陷的影响
2.6.8 间接使用攻击
2.6.9 种植后门
2.7 攻击模式工具箱
2.8 小结
第3章 逆向工程和程序理解
3.1 进入逻辑的“房屋”
3.1.1 逆向工程
3.1.2 为什么需要逆向工程
3.2 逆向工程是非法的吗
3.3 逆向工程的概念及其使用的工具
3.3.1 调试程序
3.3.2 缺陷注入工具
3.3.3 反汇编工具
3.3.4 反编译器
3.4 逆向工程的方法
3.4.1 白箱分析
3.4.2 黑箱分析
3.4.3 灰箱分析
3.4.4 使用灰箱技术在microsoft的sql server 7中寻找脆弱点
3.5 逆向方法
3.5.1 输入追踪
3.5.2 软件版本的差异
3.5.3 代码覆盖
3.5.4 内核访问
3.5.5 共享缓冲区中的数据泄漏
3.5.6 对访问请求的审计
3.5.7 使用自己的api资源
3.6 编写ida插件
3.7 对软件进行反编译和反汇编
3.8 实练反编译:逆向helpctr.exe
3.8.1 bug报告
3.8.2 调试记录
3.9 自动、成批地审计脆弱点
3.10 编写属于自己的破解工具
3.10.1 x86工具
3.10.2 基本的x86调试程序
3.10.3 断点
3.10.4 存储器的读写
3.10.5 调试多线程程序
3.10.6 枚举线程或进程
3.10.7 单步执行
3.10.8 修补
3.10.9 故障注入
3.10.10 进程快照
3.10.11 反汇编机器代码
3.11 编写基本的代码覆盖工具
3.12 小结
第4章 攻击服务器软件
4.1 可信任输入问题
4.2 权限提升问题
4.2.1 进程权限之间的信任
4.2.2 如果不以管理员的身份运行,一切就会崩溃
4.2.3 从不被信任的资源中读取数据的进程权限提升
4.2.4 使用提升权限的进程
4.3 寻找注入点
4.4 输入路径的追踪
4.4.1 使用基于solaris sparc二进制的gdb和ida-pro
4.4.2 设置断点和表达式
4.4.3 利用ida映射运行时存储器地址
4.4.4 将gdb附加到一个正在运行的进程
4.4.5 基于solaris使用truss以模拟目标软件
4.5 通过配置破解受信任的软件
4.5.1 审计直接可执行文件
4.5.2 了解当前工作目录
4.5.3 如果web服务器不执行cgi程序该怎么办
4.5.4 什么是不可执行的文件
4.5.5 策略的使用
4.6 特殊的技术和对服务器软件的攻击
4.6.1 技术:注入命令解释程序
4.6.2 技术:管道、端口和权限
4.6.3 技术:攻击文件系统
4.6.4 技术:操作环境变量
4.6.5 技术:利用无关变量
4.6.6 技术:利用不良会话认证
4.6.7 技术:蛮力会话id
4.6.8 技术:验证的多重路径
4.6.9 技术:不能检验错误代码
4.7 小结
第5章 攻击客户端软件
5.1 作为攻击目标的客户端程序
5.1.1 服务器控制客户端
5.1.2 软件蜜罐
5.2 混合信号
5.2.1 古老(但却相关)的历史
5.2.2 基本的混合数据使用
5.2.3 针对打印机的有趣的混合信号
5.2.4 linux中的混合终端字符注入
5.2.5 反射问题
5.3 跨站点脚本
5.4 客户端脚本和恶意代码
5.4.1 检查较脆弱的本地调用
5.4.2 web浏览器和activex
5.4.3 e-mail注入
5.5 基于内容的攻击
5.6 逆向攻击:利用客户端缓冲区溢出
5.7 小结
第6章 构造恶意输入
6.1 防御者的困惑
6.1.1 过滤器
6.1.2 通信系统
6.2 入侵检测
6.2.1 基于签名和基于异常的ids
6.2.2 疲于应付的ids
6.2.3 在ids上交替编码的效应
6.3 分割分析
6.3.1 windows的apispy
6.3.2 红点
6.4 追踪代码
6.4.1 从脆弱区回溯
6.4.2 死端和逃避
6.4.3 运行时追踪
6.4.4 速度中断
6.4.5 追踪缓冲区
6.4.6 跳步
6.4.7 内存页断点
6.4.8 boron标记符
6.5 反向分析程序代码
6.5.1 字符转换
6.5.2 字节操作
6.5.3 指针操作
6.5.4 空终止符
6.6 示例:通过“正门”逆向i-planet server 6.o
6.7 错误的分类
6.8 产生“等效”请求
6.8.1 映射api层
6.8.2 虚字符
6.8.3 等效元字符
6.8.4 转义元字符
6.8.5 字符转换
6.8.6 组合攻击
6.9 检测中毒
6.10 小结
第7章 缓冲区溢出
7.1 缓冲区溢出
7.1.1 栈的摧毁(为了有趣和有益)
7.1.2 遭到破坏的状态
7.2 病毒注入:再次利用输入
7.2.1 病毒注入的结束和攻击代码的开始
7.2.2 在目标中选择合适的代码地址
7.2.3 高地址区和低地址区
7.2.4 big endian和little endian表示方式
7.2.5 使用寄存器
7.2.6 使用内存中现有的代码或是数据块
7.3 缓冲区溢出与嵌入式系统
7.4 数据库缓冲区溢出
7.4.1 存储过程
7.4.2 命令行应用程序
7.4.3 数据库的客户端程序
7.5 缓冲区溢出和java
7.5.1 同时使用java和c/c++
7.5.2 存储过程和动态链接库
7.6 基于内容的缓冲区溢出
7.7 缓冲区溢出的截获审计和过滤器
7.8 环境变量引起的溢出
7.9 多重操作问题
7.10 发现潜在的缓冲区溢出
7.10.1 异常处理掩盖错误
7.10.2 使用反汇编
7.11 栈溢出
7.11.1 固定大小的缓冲区
7.11.2 不能自动添加空字符作为结束的函数
7.11.3 off-by-one空字符结束的函数
7.11.4 改写异常处理程序结构
7.12 内存管理中的计算错误
7.12.1 负数“等于”很大的正数
7.12.2 有符号数和无符号数的不匹配
7.12.3 有符号数和内存管理
7.13 格式化字符串的脆弱点
7.13.1 从内存中的任何一个地方输出数据
7.13.2 在代码中检测问题
7.14 堆溢出
7.15 缓冲区溢出和c++
7.16 攻击代码
7.16.1 定向
7.16.2 攻击代码的大小
7.16.3 使用硬编码的函数调用
7.16.4 使用动态指令跳转表
7.16.5 定位数据段
7.16.6 异或(xor)保护
7.16.7 校验和与散列加载
7.17 基于risc体系结构的攻击代码
7.17.1 分支延迟或者延迟槽
7.17.2 基于mips的攻击代码结构
7.17.3 mips指令
7.17.4 定向
7.17.5 在mips操作码中避免空字节
7.17.6 mips中的系统调用
7.17.7 sparc攻击代码结构
7.17.8 sparc寄存器窗口
7.17.9 sparc上的栈调用
7.17.10 嵌套在sparc中的函数调用
7.17.11 pa-risc攻击代码的结构
7.17.12 pa-risc上的栈调用
7.17.13 在hpux pa-risc上的栈溢出
7.17.14 pa-risc的内部空间分支
7.17.15 内部空间跳跃
7.17.16 定向
7.17.17 hpux的自解密攻击代码
7.17.18 aix/powerpc的攻击代码结构
7.17.19 定位
7.17.20 给powerpc命令解释程序代码披上盔甲
7.17.21 删除空字符
7.18 多平台的攻击代码
7.19 保护函数的prolog—epilog代码
7.19.1 击溃栈保护
7.19.2 击溃非可执行栈
7.20 小结
第8章 rootklt
8.1 破坏性的程序
8.1.1 什么是rootkit
8.1.2 什么是内核rootkit
8.1.3 内核rootkit及其受信任的计算基础
8.2 简单的windows xp内核rootkit
8.2.1 编写rootkit
8.2.2 checked编译环境
8.2.3 rootkit中的文件
8.2.4 建立环境
8.2.5 内核驱动程序
8.2.6 驱动程序的基本结构
8.2.7 使用驱动程序
8.2.8 允许卸载驱动程序
8.2.9 注册驱动程序
8.2.10 使用systemloadandcalllmage
8.3 钩子调用
8.3.1 隐藏进程
8.3.2 系统调用的钩子
8.3.3 基本钩子调用的结构
8.3.4 删除进程记录
8.3.5 另一种进程注入的方法
8.4 特洛伊可执行程序的重定向
8.4.1 重定向和tripwire问题
8.4.9 重定向驱动程
8.5 隐藏文件和目录
8.6 修补二进制代码
8.6.1 窥探补丁
8.6.2 修补nt内核以删除所有的安全保护
8.7 硬件病毒
8.7.1 读写硬件存储空间
8.7.2 示例:读/写键盘硬件
8.7.3 允许从eeprom读或写
8.7.4 cih
8.7.5 eeprom和定时
8.7.6 以太网的eeprom
8.7.7 串行eeprom和并行eeprom
8.7.8 烧毁硬件
8.7.9 制造商
8.7.10 通过通用闪存接口检测芯片
8.7.11示例:检测flash ram芯片
8.7.12 利用id模式或jedec id检测芯片
8.8 低级磁盘访问
8.8.1 读或写主引导记录
8.8.2 感染cd-rom
8.9 给驱动程序添加网络支持
8.9.1 使用ndis库
8.9.2 使接口处于混杂模式
8.9.3 寻找正确的网卡
8.9.4 为了安全而使用boron标记
8.9.5 添加交互式命令解释程序
8.10 中断
8.10.1 intel的中断请求(irq)结构
8.10.2 钩住中断描述符表(idt)
8.10.3 神秘的程序中断控制器(pic)
8.11 击键记录
8.11.1 linux下的击键记录
8.11.2 windows nt/2000/xp下的击键记录
8.11.3 键盘控制器芯片
8.12 高级rootkit专题
8.12.1使用rootkit作为调试器
8.12.2 禁用windows系统的文件保护功能
8.12.3 直接写物理存储器
8.12.4 内核缓冲区溢出
8.12.5 感染内核镜像
8.12.6 改变程序执行方向
8.12.7 检测rootkit
8.13 小结
附录a 攻击模式

商品评论(0条)

暂无评论!

您的浏览历史

loading 内容加载中,请稍后...