渗透测试基础及x64dbg调试器

一、实验原理

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.数据的大端和小端存储方式

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

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

  • 13
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值