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

书:pan.baidu.com/s/1y8Z3IfDstu8GPcVsYXlEaA?pwd=ljtd

一、基础知识与工具准备

  1. 反汇编与逆向分析技术概述
    • 介绍了反汇编与逆向分析的基本概念、目的和应用场景。
  2. 工作环境与相关工具
    • 介绍了Visual Studio、GCC、OllyDbg、x64dbg、WinDbg等调试工具的安装和使用。
    • 介绍了IDA(Interactive Disassembler)等反汇编静态分析工具的使用。
  3. 反汇编引擎的工作原理
    • 阐述了反汇编引擎如何将机器码转换为汇编代码的过程。

二、C++反汇编揭秘

  1. 基本数据类型的表现形式
    • 分析了整数类型、浮点数类型、字符和字符串、布尔类型、地址、指针和引用、常量等C++基本数据类型在汇编中的表现形式。
  2. 认识启动函数与用户入口
    • 介绍了程序的真正入口、VS2019的启动函数以及main函数的识别方法。
  3. 表达式的求值过程
    • 分析了算术运算、关系运算、逻辑运算、位运算等表达式的求值过程及其在汇编中的实现。
  4. 流程控制语句的识别
    • 介绍了if语句、if…else…语句、switch语句等流程控制语句在汇编中的识别方法。

三、函数与变量

  1. 函数的工作原理
    • 阐述了栈帧的形成和关闭、各种调用方式、函数参数和返回值的传递方式等。
  2. 变量在内存中的位置和访问方式
    • 分析了全局变量、局部变量、局部静态变量、堆变量等在内存中的位置和访问方式。

四、数组、指针与结构体

  1. 数组和指针的寻址
    • 介绍了数组在函数内、作为参数、作为返回值时的寻址方式。
    • 分析了下标寻址和指针寻址的区别。
  2. 多维数组与存放指针类型数据的数组
    • 介绍了多维数组的寻址方式和存放指针类型数据的数组的处理方法。
  3. 指向数组的指针变量与函数指针
    • 分析了指向数组的指针变量的使用方法和函数指针的概念及应用。
  4. 结构体和类
    • 介绍了结构体的内存布局、this指针、静态数据成员、对象作为函数参数和返回值时的处理方式。

五、构造函数与析构函数

  1. 构造函数的出现时机
    • 分析了构造函数在对象创建时的调用时机。
  2. 析构函数的出现时机
    • 介绍了析构函数在对象销毁时的调用时机。

六、虚函数与继承

  1. 虚函数的机制与识别
    • 阐述了虚函数的实现机制和识别方法。
  2. 从内存角度看继承和多重继承
    • 分析了类和类之间的关系、多重继承、抽象类和虚继承等概念在内存中的表现形式。

七、异常处理

  1. 异常处理的相关知识
    • 介绍了异常处理的基本概念、流程和机制。
  2. 异常类型的处理流程
    • 分析了异常类型为基本数据类型和对象时的处理流程。

八、逆向分析技术应用

  1. 逆向分析技术案例
    • 通过PEiD的工作原理分析、调试器OllyDbg的工作原理分析、大灰狼远控木马逆向分析、WannaCry勒索病毒逆向分析等案例,展示了逆向分析技术的具体应用和实施步骤。

这些关键内容涵盖了《C++反汇编与逆向分析技术揭秘(第2版)》的主要知识点和技术要点,对于学习和掌握C++反汇编与逆向分析技术具有重要的指导意义。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注