认识 x64dbg
9unk Lv5

下载安装 x64dbg

x64dbg 下载地址

4.jpg

下载完成后,直接解压运行 x96dbg.exe。运行 x32dbg/x64dbg 出现如下界面表示运行成功:

5.jpg

6.jpg

x64dbg 界面介绍

7.jpg

  1. 反汇编窗口
第一列 第二列 第三列 第四列
内存地址 汇编指令的机器码 汇编指令 注释

  • 内存地址:内存是被划分成多个内存单元来存储数据的。每个内存单元有 1byte 的空间来存储数据。为了读取内存单元的数据,所以使用内存地址来给内存单元编号,这样就能读取到相对应的内存单元中的数据。

  • 机器码:汇编也是编程,只不过是最底层的编程。因为 CPU 只能识别 0 和 1组成的机器码,所以汇编指令需要转换成机器码 CPU 才能识别。

  • 汇编指令:就是汇编编程的指令,指令这块的学习,可以边逆向边学习。

  • 注释:x64dbg 可以对程序进行智能分析,并设置相应的注释。如:字符串、汇编指令等。也可自定注释内容,在逆向过程中非常有用。

  1. 寄存器窗口

这里显示的是当前所调试程序的寄存器信息。

8.jpg

第一块 第二块 第三块 第四块
常用寄存器 EIP寄存器 标志寄存器 调试寄存器

  • 常用寄存器:EAX~EDX(一般寄存器)、EBP和ESP(堆栈寄存器)、ESI/EDI(源目标索引字符串)

  • EIP 寄存器:用来存储 CPU 要读取指令的地址。这里就表示程序将要读取执行 00401000 地址的指令。

  • 标志寄存器:标志寄存器又称程序状态字,主要是反应处理器的状态和逻辑计算结果。在逆向过程中通常用在程序的跳转和算法中。

  • 调试寄存器:对于 Dr0-Dr3 的四个调试寄存器,他们的作用是存放中断的地址;对于 Dr4,Dr5 这两个寄存器我们一般不使用他们,保留;对于 Dr6,Dr7 这两个寄存器的作用是用来记录你在 Dr0-Dr3 中下断的地址的属性。

  1. 数据窗口

这里一般查看的是内存地址的内容。最左边是地址,接着是对应地址的十六进制数据,最右侧是十六进制对应的 ASCII 码。

  1. 堆栈窗口

显示一些堆栈的信息。

常用快捷键

快捷键 功能描述
F2 下断点(指定断点地址)
F3 加载一个可执行程序,进行调试分析
F4 程序执行到光标处
F5 缩小、还原当前窗口
F7 单步步入
F8 单步步过
F9 直接运行程序,遇到断点处,程序暂停
Ctrl+F2 重新运行程序到起始处,一般用于重新调试程序
Ctrl+F9 执行到函数返回处,用于跳出函数实现
Alt+F9 执行到用户代码处,用于快速跳出系统函数
Ctrl+G 输入十六进制地址,快速定位到该地址处
Alt+b 打开断点窗口(用户修改当前所设置的断点)

把程序拖到 x64dbg 中可以看到如下图所示的界面。这个时候我们需要注意的是它并不是在要调试程序的模块内,这个时候我们直接 F9 运行。

9.jpg

当显示下图的界面才真正进入我们的程序内部。这个时候我们就可以开始分析啦。

10.jpg

reference

x64dbg入门系列(一)-认识x64dbg

  • 本文标题:认识 x64dbg
  • 本文作者:9unk
  • 创建时间:2020-12-03 11:00:07
  • 本文链接:https://9unkk.github.io/2020/12/03/ren-shi-x64dbg/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!