当前位置: 首页> 教育> 就业 > 渗透测试基础及x64dbg调试器

渗透测试基础及x64dbg调试器

时间:2025/7/18 16:52:49来源:https://blog.csdn.net/qq_67812668/article/details/141097081 浏览次数:0次

一、实验原理

x64dbg 是一款开源且免费的 Ring 3 级动态调试器,采用 QT 编写,支持 32 / 64 位程序。其反汇编引擎 BeaEngine 和 Capstone 功能极其强大,也有丰富的插件和脚本功能,且并保持更新,目前已经基本替代了 OllDbg。

软件解压后根目录存在x96dbg, 双击 x96dbg,出现三个弹窗,会生成 x96dbg.ini 文件,里面记录着 32 位和 64位 dbg 程序的路径。当需要把整个程序文件夹移动到其他路径时,最好把这个 ini 删除,重新双击让它再生成。当需要把它加到发送到菜单中的时候,也推荐添加 x96dbg,它会自动选择用 x32 还是 x64dbg 打开。

二、X64dbg使用示例

1.熟悉x64dbg界面, 以及调试的快捷键(F7步进,F8步过)

2.加载32位测试程序,观察寄存器、内存、标志寄存器中的标志位等

3.通过操作通用寄存器EAX/EBX/ECX/EDX和MOV指令,观察OF/SF/CF/ZF的变化

4.通过操作PUSH和POP指令,观察堆栈上数据的变化

5.X86体系结构的数据存储方式(小端、大端字节序)

6.指令片段

附指令片段:

MOV EAX, 20101234      (x64dbg输入时,十六进制请加前缀0X)

MOV EBX, 70101234

ADD EAX, EBX        (观察标志位SF变化)

SF是符号标志符,结果为负,S=1,结果为正,S=0.

SF变化:0,0,1

附指令片段:

MOV EAX, 90101234      (x64dbg输入时,十六进制请加前缀0X)

MOV EBX, 80101234

ADD EAX, EBX        (观察标志位OF变化)

OF是溢出标志符,一个寄存器如果存放的值超过所能表示的范围,就是溢出,结果溢出,O=1,反之,O=0.

OF变化:0,0,1

附指令片段:

MOV EAX, E0101234      (x64dbg输入时,十六进制请加前缀0X)

MOV EBX, 60101234

ADD EAX, EBX        (观察标志位CF变化)

CF是进位标志符,无符号位运算的结果超过存储器存放的最大值,C=1,没有超过,C=0

CF变化:0,0,1

附指令片段:

MOV EAX, E0000001      (x64dbg输入时,十六进制请加前缀0X)

MOV EBX, 1FFFFFFF

ADD EAX, EBX        (观察标志位ZF变化)

ZF是0标志符,运算结果为0,Z=1,结果不是0,Z=0

ZF变化:0,0,1

通过操作PUSH和POP指令,观察堆栈上数据的变化

附指令片段:

MOV EAX, 1234      (x64dbg输入时,十六进制请加前缀0X)

MOV EBX, 5678

PUSH EAX

PUSH EBX

POP ECX         (ECX的值以及内存的存储情况,体会栈的操作)

三、总结 

1.X64dbg的调试快捷键F8含义

调试快捷键F8是步进,其含义的逐语句,就是每次执行一行语句。如果碰到函数调用,就会进入到函数里。

2.ESP的值是如何随着PUSH/POP而发生变化的

ESP:栈指针寄存器,其内存放这一个指针,改指针永远指向系统栈最上面一个栈帧的栈顶。

PUSH压栈,ESP值变小;POP出栈,ESP值变大;

3.数据的大端和小端存储方式

大端存储方式:低地址存放高字节数

小端存储方式:低地址存放低字节数

关键字:渗透测试基础及x64dbg调试器

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: