C++反汇编与逆向分析技术揭秘 - (EPUB全文下载)

文件大小:5.5 mb。
文件格式:epub 格式。
书籍内容:

C++反汇编与逆向分析技术揭秘
钱林松 赵海旭 著
ISBN:978-7-111-35633-2
本书纸版由机械工业出版社于2011年出版,电子版由华章分社(北京华章图文信息有限公司)全球范围内制作与发行。
版权所有,侵权必究
客服热线:+ 86-10-68995265
客服信箱:service@bbbvip.com
官方网址:www.bbbvip.com
新浪微博 @研发书局
腾讯微博 @yanfabook
目 录
前言
第一部分 准备工作
第1章 熟悉工作环境和相关工具
1.1 调试工具Microsoft Visual C++6.0和OllyDBG
1.2 反汇编静态分析工具IDA
1.3 反汇编引擎的工作原理
1.4 本章小结
第二部分 C++反汇编揭秘
第2章 基本数据类型的表现形式
2.1 整数类型
2.1.1 无符号整数
2.1.2 有符号整数
2.2 浮点数类型
2.2.1 浮点数的编码方式
2.2.2 基本的浮点数指令
2.3 字符和字符串
2.3.1 字符的编码
2.3.2 字符串的存储方式
2.4 布尔类型
2.5 地址、指针和引用
2.5.1 指针和地址的区别
2.5.2 各类型指针的工作方式
2.5.3 引用
2.6 常量
2.6.1 常量的定义
2.6.2 #define和const的区别
2.7 本章小结
第3章 认识启动函数,找到用户入口
3.1 程序的真正入口
3.2 了解VC++6.0的启动函数
3.3 main函数的识别
3.4 本章小结
第4章 观察各种表达式的求值过程
4.1 算术运算和赋值
4.1.1 各种算术运算的工作形式
4.1.2 算术结果溢出
4.1.3 自增和自减
4.2 关系运算和逻辑运算
4.2.1 关系运算和条件跳转的对应
4.2.2 表达式短路
4.2.3 条件表达式
4.3 位运算
4.4 编译器使用的优化技巧
4.4.1 流水线优化规则
4.4.2 分支优化规则
4.4.3 高速缓存(cache)优化规则
4.5 一次算法逆向之旅
4.6 本章小结
第5章 流程控制语句的识别
5.1 if语句
5.2 if……else……语句
5.3 用if构成的多分支流程
5.4 switch的真相
5.5 难以构成跳转表的switch
5.6 降低判定树的高度
5.7 do/while/for的比较
5.8 编译器对循环结构的优化
5.9 本章小结
第6章 函数的工作原理
6.1 栈帧的形成和关闭
6.2 各种调用方式的考察
6.3 使用ebp或esp寻址
6.4 函数的参数
6.5 函数的返回值
6.6 回顾
6.7 本章小结
第7章 变量在内存中的位置和访问方式
7.1 全局变量和局部变量的区别
7.2 局部静态变量的工作方式
7.3 堆变量
7.4 本章小结
第8章 数组和指针的寻址
8.1 数组在函数内
8.2 数组作为参数
8.3 数组作为返回值
8.4 下标寻址和指针寻址
8.5 多维数组
8.6 存放指针类型数据的数组
8.7 指向数组的指针变量
8.8 函数指针
8.9 本章小结
第9章 结构体和类
9.1 对象的内存布局
9.2 this指针
9.3 静态数据成员
9.4 对象作为函数参数
9.5 对象作为返回值
9.6 本章小结
第10章 关于构造函数和析构函数
10.1 构造函数的出现时机
10.2 每个对象都有默认的构造函数吗
10.3 析构函数的出现时机
10.4 本章小结
第11章 关于虚函数
11.1 虚函数的机制
11.2 虚函数的识别
11.3 本章小结
第12章 从内存角度看继承和多重继承
12.1 识别类和类之间的关系
12.2 多重继承
12.3 虚基类
12.4 菱形继承
12.5 本章小结
第13章 异常处理
13.1 异常处理的相关知识
13.2 异常类型为基本数据类型的处理流程
13.3 异常类型为对象的处理流程
13.4 识别异常处理
13.5 本章小结
第三部分 逆向分析技术应用
第14章 PEiD的工作原理分析
14.1 开发环境的识别
14.2 开发环境的伪造
14.3 本章小结
第15章 “熊猫烧香”病毒逆向分析
15.1 调试环境配置
15.2 病毒程序初步分析
15.3 “熊猫烧香”的启动过程分析
15.4 “熊猫烧香”的自我保护分析
15.5 “熊猫烧香”的感染过程分析
15.6 本章小结
第16章 调试器OllyDBG的工作原理分析
16.1 INT3断点
16.2 内存断点
16.3 硬件断点
16.4 异常处理机制
16.5 加载调试程序
16.6 本章小结
第17章 反汇编代码的重建与编译
17.1 重建反汇编代码
17.2 编译重建后的反汇编代码
17.3 本章小结
参考文献
前言
为什么写这本书
“时下的IDE很多都是极其优秀的,拜其所赐,职场上的程序员多出十几倍,但是又有多少能理解程序内部的机制呢?”
—侯捷
[1]
随着软件技术的发展及其在各个领域的广泛应用,对软件进行逆向工程,然后通过阅读其反汇编代码来推断其数据结构、体系结构和程序设计思路的需求越来越多。逆向工程技术能帮助我们很好地研究和学习先进的软件技术,特别是当我们非常想知道某个软件的某些功能究竟是如何实现的,而手头又没有合适的资料的时候。
我国的软件产业落后于西方,甚至在某些方面落后于邻国的印度和日本。如果我们能够利用逆向技术去研究国外的一些一流软件的设计思想和实现方法,那么我国的软件技术将会得到极大的提升。目前,国内关于逆向分析技术的资料实在是少之又少,大中专院校的计算机相关专业对此项技术也尚未有足够的重视。
有很多人认为研究程序的内部原理会破坏“黑盒子”封装性,但是如果我们只是在别人搭建好的平台上做开发,那么始终只能使用别人提供的各种未开源的SDK,会一直被别人的技术牵制着。如果我们能够充分掌握逆向分析的方法,就可以洞悉各种SDK的实现原理,学习各种一流软件所采用的先进技术,取长补短,为我所用。若能如此,实为我国软 ............

书籍插图:
书籍《C++反汇编与逆向分析技术揭秘》 - 插图1
书籍《C++反汇编与逆向分析技术揭秘》 - 插图2

以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。

版权声明:书云(openelib.org)是世界上最大的在线非盈利图书馆之一,致力于让每个人都能便捷地了解我们的文明。我们尊重著作者的知识产权,如您认为书云侵犯了您的合法权益,请参考版权保护声明,通过邮件openelib@outlook.com联系我们,我们将及时处理您的合理请求。 数研咨询 流芳阁 研报之家 AI应用导航 研报之家
书云 Open E-Library » C++反汇编与逆向分析技术揭秘 - (EPUB全文下载)