搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
反编译技术与软件逆向分析
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787118065466
  • 作      者:
    赵荣彩,庞建民,张靖博编著
  • 出 版 社 :
    国防工业出版社
  • 出版日期:
    2009
收藏
内容介绍
  《反编译技术与软件逆向分析》共分10章。第1章到第3章简要介绍了软件逆向分析技术的相关基础知识;第4章和第5章从反汇编和中间表示两个方面为反编译奠定基础;第6章到第9章针对反编译的若干关键技术展开详细介绍;第10章则为反编译测试相关的一些可用资源。全书以IA-64可执行代码为例进行讲解,但相关技术可以向其他平台推广。
  《反编译技术与软件逆向分析》可作为计算机软件专业本科高年级学生、硕士研究生的相关课程教科书或教学参考书,也可供从事软件逆向分析工作的工程技术人员参考。
展开
精彩书摘
  2.逆向分析加密算法
  加密系统往往与隐私有关:一个人传递给另一个人的信息可能并不想让其他人知道。可以粗略地将加密算法分为两组:有限加密算法和基于密钥的算法。有限加密算法好比一些孩子们玩的游戏:写给一个朋友一封信,信中的每个字母都经过向上或向下的若干次移动。有限加密算法的秘密在于算法本身,一旦算法被揭露,也就毫无秘密可言。由于逆向分析可以分析出加密或解密算法,因此有限加密算法只能提供非常脆弱的安全性。由于其算法也是保密的,因此逆向分析可以被看作是对算法的破解过程。
  另一方面,基于密钥的算法的秘密是密钥,即一些类似于数字的值,它们可以由某些算法来对信息进行加密和解密。在基于密钥的算法中,用户使用密钥对信息进行加密,并保证密钥的隐蔽性。这种算法通常是公开的,而仅需要保护密钥即可。由于算法是已知的,因此逆向分析变得毫无意义。为了对一条经过基于密钥算法加密的信息进行解密,可能需要以下3种途径:①获取密钥;②尝试所有可能的组合;③寻找算法中的缺陷,从而解析出密钥或最初的信息。
  尽管如此,对于基于密钥加密方法的逆向分析在某些方面却意义非凡。即便加密算法广为人知,特定的实现细节也会对程序提供的所有安全级别造成意想不到的影响。无论加密算法如何精巧,很小的实现错误也有可能使该算法提供的安全级别失效。而确认一个安全产品是否真正地实现一个加密算法只有两种途径:要么分析它的源代码(假定是可行的),要么进行逆向分析。
  3.数字版权管理
  现代计算机系统已经将大多数类型的具有版权的材料转变为数字信息,包括音乐、影视,甚至书籍。这些信息以前只能够通过具体的媒介获取,而现在可以通过数字化信息得到。这种趋势为用户提供了巨大的好处,也为版权拥有者和内容提供商带来了一些问题。对于用户来说,这意味着资料质量的提高,并且易于获取和管理。对于提供商来说,这使得他们能够以很低的费用提供高质量的内容,但更为重要的是,这种方式使得对内容流向的控制无法完成。
  数字化信息以难以想象的速度在流动,并且易于复制。这种流动性意味着一旦带有版权的资料到达用户手中,用户能够很容易地对其进行移动和复制,因此盗版也变得相当容易。通常软件公司通过在软件产品中嵌入复制保护技术防止被盗版,即通过在软件产品中嵌入代码片段来防止或限制用户对程序进行复制。
展开
目录
第1章 绪论
1.1 软件逆向分析
1.1.1 与安全相关的逆向分析
1.1.2 针对软件开发的逆向分析
1.1.3 本书的主要内容
1.2 软件逆向分析的历史
1.3 软件逆向分析的各个阶段
1.3.1 文件装载
1.3.2 指令解码
1.3.3 语义映射
1.3.4 相关图构造
1.3.5 过程分析
1.3.6 类型分析
1.3.7 结果输出
1.4 逆向分析框架
1.4.1 静态分析框架
1.4.2 动态分析框架
1.4.3 动静结合的分析框架

第2章 指令系统
2.1 指令系统概述
2.2 机器指令与汇编指令
2.2.1 机器指令
2.2.2 汇编指令
2.3 LA.6 4体系结构的特点
2.3.1 显式并行机制_
2.3.2 IA.64微处理器体系结构
2.4 指令格式
本章 小结

第3章 可执行文件
3.1 可执行文件概述
3.2 可执行文件格式
3.2.1 ELF文件的3种主要类型
3.2.2 文件格式
3.2.3 数据表示
3.2.4 文件头
3.2.5 节
3.2.6 字符串表
3.2.7 符号表
3.3 一个简单的ELF文件分析
3.3.1 文件头分析
3.3.2 section信息分析
本章 小结

第4章 反汇编技术
4.1 反汇编技术简介
4.2 反汇编算法流程
4.2.1 线性扫描算法
4.2.2 递归扫描算法
4.3 反汇编工具的自动构造方法
4.3.1 自动构造工具
4.3.2 利用自动构造方法构建IA-64反汇编器
4.4 常用反汇编工具介绍
4.4.1 IDAPro介绍
4.4.2 ILDasm介绍
本章 小结

第5章 指令的语义抽象
5.1 语义描述语言
5.1.1 SSL简介
5.1.2 SSL文法的设计
5.1.3 SSL文法的扩展
5.2 中间表示
5.2.1 低级中间表示(RTL)
5.2.2 高级中间表示(HRTL)
5.3 指令的语义抽象技术
5.3.1 语义抽象技术简介
5.3.2 指令语义的SSL描述
5.3.3 指令语义的高级模拟
5.4 基于SSL的IA.64指令语义抽象技术
5.4.1 IA.64的体系结构特征描述
5.4.2 整数指令的语义描述
5.5 基于模拟的IA.64指令语义抽象技术
5.5.1 IA.64浮点特性
5.5.2 浮点指令的语义模拟
5.5.3 浮点并行指令的语义模拟
本章 小结

第6章 基本数据类型分析
6.1 数据类型分析的相关概念
6.1.1 ITA系统中数据类型分析的依据
6.1.2 ITA系统中基本数据类型分析的重要性
6.1.3 ITA系统中基本数据类型和高级C语言数据类型
6.2 基于指令语义的基本数据类型分析
6.2.1 &和*运算符
6.2.2 普通算术指令的描述
6.2.3 内存读写指令
6.2.4 转移指令
6.3 基于过程的数据类型分析技术
6.3.1 变量重命名技术
6.3.2 变量类型推导的规则
6.3.3 格理论在变量类型推导中的应用
本章 小结

第7章 高级控制流恢复
7.1 控制流恢复概述
7.1.1 控制语句在中间代码中的组织特点
7.1.2 基本块的划分及控制流图的构建
7.1.3 控制流恢复术语
7.2 高级控制流恢复分析
7.2.1 可结构化和不可结构化循环子图
7.2.2 可结构化和不可结构化two-way条件子图
7.2.3 可结构化和不可结构化n-way条件子图
7.2.4 多重结构头节点子图
7.3 结构化算法介绍
7.3.1 对流图各节点进行正向后序遍历
7.3.2 对流图各节点进行反向后序遍历
7.3.3 直接后必经节点的确定
7.3.4 结构化含有条件判断的子图
7.3.5 使用Pr定理构建循环子图结构
7.4 可能出现的问题与解决办法
本章 小结

第8章 过程恢复技术
8.1 相关知识简介
8.1.1 调用约定
8.1.2 控制流分析及数据流分析
8.1.3 过程抽象
8.1.4 过程分析的目标
8.2 库函数恢复
8.2.1 内嵌库函数的恢复
8.2.2 动态链接库函数的恢复
8.3 用户自定义函数分析
8.3.1 函数名识别
8.3.2 用户自定义函数的参数分析
8.3.3 用户自定义函数的返回值分析
本章 小结

第9章 部分编译优化效果的消除
9.1 谓词执行效果的消除
9.1.1 谓词执行和IF转换
9.1.2 简单谓词消除策略
9.1.3 谓词分析
9.1.4 谓词消除
9.2 投机优化的消除
9.2.1 IA.64中投机的方式及实现方法
9.2.2 反投机的目的和算法设计
9.3 软件流水优化的消除
9.3.1 软件流水机制
9.3.2 IA.64软件流水循环
9.3.3 软件流水消除技术
9.3.4 ITA系统中软件流水消除技术的实现
本章 小结

第10章 程序的调试与测试
10.1 常用程序调试工具
10.2 几种常用测试集
参考文献
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证