《C++反汇编与逆向分析技术揭秘》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:钱林松,赵海旭著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2011
  • ISBN:7111356332
  • 页数:414 页
图书介绍:

第一部分 准备工作 2

第1章 熟悉工作环境和相关工具 2

1.1调试工具Microsoft Visual C++ 6.0和OllyDBG 2

1.2反汇编静态分析工具IDA 5

1.3反汇编引擎的工作原理 11

1.4本章小结 16

第二部分C++反汇编揭秘 18

第2章 基本数据类型的表现形式 18

2.1整数类型 18

2.1.1无符号整数 18

2.1.2有符号整数 18

2.2浮点数类型 20

2.2.1浮点数的编码方式 21

2.2.2基本的浮点数指令 23

2.3字符和字符串 26

2.3.1字符的编码 27

2.3.2字符串的存储方式 28

2.4布尔类型 29

2.5地址、指针和引用 29

2.5.1指针和地址的区别 30

2.5.2各类型指针的工作方式 31

2.5.3引用 34

2.6常量 35

2.6.1常量的定义 36

2.6.2 #define和const的区别 37

2.7本章小结 38

第3章 认识启动函数,找到用户入口 40

3.1程序的真正入口 40

3.2了解VC++6.0的启动函数 40

3.3 main函数的识别 44

3.4本章小结 46

第4章 观察各种表达式的求值过程 47

4.1算术运算和赋值 47

4.1.1各种算术运算的工作形式 47

4.1.2算术结果溢出 82

4.1.3自增和自减 83

4.2关系运算和逻辑运算 85

4.2.1关系运算和条件跳转的对应 85

4.2.2表达式短路 86

4.2.3条件表达式 88

4.3位运算 92

4.4编译器使用的优化技巧 94

4.4.1流水线优化规则 97

4.4.2分支优化规则 101

4.4.3高速缓存(cache)优化规则 101

4.5一次算法逆向之旅 102

4.6 本章小结 109

第5章 流程控制语句的识别 110

5.1 if语句 110

5.2 if…else…语句 112

5.3用if构成的多分支流程 115

5.4 switch的真相 119

5.5难以构成跳转表的switch 128

5.6降低判定树的高度 133

5.7 do/while/for的比较 137

5.8编译器对循环结构的优化 143

5.9本章小结 148

第6章 函数的工作原理 149

6.1栈帧的形成和关闭 149

6.2各种调用方式的考察 152

6.3使用ebp或esp寻址 155

6.4函数的参数 158

6.5函数的返回值 160

6.6 回顾 163

6.7本章小结 165

第7章 变量在内存中的位置和访问方式 166

7.1全局变量和局部变量的区别 166

7.2局部静态变量的工作方式 169

7.3堆变量 173

7.4本章小结 177

第8章 数组和指针的寻址 178

8.1数组在函数内 178

8.2数组作为参数 181

8.3数组作为返回值 185

8.4下标寻址和指针寻址 189

8.5多维数组 193

8.6存放指针类型数据的数组 199

8.7指向数组的指针变量 201

8.8 函数指针 204

8.9本章小结 206

第9章 结构体和类 207

9.1对象的内存布局 207

9.2 this指针 212

9.3静态数据成员 217

9.4对象作为函数参数 220

9.5对象作为返回值 227

9.6本章小结 232

第10章 关于构造函数和析构函数 233

10.1构造函数的出现时机 233

10.2每个对象都有默认的构造函数吗 243

10.3析构函数的出现时机 245

10.4本章小结 254

第11章 关于虚函数 256

11.1虚函数的机制 256

11.2虚函数的识别 261

11.3本章小结 268

第12章 从内存角度看继承和多重继承 269

12.1识别类和类之间的关系 270

12.2多重继承 292

12.3虚基类 298

12.4菱形继承 299

12.5本章小结 307

第13章 异常处理 308

13.1异常处理的相关知识 308

13.2异常类型为基本数据类型的处理流程 314

13.3异常类型为对象的处理流程 323

13.4识别异常处理 329

13.5本章小结 341

第三部分 逆向分析技术应用 344

第14章PEiD的工作原理分析 344

14.1开发环境的识别 344

14.2开发环境的伪造 353

14.3本章小结 356

第15章“熊猫烧香”病毒逆向分析 357

15.1调试环境配置 357

15.2病毒程序初步分析 358

15.3“熊猫烧香”的启动过程分析 360

15.4“熊猫烧香”的自我保护分析 366

15.5“熊猫烧香”的感染过程分析 369

15.6本章小结 379

第16章 调试器OllyDBG的工作原理分析 380

16.1 INT3断点 380

16.2内存断点 385

16.3硬件断点 390

16.4异常处理机制 396

16.5加载调试程序 402

16.6本章小结 406

第17章 反汇编代码的重建与编译 407

17.1重建反汇编代码 407

17.2编译重建后的反汇编代码 410

17.3本章小结 411

参考文献 412