x64dbg的基本使用

目录

x64dbg简介

术语

打开程序

x64dbg打开界面介绍

汇编窗口

内存窗口

寄存器窗口

堆栈窗口

基本调试方法

搜索字符串

退出程序


x64dbg简介

x64dbg是软件逆向里必不可少的动态调试工具,本来考虑学习一下OD,但是考虑到OD很久之前就已经停止维护,而x64dbg则是一个开源项目,有大量的人员进行维护,很多功能都比OD更加优秀。所以建议使用x64dbg进行学习。

x64dbg官网地址:https://x64dbg.com/#start

x64dbg本身也是一个很优秀的开源项目,后期值得细细阅读其源码

本文只介绍学习初始阶段高频使用的快捷键以及功能,话不多说,正文开始!!!

术语

程序领空:程序自己代码的位置

系统领空:系统代码所处的位置

程序入口点EOP:程序在开始运行时执行的第一条指令的地址

在分析对饿时候一定要注意自己是否还在用户代码的位置

打开程序

下载过来x64dbg后,会又两个,一个是x32dbg,只能打开32位程序,一个是x64dbg,只能打开64位程序。

通过x64dbg打开程序,之后调试器就接管了进程。

方式一:附加的方式

菜单栏---文件---附加

x64dbg的基本使用_第1张图片

不推荐这种方式,因为他不会从程序的最开始的位置进行执行

x64dbg的基本使用_第2张图片

方式二:菜单栏---文件---打开

x64dbg的基本使用_第3张图片

打开之后,就会进入程序的入口

x64dbg的基本使用_第4张图片

程序的执行入口并不是对应C代码的main()函数。这里指向的是mainCRTStarup,这个的作用是为main()的执行做铺垫,比如初始化线程等等。

x64dbg打开界面介绍

x64dbg的基本使用_第5张图片

汇编窗口

这里是C代码对应的反汇编代码,一般显示代码段 

简单介绍:

  • 第一列表示的是当前这条汇编指令所在的地址。每一列的地址都是依次排序的,第二行的地址是第一行 的地址再加上指令长度。两个十六进制数,代表一个字节。在第一列双击,可以看到一个箭头,你可以 以这个位置为起始地址,看到相对于这个地址的偏移。
  • 第二列是机器码,也就Opcode,这个是给计算机看的。在这个位置双击,可以下一个F2断点。
  • 第三列是汇编指令。其中。x64dbg的原理就是读取代码段的Opcode指令,将他翻译成汇编语言。在这 个位置双击可以修改汇编代码,或者按空格。
  • 第四列是注释,窗口。双击可以在当前列添加注释。

其它细节:

  • 那个蓝色标签显示的是EIP寄存器的指向,即是下一条执行指令的位置
  • 黑色表示程序的入口所在,一般指向mainSRTStartup
  • jmp指令的机器码表示通常是E9加上一个32位的相对偏移量。E9翻译为汇编表示是jmp
  • 在这个界面的最右边是可以写注释的

内存窗口

数据窗口,这里一般查看的是内存地址的内容。

这个里面存放的是数据段的数据 第一列是地址,第二列是地址里面存放的值,第三列是x64dbg的注释。存放的值默认是显示地址。 切换到十六进制的视图: 切换到字符串视图: 切换到Unicode的字符串视图: 切换到浮点窗口 数据和代码没有本质的区别,只不过一个能被执行,一个不能被执行

寄存器窗口

显示8大寄存器,指令指针寄存器,以及标志寄存器

堆栈窗口

显示一些堆栈的信息。

基本调试方法

首先我们了解一下一些基本的操作指令。

F2:设置断点。选中你想要下断点的那一行,摁下F2即可

x64dbg的基本使用_第6张图片

F4:运行到光标处,点击你想要执行的那一行,摁下F4就会跳转到这里,EIP指向你想要执行的那一行,下一条的汇编的执行就是你所选中的

x64dbg的基本使用_第7张图片

F9:运行程序(如果没有碰到断点,程序会一直执行到结束。

F7:单步步入。(遇到call指令,进入call函数的实现处继续执行汇编指令)

F8:单步步过。(遇到call指令,执行call函数,之后接着执行call指令的下一条指令)

这里在程序入口摁下F7单步执行,鼠标放在上面会显示jmp命令的跳转位置 0x002C2520

x64dbg的基本使用_第8张图片

摁下F7或者F8就会进入jmp调转之后的界面

x64dbg的基本使用_第9张图片

在call命令处摁下F7会跳转进函数的具体实现

Ctrl+F9: 执行到函数返回处,用于跳出函数实现,函数已经执行完毕、

Alt+F9:执行到用户代码,用于快速跳出系统函数

Ctrl+G:输入十六进制地址,快速定位到该地址处

在内存页面或者反汇编页面摁下 CTRL + G就会弹出一个窗口,输入内存地址,就可以跳转到那里

x64dbg的基本使用_第10张图片

搜索字符串

要注意模块问题

x64dbg的基本使用_第11张图片

 或者菜单栏 -- 引用

x64dbg的基本使用_第12张图片

摁下Enter键

会在反汇编页面跳转到

x64dbg的基本使用_第13张图片

退出程序

菜单栏文件脱离即可

x64dbg的基本使用_第14张图片

你可能感兴趣的:(java,开发语言)