全新正版现货,以书名为准,放心购买,购书咨询18515909251朱老师
¥ 39.81 6.7折 ¥ 59 全新
库存20件
作者张平,李清宝编著
出版社科学出版社
ISBN9787030726933
出版时间2021-04
装帧平装
开本16开
定价59元
货号11724862
上书时间2026-02-05
目录
第1章 绪论 1
1.1 编译与反编译 1
1.2 反编译技术的发展历史 3
1.3 反编译所面临的问题 4
1.4 反编译器框架结构 7
1.5 反编译器实现及辅助工具 11
1.5.1 反编译器的模块结构 11
1.5.2 反编译辅助工具 12
1.6 反编译技术的分类 13
1.6.1 从反编译对象角度划分 13
1.6.2 从实现方式角度划分 16
1.7 反编译技术的应用 17
1.7.1 软件产品的开发、维护和升级 17
1.7.2 计算机安全领域 18
1.8 本章小结 19
第2章 反编译基础 20
2.1 二进制可执行文件格式 20
2.1.1 PE文件格式分析 20
2.1.2 ELF文件格式分析 25
2.2 二进制程序的存储组织结构 30
2.3 数据的存储 31
2.3.1 复杂数据类型 32
2.3.2 字节序 33
2.4 栈帧 34
2.4.1 栈和调用栈 34
2.4.2 栈帧相关寄存器 35
2.4.3 栈帧结构 35
2.4.4 程序的运行模式 36
2.5 反编译器的符号表 39
2.5.1 符号表的作用 39
2.5.2 符号表的组织 39
2.6 本章小结 41
第3章 反编译器前端技术 42
3.1 指令解码 42
3.1.1 指令识别 42
3.1.2 指令映射 51
3.2 语义分析 56
3.2.1 常用编译习语 57
3.2.2 基本数据的传播 60
3.3 反编译的中间表示 64
3.4 控制流图 72
3.4.1 图的相关概念 72
3.4.2 基本块 73
3.4.3 控制流图的定义 74
3.4.4 控制流图的生成 77
3.5 本章小结 79
第4章 中间代码优化和提升 80
4.1 基本方法 80
4.2 反编译所需的数据流信息 88
4.3 数据流分析的理论基础 89
4.3.1 数据流分析框架 89
4.3.2 数据流分析模型 91
4.3.3 基本数据流方程 91
4.3.4 数据流分析方法 93
4.4 反编译的数据流问题 98
4.4.1 到达寄存器/条件码 99
4.4.2 活跃寄存器/条件码 99
4.4.3 可用寄存器/条件码 99
4.4.4 忙寄存器/条件码 100
4.5 中间代码优化算法 100
4.5.1 无用寄存器清除 100
4.5.2 无用条件码清除 102
4.5.3 条件码的传播 103
4.5.4 确定寄存器参数 105
4.5.5 确定函数返回寄存器(组) 106
4.5.6 寄存器复制传播 108
4.5.7 确定函数实际参数 112
4.5.8 跨子程序调用的数据类型传播 112
4.5.9 扩展的寄存器复制传播算法 113
4.5.10 寄存器变量清除 116
4.6 本章小结 117
第5章 高级控制结构恢复 118
5.1 控制结构模式 118
5.1.1 控制结构分类 118
5.1.2 可归约性 122
5.2 控制流分析的基本方法 123
5.2.1 支配结点和支配树 124
5.2.2 流图的访问方法 127
5.3 高级控制结构分析与识别 129
5.3.1 支配树分析 130
5.3.2 区间分析 135
5.3.3 结构分析 152
第6章 库函数恢复 165
6.1 库函数恢复的重要性 165
6.2 库函数相关概念 166
6.3 库函数恢复的问题 167
6.4 特征匹配法 168
6.4.1 基本方法 168
6.4.2 特征选取 169
6.5 函数签名法 170
6.5.1 基本方法 170
6.5.2 签名冲突 170
6.5.3 IDA的FLIRT技术 171
6.5.4 IDA的库函数恢复过程 172
6.6 两种静态库函数识别恢复比较 175
6.7 动态库函数的识别 175
6.8 本章小结 176
第7章 类型恢复 177
7.1 数据类型分类 177
7.2 二进制代码中的数据类型信息 178
7.3 基本数据类型恢复方法 179
7.3.1 基于函数调用的类型信息提取 179
7.3.2 基于指令特征的类型信息提取 181
7.3.3 基于规则的类型推导 185
7.4 结构数据类型的恢复 188
7.4.1 结构数据类型 188
7.4.2 类型分析对象 189
7.4.3 结构类型恢复基本思路 190
7.4.4 结构类型重构算法 192
7.5 本章小结 197
第8章 人工智能在反编译技术中的应用 198
8.1 基于NMT的反编译 198
8.1.1 神经机器翻译 198
8.1.2 基于NMT的反编译的基本思路 200
8.1.3 方法实现 202
8.2 基于RNN的反编译 207
8.2.1 反编译模型 208
8.2.2 语料库创建 209
8.2.3 预处理 210
8.2.4 训练 211
8.2.5 评估 211
8.3 本章小结 211
参考文献 212
第1章 绪论
讨论反编译技术自然离不开编译技术。反编译与编译是两个相对的过程,但它们实质上都是翻译的过程—对程序的翻译、对代码的翻译,在翻译的过程中会用到多种程序分析和变换技术,而这些技术是本书关注的重点。
反编译器处理的对象是编译器输出的目标程序,所以反编译的处理过程很大程度上基于编译技术和编译优化理论,并以新的方式应用于反编译。本章从对编译和编译过程的回顾出发,介绍反编译技术涉及的概念,对反编译过程和技术进行概括阐述,使读者对反编译技术有个总体认识。
1.1 编译与反编译
编译(Compile)是将源程序翻译成目标程序的过程。编译器就是完成这个翻译过程的程序或工具,如图1-1所示。编译器输入的源程序是与机器无关的高级语言源程序,输出的目标程序是与目标机器相关的二进制机器语言程序。
反编译(Decompile),又称为逆向编译或反向编译(Reverse Compile),是指将可执行文件翻译成高级语言程序的过程。反编译器是完成这个翻译过程的程序或工具,如图1-2所示。反编译器输入特定目标机器的二进制机器语言程序作为源程序,生成的高级语言程序作为其目标程序。
图1-1 编译器
图1-2 反编译器
反编译是编译的逆过程,反编译技术依赖于编译技术。为了更好地理解反编译的原理和技术,首先来简单地回顾编译技术。
从编译原理上看,编译程序(编译器)把一个源程序翻译成目标程序的工作过程从逻辑上可以分为六个阶段:词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成,如图1-3所示。
以下为对购买帮助不大的评价