目录

【飞郁2022新课程】32 - xdbg的认识与设置

目录

xdbg的简介

Xllydbg(简称xdbg)和OD的用法和界面都是很像的,由于网络安全的发展,OD无法满足大部分人的需要了,更多的人习惯对xdbg进行处理,来达到正常调试的目的.

从官网下载一款xdbg,安装后双击下图的exe程序,可以打开32位的xdbg

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/af719d58b267518a797e86c04bba56cb28712f2c.jpg@942w_390h_progressive.jpg

xdbg的初始设置

打开xdbg并随便附加一款程序,我们先来对xdbg进行一些设置,这些设置更多是针对64位的程序的

我们在选项中点选择选项,可以看到事件设置

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/10b3b15c8783792c563eb3c15ebf8ecae8bd3872.png@942w_396h_progressive.png

这里的断点没有特殊需求可以全部取消,

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/c8b2cfc82bfdebcb97b63b7e46e3eb7dae7bd8d6.png@576w_447h_progressive.png

然后在异常中添加区间为0-0xFFFFFFFF,保证不会被"异常一"干扰,当然如果出现了"异常二"则说明程序已经崩溃了.

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/187ffc1ffb00d1081fb16bb1fc670bdcae924bc6.png@498w_555h_progressive.png

在反汇编界面,我们可以把高亮和0x前缀加上,这样操作起来更加方便.

然后在选项-外观中选择字体

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/2806f20a3da9359e890cf3b36e4589ca75d8e116.png@785w_645h_progressive-20211224150740947.png

我们可以根据自己的需求和显示器的分辨率来对字体大小进行修改,保证能够完整的看到代码和其他的信息.

做完以上的设置,我们就可以正常的进行操作了

xdbg和OD的区别

由于xdbg和OD的主要操作方式都是类似的,所以我们主要看一下二者的区别

1.1 xdbg的命令行插件不是很完善,所以我们跟多是采用dump或者ctrl+G来进行数据窗口跟随,并且在数据窗口右键进行下断点,或者查看不同的数据类型等操作

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/2f6798e05794dea7926cccfb2072bf483edc8921.png@531w_596h_progressive.png

1.2 在xdbg的反汇编窗口中点右键,我们发现布局和OD有很大的不同

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/171d1650e8237b93b53d474b2842fa0559a83cc0.png@510w_855h_progressive-20211224150734091.png

这里缺少了一些OD中有的内容,比如查看注释,真正的查看注释是在上面菜单栏的"视图"-“注释"中查看,也可以直接点图中的按钮

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/6062c82a558bf71ea9e553765106e6b981bd96d7.png@942w_99h_progressive.png

还有一些功能的位置也发生了变化,比如查找常量,这个功能在下面的"搜索"中

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/d7233fa36152e6c3c734fb83c35a5d167002f7cb.png@791w_132h_progressive-20211224150725574.png

这个搜索是有范围的,我们可以通过不同的范围去查找常量,命令等等

1.3 xdbg的分析代码和OD也有一些不同,我们可以在代码段中点击"A"来对局部代码进行分析,这一点要比OD方便的多

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/fda9f8c09360a61347282daa4a19ba97e2162dc4.png@942w_150h_progressive.png

1.4 xdbg还有函数调用的参数窗口,可以在函数断下时查看参数值,这一点也比OD方便一些,不过实用性并不强

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/bb4d335ccc62c589a7556d32d4bf5ada0a36e013.png@695w_128h_progressive.png

1.5 当我们学习一段时间后还会发现,xdbg有一个OD无法比拟的优势,就是他可以查看的寄存器非常多,比如xmm和ymm寄存器

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/e64125f169b583321945ed0f9e24608a1213d86e.png@696w_497h_progressive.png

这些寄存器在OD中是无法查看的,虽然OD也识别这些寄存器的指令,但是并没有对其数值及进行显示.

1.6 xdbg的调用堆栈,和OD中的"K"功能在界面上还是有一点小差别的

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/8243c267de28974be29b675b0aaa7cfe57aee8d4.jpg@942w_239h_progressive.jpg

xdbg需要完善的功能

当然xdbg也有一些不是很完善的功能,比如在堆栈窗口中无法对数值进行查找,只能复制到文档中查找.

xdbg的执行到返回,值能执行到retn,无法像OD一样自带F8步进

xdbg和OD各有利弊,相信在未来几年,xdbg的功能也会越来越完善,也建议大家能够掌握这两种调试器的使用方法,以便于后面的学习.