全部商品分类

您现在的位置: 全部商品分类 > 电子电脑 > 计算机技术 > 程序与语言

C++反汇编与逆向分析技术揭秘(第2版)

  • 定价: ¥139
  • ISBN:9787111689911
  • 开 本:16开 平装
  •  
  • 折扣:
  • 出版社:机械工业
  • 页数:591页
  • 作者:钱林松//张延清|...
  • 立即节省:
  • 2021-09-01 第2版
  • 2021-09-01 第1次印刷
我要买:
点击放图片

导语

  

内容提要

  

    这是一部系统讲解反汇编与逆向分析技术原理、流程、方法和实用技巧的著作。
    本书第1版出版于2011年,10年来畅销不衰,成为反汇编与逆向工程领域的标志性著作,被数十万安全工程师和C++工程师奉为瑰宝。在全球学术界和企业界都享有盛誉,故第2版得到了全球15位安全技术专家的倾力推荐。第2版在技术、工具和案例等方面做了大量的更新和补充。
    通过本书,你将掌握以下知识或技能:
    ·逆向分析技术的工具和原理;
    ·逆向分析技术的流程和方法;
    ·逆向分析技术的精髓和实用技巧;
    ·软件调试的技术原理,以及代码运行时的内存表现;
    ·C++语法的实现机制和反汇编表现形式。
    全书共18章,分为三个部分:
    第一部分准备工作(第1章)
    简单地介绍了编译器、调试器和反汇编静态分析工具的使用方法以及反汇编引擎的工作原理;
    第二部分C++反汇编揭秘(第2~13章)
    以多种编译器为例解析了每个C/C++知识点的汇编表现形式,通过整理反汇编代码梳理流程和脉络,讲解了调试和识别各种C/C++语句的方法,并且深入剖析各知识点的底层机制;
    第三部分逆向分析技术应用(第14~18章)
    通过对PEiD、调试器OllyDbg、木马、勒索病毒等实际应用的逆向分析,带领读者领路逆向分析技术的魔力,并加深对所学理论知识的理解。

目录

赞誉
序一
序二
序三
前言
第一部分  准备工作
  第1章  熟悉工作环境和相关工具
    1.1  安装Visual Studio 2019
    1.2  安装GCC
    1.3  调试工具OllyDbg
    1.4  调试工具x64dbg
    1.5  调试工具WinDbg
    1.6  反汇编静态分析工具IDA
    1.7  反汇编引擎的工作原理
    1.8  本章小结
第二部分  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  了解VS2019的启动函数
    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  高速缓存优化规则
    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  x64调用约定
    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  x64异常处理
      13.5.1  RUNTIME_FUNCTION结构
      13.5.2  UNWIND_INFO结构
      13.5.3  UNWIND_CODE结构
      13.5.4  特定于语言的处理程序
      13.5.5  x64 FuncInfo的变化
      13.5.6  还原x64的try…catch
    13.6  本章小结
第三部分  逆向分析技术应用
  第14章  PEiD的工作原理分析
    14.1  开发环境的识别
    14.2  开发环境的伪造
    14.3  本章小结
  第15章  调试器OllyDbg的工作原理分析
    15.1  INT3断点
    15.2  内存断点
    15.3  硬件断点
    15.4  异常处理机制
    15.5  加载调试程序
    15.6  本章小结
  第16章  大灰狼远控木马逆向分析
    16.1  调试环境配置
    16.2  病毒程序初步分析
    16.3  启动过程分析
    16.4  通信协议分析
    16.5  远控功能分析
    16.6  本章小结
  第17章  WannaCry勒索病毒逆向分析
    17.1  tasksche.exe勒索程序逆向分析
      17.1.1  病毒初始化
      17.1.2  加载病毒核心代码
      17.1.3  病毒核心代码
    17.2  mssecsvc.exe蠕虫程序逆向分析
      17.2.1  蠕虫病毒代码初始化
      17.2.2  发送漏洞攻击代码
    17.3  永恒之蓝MS17-010漏洞原理分析
      17.3.1  漏洞1利用分析
      17.3.2  漏洞2利用分析
      17.3.3  漏洞3利用分析
    17.4  本章小结
  第18章  反汇编代码的重建与编译
    18.1  重建反汇编代码
    18.2  编译重建后的反汇编代码
    18.3  本章小结
参考文献