首页

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

标签:C++反汇编,main函数,if语句,结构体和类,调试器OllyDBG     发布时间:2016-12-22   
  • 云盘下载:
  • [提取码:0000]
  • 本地下载:
       ( 需积分:2  )

一、目录介绍

C++反汇编与逆向分析技术揭秘副本.jpg

第一部分  准备工作

第1章  熟悉工作环境和相关工具
1.1    调试工具Microsoft Visual C++ 6.0和OllyDBG / 2
1.2    反汇编静态分析工具IDA / 5
1.3    反汇编引擎的工作原理 / 11
1.4    本章小结 / 16

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

第2章  基本数据类型的表现形式
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章  认识启动函数,找到用户入口
3.1    程序的真正入口 / 40
3.2    了解VC++ 6.0的启动函数 / 40
3.3    main函数的识别 / 44
3.4    本章小结 / 46

第4章  观察各种表达式的求值过程
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章  流程控制语句的识别
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章  函数的工作原理
6.1    栈帧的形成和关闭 / 149
6.2    各种调用方式的考察 / 152
6.3    使用ebp或esp寻址 / 155
6.4    函数的参数 / 158
6.5    函数的返回值 / 160
6.6    回顾 / 163
6.7    本章小结 / 165

第7章  变量在内存中的位置和访问方式
7.1    全局变量和局部变量的区别 / 166
7.2    局部静态变量的工作方式 / 169
7.3    堆变量 / 173
7.4    本章小结 / 177

第8章  数组和指针的寻址
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章  结构体和类
9.1    对象的内存布局 / 207
9.2    this指针 / 212
9.3    静态数据成员 / 217
9.4    对象作为函数参数 / 219
9.5    对象作为返回值 / 226
9.6    本章小结 / 231

第10章  关于构造函数和析构函数
10.1    构造函数的出现时机 / 233
10.2    每个对象都有默认的构造函数吗 / 243
10.3    析构函数的出现时机 / 245
10.4    本章小结 / 254


第11章  关于虚函数
11.1    虚函数的机制 / 256
11.2    虚函数的识别 / 261
11.3    本章小结 / 268

第12章  从内存角度看继承和多重继承
12.1    识别类和类之间的关系 / 270
12.2    多重继承   / 292
12.3    虚基类 / 298
12.4    菱形继承 / 299
12.5    本章小结 / 307

第13章  异常处理
13.1    异常处理的相关知识 / 308
13.2    异常类型为基本数据类型的处理流程 / 314
13.3    异常类型为对象的处理流程 / 323
13.4    识别异常处理 / 329
13.5    本章小结 / 341

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

第14章  PEiD的工作原理分析
14.1    开发环境的识别 / 344
14.2    开发环境的伪造 / 353
14.3    本章小结 / 356

第15章  “熊猫烧香”病毒逆向分析
15.1    调试环境配置 / 357
15.2    病毒程序初步分析 / 358
15.3    “熊猫烧香”的启动过程分析 / 360
15.4    “熊猫烧香”的自我保护分析 / 366
15.5    “熊猫烧香”的感染过程分析 / 369
15.6    本章小结 / 379

第16章  调试器OllyDBG的工作原理分析
16.1    INT3断点 / 380
16.2    内存断点 / 385
16.3    硬件断点 / 390
16.4    异常处理机制 / 396
16.5    加载调试程序 / 402
16.6    本章小结 / 406

第17章  反汇编代码的重建与编译
17.1    重建反汇编代码 / 407
17.2    编译重建后的反汇编代码 / 410
17.3    本章小结 / 411
        参考文献 / 412

��