全书共14章,第1章简要介绍了本书所基于的环境与工具;第2~6章针对编译的不同阶段,展开实践方面的相关阐述,并结合GCC和LLVM这两款具体的编译器进行论述;第7章介绍了多样化编译方面的实践;第8~13章从反编译的不同阶段介绍与反编译相关的可执行程序格式、程序解码和反汇编、中间表示生成、数据类型和控制流的恢复、过程定义恢复等内容;第14章简要介绍了反编译在信息安全方面的应用。
前言
第1章 实践的环境与工具 1
1.1 实践环境概述 1
1.2 词法分析生成器LEX 1
1.3 语法分析生成器YACC 3
1.4 编译器GCC 4
1.5 编译器LLVM 5
1.6 反汇编工具IDA 6
1.7 反汇编工具OllyICE 6
1.8 仿真与分析工具QEMU 6
1.9 动态分析工具TEMU 7
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
“编译技术”是从事软件开发和信息安全相关工作的技术人员必须掌握的基础性技术,也是高等院校计算机科学与技术和软件专业的一门必修专业课,这是理论与实践结合非常强的领域,对提升开发人员的技术水平和大学生科学思维的养成、解决实际问题能力具有重要作用。“反编译技术”则是近几年发展起来的新兴技术,许多计算机软件或信息安全从业者非常关心该技术的发展,但目前这方面的书籍较少,与“编译技术”结合起来讲解的书也很少,从实践角度来剖析的更是少见。本书就是在这种需求以及作者在这两方面的科研实践的驱动下诞生的,目的是为计算机软件和信息安全从业者提供编译与反编译技术方面的知识和实战技巧。
本书的编写得到了解放军信息工程大学和机械工业出版社的大力支持,在此表示诚挚的谢意。本书中的一些材料来自本书主编主持的国家自然科学基金(项目编号:61472447)、国家“863”(项目编号:2006AA01Z408)、国家重大专项某子课题等项目的研究成果,在此对这些课题的支持表示衷心的感谢!
本书是机械工业出版社2016年4月出版的《编译与反编译技术》(ISBN978-7-111-53412-9)一书的姊妹篇,配合学习和使用效果更佳。在本书中,作者着力阐述编译与反编译技术及实战方面的相关知识和实战技巧,力图使用通用的语言讲述抽象的原理、技术和实战技能,但限于作者水平,书中难免有错误与欠妥之处,恳请读者批评指正。
作者2017年3月
这本书的包装设计就足够吸引人,简约而不失专业感,封面上的金属质感线条仿佛诉说着代码的精妙与隐藏的奥秘。我一直对底层技术有着浓厚的兴趣,尤其是在理解软件是如何运行的方面,而“编译与反编译技术实战”这个书名,一下就抓住了我。虽然我还没有真正翻开书页,但光从这个名字,我就能想象到它会带领我深入探索程序从源代码到可执行文件的转换过程,以及如何逆向工程去理解那些“黑箱”式的二进制文件。我期待这本书能为我揭示编译器的内部工作原理,例如词法分析、语法分析、语义分析以及代码生成等关键步骤。更重要的是,反编译部分让我充满了好奇。在很多领域,例如安全研究、软件审计、或是对遗留系统的理解,反编译都是不可或缺的技能。我希望这本书能提供清晰的指导,从基础概念讲起,逐步深入到实际操作,帮助我理解反汇编工具的使用,学习如何分析汇编代码,识别常见的设计模式和算法,甚至可能涉及到一些高级的逆向技巧,比如代码混淆的破解、调试器的运用等。总而言之,这本书给我带来了一种“探险”的期待感,相信它会是我技术道路上的一位得力助手,帮助我解开那些隐藏在代码深处的秘密,提升我对计算机底层运行机制的认知深度。
评分刚看到“编译与反编译技术实战”这个书名,我的第一反应就是:这绝对是我一直在寻找的那种深入骨髓的技术指南!在如今这个快速迭代的软件开发世界里,我们往往只关注功能的实现,却忽略了代码是如何一步步变成机器能识别的语言的。这本书听起来就像一把钥匙,可以打开通往代码世界底层的那扇门。我期望它能系统地介绍编译的完整流程,从词法分析、语法分析、语义分析到代码优化和生成,每一个环节都清晰明了。特别想了解代码优化部分,因为这直接关系到程序的性能。而反编译,这门技术在安全领域、软件审计以及理解一些闭源软件的内部机制时,简直是无价之宝。我希望这本书能详细阐述如何使用专业的反编译工具,以及如何分析汇编代码,从而理解程序的行为。例如,如何识别常见的指令模式,如何跟踪程序的执行路径,如何还原数据结构等等。我尤其期待书中能包含一些实际的案例分析,比如对某个经典算法进行反编译,或者分析一个简单的恶意程序,这样能够让我更好地理解理论知识在实际中的应用。这本书对我而言,不仅仅是一本书,更像是一次深入的“技术朝圣”。
评分“编译与反编译技术实战”这个书名,像一声召唤,激起了我内心深处对技术本质的渴望。在日常的开发工作中,我们常常习惯于站在抽象的层面,使用高级语言编写代码,然后交给编译器处理。但很少有人真正深入去理解这个“魔法”是如何发生的。这本书的名字,承诺了要揭开这层面纱,带领读者走进编译器的“黑箱”内部。我非常期待它能详细讲解编译过程中的各个阶段,比如词法分析如何将源代码分解成一个个标记,语法分析如何构建抽象语法树,语义分析又如何检查代码的含义。而代码生成部分,更是我关注的焦点,它会将中间表示转换成目标机器码,这个过程充满了精巧的设计和优化。反编译的部分,我更是充满好奇。我希望这本书能够提供一套系统的方法论,帮助我理解如何从二进制代码中重建出可读性更高的代码,从而理解程序的运行逻辑,找出潜在的风险,甚至进行性能分析。想象一下,能够像一位“代码考古学家”一样,去挖掘那些被遗忘或隐藏的代码逻辑,这将是多么激动人心的事情。这本书的实战二字,也暗示着它将不仅仅停留在理论层面,而是会通过大量的实践案例,让我们真正掌握这些技术。
评分读到“编译与反编译技术实战”这个书名,我脑海中立刻浮现出那些充满挑战和智慧的场景。作为一名软件开发者,我常常会遇到一些棘手的bug,或者需要理解一些别人编写的、缺乏文档的代码。这时候,如果能够像一位“代码侦探”一样,深入到程序的底层,理解它的执行逻辑,那将是多么有用的能力啊。这本书的书名恰恰给了我这样的希望。我设想它会从最基础的编译原理讲起,比如各种编程语言是如何被翻译成机器码的,这个过程中涉及到哪些关键的转换和优化。然后,它可能会深入到反编译的部分,这部分我尤其期待。我相信,掌握反编译技术,不仅仅是学会使用某个工具,更是要理解反汇编后的汇编代码,学会如何从中提取有用的信息,比如函数调用、数据结构、算法逻辑等等。我希望这本书能够提供丰富的实例,让我能够在实践中学习,一步步地掌握这些高级技能。例如,可能会介绍如何使用IDA Pro、Ghidra等工具,以及如何分析常见的代码结构。更进一步,我期待它能触及到一些安全相关的反编译技术,比如如何分析恶意软件、如何进行软件漏洞挖掘等。这本书对我来说,不仅仅是一本技术书籍,更像是一张通往更深层次技术理解的藏宝图。
评分“编译与反编译技术实战”这个书名,瞬间点燃了我对软件底层原理的好奇心。作为一名对计算机科学充满热情的研究者,我一直深信,要真正掌握一门技术,就必须理解其最核心的运作机制。编译器的作用,就是将我们人类可读的源代码转化为机器可执行的二进制代码,这个过程本身就充满了智慧和复杂性。这本书的标题预示着它将带领我深入这个过程,从词法分析到语法分析,再到语义分析和代码生成,一步步揭示编译器的奥秘。我希望书中能够详细解释编译器如何处理不同的编程语言特性,以及如何进行各种代码优化,以提升程序的执行效率。而反编译,更像是打开了一个“潘多拉魔盒”,让我能够窥探程序的内部运行逻辑。我期待这本书能够教授我如何使用强大的反编译工具,以及如何分析反汇编后的代码,去理解程序的算法、数据结构,甚至识别出潜在的安全漏洞。我希望通过学习这本书,能够拥有独立分析二进制文件、理解其内在机制的能力,这对于我未来的学术研究或者是在复杂软件环境中进行问题排查,都将具有极其重要的意义。这本书对我来说,是通往更深层次技术理解的阶梯,是一次探究代码本质的精彩旅程。
评分书收到了,质量很好,外面还有一层热缩膜包着,非常满意,
评分vggccj
评分介绍性的读物,技术含量一般
评分内容一般,买错了 ,后悔,网上买书就有这个问题。
评分这本书不应该是一个博导带领一帮博士写的书,严重怀疑是在读研究生写的书。1-8章水了8章不说,9-13章以为能看到点干货,结果大失所望,从各个论文里摘些概述和结论,缺少很多过程的描述。14章对应用领域做了一下展望,遮遮掩掩,浮于水面,还没一篇论文来得深入。看这本书,还不如直接阅读Cifuentes C. Reverse Compilation Techniques。严重不建议购买此书。
评分vggccj
评分编译提升自己
评分可以帮助了解一下
评分编译提升自己
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有