图书介绍

编译与反编译技术实战【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

编译与反编译技术实战
  • 庞建民主编;刘晓楠等编著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111566175
  • 出版时间:2017
  • 标注页数:359页
  • 文件大小:44MB
  • 文件页数:370页
  • 主题词:计算机网络-安全技术

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

编译与反编译技术实战PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 实践的环境与工具1

1.1 实践环境概述1

1.2 词法分析生成器LEX1

1.3 语法分析生成器YACC3

1.4 编译器GCC4

1.5 编译器LLVM5

1.6 反汇编工具IDA6

1.7 反汇编工具OllyICE6

1.8 仿真与分析工具QEMU6

1.9 动态分析工具TEMU7

1.10 本章小结8

第2章 编译器实践概述9

2.1 编译器、解释器及其工作方式9

2.2 编译器的结构10

2.3 编译器的设计与实现概述12

2.3.1 利用Flex和Bison实现词法和语法分析12

2.3.2 利用LLVM实现代码优化和代码生成12

2.4 本章小结13

第3章 词法分析器的设计与实现14

3.1 词法分析器的设计14

3.1.1 词法分析器的功能14

3.1.2 输入及其处理15

3.2 词法分析器的手工实现16

3.3 词法分析器的LEX实现31

3.3.1 LEX源文件结构32

3.3.2 LEX系统中的正规式34

3.3.3 LEX的使用方式36

3.3.4 LEX源文件示例——C语言词法分析器37

3.4 本章小结41

第4章 语法分析器的设计与实现42

4.1 自上而下的语法分析器的设计与实现42

4.2 自下而上的语法分析器的设计与实现61

4.3 语法分析器的生成器72

4.3.1 YACC的源文件结构72

4.3.2 YACC和LEX的接口76

4.3.3 YACC源程序示例——简单的台式计算器77

4.4 本章小结78

第5章 GCC编译器分析与实践79

5.1 GCC编译器概述79

5.2 GCC编译器的系统结构80

5.3 GCC编译器的分析程序81

5.4 GCC编译器的中间语言及其生成82

5.5 GCC编译器的优化82

5.6 GCC编译器的目标代码生成87

5.7 本章小结88

第6章 LLVM编译器分析与实践89

6.1 LLVM编译器概述89

6.1.1 起源89

6.1.2 相关项目90

6.2 经典编译器概述91

6.2.1 经典编译器设计的启示91

6.2.2 现有编译器的实现92

6.3 LLVM的设计93

6.3.1 LLVM中间表示94

6.3.2 LLVM库文件95

6.4 LLVM前端96

6.4.1 前端库文件97

6.4.2 词法分析97

6.4.3 语法分析99

6.4.4 语义分析100

6.4.5 LLVM IR代码生成100

6.5 LLVM的中间表示100

6.5.1 LLVM IR语法102

6.5.2 LLVM IR优化实例104

6.6 LLVM后端106

6.6.1 后端库文件107

6.6.2 LLVM目标架构描述文件108

6.7 应用实例109

6.7.1 代码插桩110

6.7.2 代码保护110

6.8 本章小结111

第7章 多样化编译实践112

7.1 软件多样化的机会112

7.1.1 应用层的多样化机会112

7.1.2 Web服务层的多样化机会113

7.1.3 操作系统层的多样化机会115

7.1.4 组合后的多样化机会116

7.1.5 虚拟层的多样化机会116

7.2 多样化带来的管理复杂性117

7.3 多样化编译技术118

7.3.1 随机化技术118

7.3.2 代码混淆技术120

7.3.3 与堆栈相关的多样化技术123

7.4 多样化编译的应用125

7.4.1 多样化编译在安全防御方面的应用126

7.4.2 多样化编译工具的结构组成及原理127

7.5 本章小结128

第8章 反编译的对象——可执行文件格式分析129

8.1 可执行文件格式129

8.1.1 PE可执行文件格式129

8.1.2 ELF可执行文件格式130

8.2 main函数的识别133

8.2.1 程序启动过程分析136

8.2.2 startup函数解析137

8.2.3 main()函数定位140

8.3 本章小结142

第9章 反编译的基础——指令系统和反汇编143

9.1 指令系统概述143

9.1.1 机器指令及格式145

9.1.2 汇编指令及描述147

9.2 指令解码149

9.2.1 SLED通用编解码语言149

9.2.2 x64的SLED描述154

9.2.3 IA64的SLED描述159

9.3 反汇编过程161

9.3.1 线性扫描反汇编161

9.3.2 行进递归反汇编162

9.4 反汇编工具IDA与OllyICE实践163

9.4.1 IDA实践163

9.4.2 OllyICE实践166

9.5 本章小结169

第10章 反编译的中点——从汇编指令到中间表示170

10.1 中间代码生成在经典反编译器中的实际应用170

10.1.1 低级中间代码171

10.1.2 高级中间代码172

10.2 中间表示从设计到应用的具体实例175

10.2.1 指令基本组件描述176

10.2.2 用UMSDL描述指令语义179

10.3 本章小结184

第11章 反编译的推进1——数据类型恢复185

11.1 基本数据类型的分析和恢复185

11.1.1 数据类型分析的相关概念186

11.1.2 基于指令语义的基本数据类型分析188

11.1.3 基于过程的数据类型分析技术190

11.2 函数类型恢复197

11.2.1 问题引入198

11.2.2 函数类型的恢复198

11.3 本章小结203

第12章 反编译的推进2——控制流恢复实例205

12.1 基于关键语义子树的间接跳转目标解析205

12.1.1 问题的提出206

12.1.2 相关工作207

12.1.3 跳转表的语义特征208

12.1.4 基于关键语义子树的间接跳转目标解析及翻译210

12.2 功能块概念的引入222

12.2.1 分析单位222

12.2.2 基于基本块的分析223

12.2.3 功能块228

12.2.4 针对功能块的验证230

12.3 基于功能块的间接转移指令目标地址的确定233

12.3.1 程序控制流图构建方法中存在的问题233

12.3.2 无法处理的代码234

12.3.3 程序执行路径的逆向构造235

12.3.4 逆向构造执行路径的控制执行245

12.3.5 针对程序执行路径逆向构造的验证246

12.4 本章小结248

第13章 反编译的推进3——过程定义恢复250

13.1 过程分析概述250

13.1.1 过程抽象250

13.1.2 调用约定分析251

13.2 库函数恢复255

13.2.1 快速库函数调用识别方法255

13.2.2 基于特征数据库的模式匹配方法256

13.2.3 基于函数签名的库函数识别方法257

13.2.4 库函数参数的恢复262

13.2.5 隐式库函数调用267

13.3 用户自定义过程的数据恢复279

13.3.1 基于语义映射的数据恢复280

13.3.2 基于栈帧平衡的数据恢复282

13.4 用户函数与库函数同名的区分283

13.4.1 函数同名问题283

13.4.2 函数同名解决实例286

13.5 本章小结290

第14章 反编译在信息安全方面的应用实践291

14.1 反编译在信息安全中的应用291

14.1.1 反编译技术的优势292

14.1.2 代码恶意性判定292

14.1.3 代码敏感行为标注293

14.1.4 恶意代码威胁性评估293

14.2 反编译在恶意代码分析中的应用294

14.2.1 基于文件结构的恶意代码分析294

14.2.2 基于汇编指令的恶意代码分析295

14.2.3 基于流图的恶意代码分析296

14.2.4 基于系统调用的恶意代码分析298

14.3 恶意代码与反编译技术的对抗300

14.3.1 混淆300

14.3.2 多态304

14.3.3 变形306

14.3.4 加壳307

14.3.5 虚拟执行308

14.4 反编译框架针对恶意行为的改进309

14.4.1 条件跳转混淆309

14.4.2 指令重叠混淆314

14.4.3 子程序异常返回319

14.4.4 不透明谓词混淆324

14.5 实例分析330

14.5.1 系统设计330

14.5.2 系统模块划分331

14.5.3 测试结果与分析351

14.6 本章小结355

参考文献356

热门推荐