Logo
☆☆☆☆☆
0.0
Intermediate
16h

Linux 下 x64 架构的调试、反汇编与逆向工程

GNU 调试器(GDB)用于在 Linux/Unix 环境中调试 C/C++ 程序。它是一个强大的工具,可用于探究程序内部的运行情况,以及程序执行过程中内存内容的变化。 本课程的重点是程序的反汇编,我们将使用简单的 C 语言操作进行演示。借助 GDB,我们将检查寄存器和内存的内容,并学习这些内容如何在执行基本操作时发生变化。随后,我们将深入探讨指针、栈以及函数参数的使用,并分析不同寄存器值的更新过程。通过反汇编输出,我们将学习如何重建一个简单的 C 程序。反汇编输出对于调试和核心转储分析至关重要。我们将使用 x64 架构的汇编语言。 完成本课程后,您将能够以汇编级别调试程序和内存内容,无论是在程序执行过程中,还是在程序崩溃时排查问题。

15 Lessons
Included in Subscription Plan
Personalized Learning
Powered by AI
Linux 下 x64 架构的调试、反汇编与逆向工程
GNU 调试器(GDB)用于在 Linux/Unix 环境中调试 C/C++ 程序。它是一个强大的工具,可用于探究程序内部的运行情况,以及程序执行过程中内存内容的变化。 本课程的重点是程序的反汇编,我们将使用简单的 C 语言操作进行演示。借助 GDB,我们将检查寄存器和内存的内容,并学习这些内容如...

WHAT YOU'LL LEARN

熟悉在 GDB 环境下对简单 C/C++ 程序进行反汇编

Content

15 Lessons • 0 Quizzes • 0 Challenges

课程简介
  1. 1

    简介

内存、寄存器与简单算术
  1. 1

    内存与寄存器的比较

  2. 2

    给内存和寄存器分配数字

  3. 3

    向内存单元添加数字

  4. 4

    递增和递减数字

  5. 5

    乘法运算

代码优化
  1. 1

    GDB 汇编输出——无优化模式

  2. 2

    GDB 反汇编输出——优化模式

  3. 3

    内存、寄存器与代码优化测验

数值表示
  1. 1

    数制系统

  2. 2

    十六进制数表示法

指针
  1. 1

    指针简介

  2. 2

    使用指针为内存单元赋值

  3. 3

    使用指针相加数字

  4. 4

    使用指针递增数字

  5. 5

    使用指针进行数字相乘

  6. 6

    关于数值表示与指针的测验

字节、字、双字和四字
  1. 1

    粒度

  2. 2

    内存布局

内存指针
  1. 1

    声明不同寻址类型的指针

  2. 2

    指针基础

  3. 3

    内存指针项目:内存布局

逻辑指令与RIP
  1. 1

    逻辑指令

  2. 2

    清零内存或寄存器

  3. 3

    指令指针

  4. 4

    关于粒度、内存指针及逻辑指令的测验

使用指针重构程序
  1. 1

    未优化的反汇编输出

  2. 2

    重构 C/C++ 代码

  3. 3

    优化模式下的反汇编输出

内存与栈
  1. 1

    栈简介

  2. 2

    栈在内存和寄存器中的应用

  3. 3

    在 GDB 中探索栈

帧指针与局部变量
  1. 1

    栈帧中的栈和局部变量

  2. 2

    函数中的帧指针与局部变量

  3. 3

    局部变量

  4. 4

    关于内存、栈、帧指针和局部变量的测验

函数参数
  1. 1

    函数与栈

  2. 2

    一个包含函数与栈的反汇编项目

更多指令
  1. 1

    指令 I

  2. 2

    指令 II

函数指针参数
  1. 1

    项目实现

  2. 2

    函数参数与函数指针参数测验

代码反汇编模式概述
  1. 1

    代码概要

Certificate of Completion

Showcase your accomplishment by sharing your certificate of completion.

Course Author:Anonymous User

Reviews

Read reviews from students who have taken this course and share your own experience.

Reviews & Comments (0)