《编译与反编译技术》目录—导读

前言
“编译原理”是高等院校计算机科学与技术和软件工程专业的必修专业课之一,是一门理论与实践相结合的课程,对大学生科学思维的养成和解决实际问题能力的提高具有重要作用。“编译技术”是“编译原理”课程中介绍的关键技术,已经被广大计算机软件从业者所掌握和熟悉。“反编译技术”则是近几年得以迅速发展的新兴技术,许多计算机软件或信息安全从业者非常关心该项技术,但目前这方面的书籍较少,与“编译技术”结合起来讲解的更少。本书就是在这种需求以及编者在这两方面的科研实践体会的驱动下诞生的,目的是为计算机软件和信息安全从业者提供编译与反编译技术方面的知识和技能。
本书的编写得到了中国人民解放军信息工程大学和机械工业出版社的支持,在此表示诚挚的谢意。
本书由庞建民教授确定内容的选取和组织结构,由庞建民、陶红伟、刘晓楠、岳峰具体执笔,庞建民编写第1、9章,陶红伟编写第2、3、4、5、7章,刘晓楠编写第10、11、12、13章,岳峰编写第6、8、14、15章,最后由庞建民定稿。赵荣彩教授对本书的编写提出了许多宝贵的意见和建议,在此表示衷心的感谢。
本书力图反映编译与反编译及其相关领域的基础知识和发展方向,尝试用通用的语言讲述抽象的原理与技术,由于编者水平有限,书中难免有错误与欠妥之处,恳请读者批评指正。
**目录
前言
第1章 引论
1.1编译器与解释器
1.2 编译过程
1.3 编译器结构
1.4 编译器的分类及生成
1.5 高级语言及其分类
1.6 编译的前端和后端
1.7 C语言程序的编译流程
1.8 UNIX/Linux环境中的make和makefile
1.9 本章小结
习题

第2章 词法分析的理论与实践
2.1 词法分析器的需求分析
2.1.1 词法分析器的功能
2.1.2 分离词法分析的原因 )
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 NFA到DFA的转化
2.3.4 DFA的化简
2.4 正规式和有穷自动机的等价性
2.5 词法分析器的生成器
2.6 本章小结
习题
第3章 语法分析
3.1 上下文无关文法
3.1.1 上下文无关文法的定义
3.1.2 语法树和推导
3.1.3 二义性
3.2 语法分析器的功能
3.3 自上而下的语法分析
3.3.1 LL(1)分析方法
3.3.2 预测分析程序
3.4 自下而上的语法分析
3.4.1 移进与归约
3.4.2 LR分析
3.4.3 LR(0)分析
3.4.4 SLR(1)分析
3.4.5 LR(1)分析
3.4.6 LALR(1)分析
3.4.7 分析方法比较
3.5 语法分析器的生成器
3.6 本章小结
习题
第4章 语义分析与处理
4.1 语法制导定义与语法制导翻译
4.2 中间语言
4.3 语句的翻译
4.3.1 说明语句的翻译
4.3.2 赋值语句的翻译
4.3.3 控制语句的翻译
4.3.4 过程调用语句的翻译
4.4 本章小结
习题
第5章 符号表
5.1 符号表的作用
5.2 符号表的内容
5.3 符号表的组织
5.4 符号表的实现
5.5 名字的作用域
5.6 本章小结
习题
第6章 运行时存储组织
6.1 静态存储分配
6.2 动态存储分配
6.3 栈式动态存储分配
6.3.1 简单的栈式存储分配的实现
6.3.2 嵌套过程语言的栈式实现
6.4 堆式动态存储分配
6.5 存储分配与安全性
6.5.1 缓冲区溢出原理
6.5.2 缓冲区溢出的防范
6.6 本章小结
习题
第7章 优化
7.1 优化技术简介
7.2 局部优化
7.3 循环优化
7.4 全局优化
7.4.1 到达–定值数据流分析
7.4.2 活跃变量数据流分析和
定值–引用数据流分析
7.4.3 可用表达式数据流分析
7.4.4 复写传播数据流分析
7.5 本章小结
习题
第8章 目标代码生成
8.1 代码生成器设计中的问题
8.1.1 代码生成器的输入
8.1.2 目标程序
8.1.3 指令选择
8.1.4 变量存储空间分配
8.2 寄存器分配
8.2.1 寄存器分配描述
8.2.2 线性扫描的寄存器分配
8.2.3 图着色的寄存器分配
8.3 窥孔优化
8.3.1 规则提取
8.3.2 扫描匹配和等价语义转换
8.3.3 举例说明
8.4 一个代码生成器实例
8.4.1 待用信息和活跃信息
8.4.2 寄存器描述和地址描述
8.4.3 代码生成算法
8.5 本章小结
习题
第9章 多样化编译
9.1 软件多样化需求
9.2 多变体执行及其环境
9.3 海量软件多样性
9.4 多样化编译技术
9.5 多样化编译的应用
9.6 本章小结
习题
第10章 反编译及其关键要素
10.1 什么是反编译
10.1.1 反编译概念
10.1.2 编译与反编译
10.1.3 反编译器
10.2 反编译的基本过程
10.2.1 按照反编译技术实施的顺序划分
10.2.2 按照反编译实践中的具体操作划分
10.2.3 按照反编译器的功能块划分
10.3 反编译的前世今生
10.3.1 建立——20世纪60年代
10.3.2 发展——20世纪70年代
10.3.3 瓶颈期——20世纪80年代
10.3.4 反编译的春天来了——20世纪90年代
10.3.5 持续的研究——进入21世纪
10.3.6 身边的反编译——我国对反编译的研究
10.4 反编译的局限、先决条件和评价指标
10.4.1 反编译技术面临的宏观问题
10.4.2 反编译技术面临的技术性问题
10.4.3 反编译的先决条件
10.4.4 反编译器的评价指标
10.5 反编译的应用领域和研究重点
10.5.1 应用领域
10.5.2 研究重点
10.6 本章小结
习题
第11章 反编译器的整体框架
11.1 “I型”反编译器的框架
11.1.1 上下文环境的衔接
11.1.2 dcc反编译器的框架
11.2 经典多源反编译框架简介
11.2.1 UQBT
11.2.2 Hex-Rays
11.2.3 BAP
11.3 具备静态反编译能力的二进制翻译器ITA
11.3.1 ITA总体框架
11.3.2 二进制文件解码
11.3.3 语义映射
11.3.4 过程抽象分析
11.3.5 优化代码消除
11.3.6 C代码产生器
11.3.7 从ITA看静态反编译存在的普遍问题
11.3.8 对ITA静态反编译框架的扩展ITA-E
11.4 具备动静结合反编译能力的二进制翻译器UTP-MBC
11.4.1 UTP-MBC架构设计需要解决的主要问题
11.4.2 UTP-MBC翻译器的相关研究
11.4.3 一体化翻译架构设计
11.5 本章小结
习题
第12章 反编译中的指令解码和语义描述与映射
12.1 指令描述和指令解码
12.1.1 相关研究
12.1.2 编解码描述语言SLED
12.1.3 基于SLED的x64指令描述和解码
12.1.4 SLED在多源一体解码体系中的应用
12.2 指令的语义映射
12.2.1 相关研究
12.2.2 语义描述语言SSL
12.2.3 中间表示
12.2.4 一个示例——指令原子语义描述语言ASDL
12.3 本章小结
习题
第13章 反编译中的恢复技术
13.1 数据流和数据恢复
13.1.1 数据流分析
13.1.2 数据恢复方法——以IA-64架构上的反编译为例
13.1.3 小结
13.2 高级控制流恢复
13.2.1 控制流恢复概述
13.2.2 高级控制流恢复分析
13.2.3 结构化算法介绍
13.2.4 可能的问题与解决办法
13.2.5 小结
13.3 过程恢复
13.3.1 相关知识简介
13.3.2 库函数的识别技术
13.3.3 用户自定义函数的过程恢复
13.4 本章小结
习题
第14章 编译优化的反向处理
14.1 常用的编译优化方法
14.1.1 编译优化的原则
14.1.2 优化手段的分类
14.2 部分编译优化的消除——谓词执行
14.2.1 谓词执行
14.2.2 IA-64平台的谓词指令
14.2.3 谓词消除
14.3 本章小结
习题
第15章 反编译与信息安全
15.1 基于反编译的恶意行为识别
15.1.1 恶意代码检测背景
15.1.2 文件格式异常信息
15.1.3 指令序列层行为信息提取
15.1.4 函数调用信息提取
15.2 反编译在恶意代码检测中的应用
15.2.1 系统架构的提出
15.2.2 推理算法研究的基本内容
15.2.3 恶意特征生成
15.2.4 推理规则库的建立
15.2.5 多重多维模糊推理算法的研究与实现
15.3 本章小结
习题
参考文献

时间: 2024-09-20 14:19:38

《编译与反编译技术》目录—导读的相关文章

《Android安全技术揭秘与防范》——导读

目 录前 言 第1章 Android简介1.1节Android的发展历史1.2节Android系统进化史1.3节Android和iOS系统对比第2章 Android地下产业链分析 2.1节钱从哪里来2.2节安全的发展趋势第3章 理解Android系统第4章 Root你的设备第5章 APK静态分析第6章 ARM汇编速成第7章 APK动态分析第8章 动态注入技术 第9章 应用加固与渗透测试第10章 系统安全措施第11章 内核攻击与防护附录A ARM指令集附录B ARM伪指令集

《Android安全技术揭秘与防范》目录—导读

作者简介 Android安全技术揭秘与防范 周圣韬,曾任职于金山.360公司做Android开发.安全审计工作,现在为百度手机助手客户端高级开发工程师. 专业书评 出一本安卓系统安全方面的书,挺不简单的!360是做安全的,周圣韬从360出来还能做安全方面的事儿,说明他跟360还有缘分.这本书我仔细看了一下,挺全的,是一本不错的工具书. --360公司创始人董事长兼CEO.知名天使投资人,周鸿祎 本书卖点 360公司创始人董事长兼CEO.知名天使投资人,周鸿祎推荐 36个功防案例的实战演示,详细剖

《Android安全技术揭秘与防范》—第8章8.节什么是Hook技术

第8章 动态注入技术 Android安全技术揭秘与防范 我们在讨论动态注入技术的时候,APIHook的技术由来已久,在操作系统未能提供所需功能的情况下,利用APIHook的手段来实现某种必需的功能也算是一种不得已的办法.在Windows平台下开发电子词典的光标取词功能,这项功能就是利用Hook API的技术把系统的字符串输出函数替换成了电子词典中的函数,从而能得到屏幕上任何位置的字符串.无论是16位的Windows95,还是32位的Windws NT,都有办法向整个系统或特定的目标进程中"注入&

《Android安全技术揭秘与防范》—第2章2.1节钱从哪里来

第2章 Android地下产业链分析 Android安全技术揭秘与防范 目前Android设备已经遍布全球,人们就会想着各种方法从这海量的用户里面捞取利益.创业者们会想着如何做出一款让大家都喜欢的.解决大家实际问题的 App:游戏开发商们想着如何让Android用户将自己的碎片时间都用在玩自己所开发的手机游戏上:手机制造商们想着如何让自己所生产的Android手机销量更好:而黑客们,却想着怎么样用自己的技术通过非正常手段获取利益. 如果你还认为黑客们的手段就是拨打欺诈电话.发送欺诈短信,那你就落

《Android安全技术揭秘与防范》——第2章,第2.1节钱从哪里来

第2章 Android地下产业链分析 Android安全技术揭秘与防范 目前Android设备已经遍布全球,人们就会想着各种方法从这海量的用户里面捞取利益.创业者们会想着如何做出一款让大家都喜欢的.解决大家实际问题的 App:游戏开发商们想着如何让Android用户将自己的碎片时间都用在玩自己所开发的手机游戏上:手机制造商们想着如何让自己所生产的Android手机销量更好:而黑客们,却想着怎么样用自己的技术通过非正常手段获取利益. 如果你还认为黑客们的手段就是拨打欺诈电话.发送欺诈短信,那你就落

《Android安全技术揭秘与防范》—第1章1.1节Android的发展历史

第1章 Android简介Android安全技术揭秘与防范近年来我们对"Android"这个词已经不再陌生.在过去的几年时间里,Android的快速发展已经影响到了每个人的日常生活.如今Android不仅仅意味着一台手机.一部平板电脑,也可能是一台电视.一只手表.一部智能汽车.一副眼镜.然而,在一个生态系统形成的同时,总会有一群人希望通过一些不常规的手段谋取利益. 本章主要从Android黑色产业链与破解人员的动机来分析Android的安全问题. 1.1 Android的发展历史And

《Android安全技术揭秘与防范》——第1.1节Android的发展历史

第1章 Android简介Android安全技术揭秘与防范近年来我们对"Android"这个词已经不再陌生.在过去的几年时间里,Android的快速发展已经影响到了每个人的日常生活.如今Android不仅仅意味着一台手机.一部平板电脑,也可能是一台电视.一只手表.一部智能汽车.一副眼镜.然而,在一个生态系统形成的同时,总会有一群人希望通过一些不常规的手段谋取利益. 本章主要从Android黑色产业链与破解人员的动机来分析Android的安全问题. 1.1 Android的发展历史And

《Android安全技术揭秘与防范》——第1章,第1.1节Android的发展历史

第1章 Android简介Android安全技术揭秘与防范近年来我们对"Android"这个词已经不再陌生.在过去的几年时间里,Android的快速发展已经影响到了每个人的日常生活.如今Android不仅仅意味着一台手机.一部平板电脑,也可能是一台电视.一只手表.一部智能汽车.一副眼镜.然而,在一个生态系统形成的同时,总会有一群人希望通过一些不常规的手段谋取利益. 本章主要从Android黑色产业链与破解人员的动机来分析Android的安全问题. 1.1 Android的发展历史And

《Android安全技术揭秘与防范》——第2.1节Android应用程序概览

2.1 Android应用程序概览 Android开发秘籍(第2版) Android应用程序包含的功能五花八门,比如编辑文本.播放音乐.启动闹钟或是打开通讯录等.这些功能可以被分类对应到4类Android组件之中,如表2-1所示,每一类都对应一个Java基本类. 每个应用程序都由一个或多个这样的组件组成.当要用到某个组件时,Android操作系统就会将其初始化.其他应用程序在指定的权限内也可以使用它们. 随着在操作系统中展现多种功能(有些功能甚至与预期的应用程序无关,如呼入电话),每个组件经历了

《Android安全技术揭秘与防范》—第8章8.3节HookAndroid应用

8.3 HookAndroid应用 前面我们介绍过Cydiasubstrate框架提供在Java层Hook的能力,其中主要是提供了三个比较重要的方法,MS.hookClassLoad.MS.hookMethod.MS.moveUnderClassLoader.三个方法的具体介绍如表8-2所示. 几个方法的具体参数与返回值,我们可以看如下的方法具体定义. * Hook一个指定的Class * * @paramname Class的包名+类名,如android.content.res.Resourc