Windows7 Debug Test

Windows7 Debug Test

eryar@163.com

1.Introduction

在郁大师的影响下,很早之前买了本王爽老师的《汇编语言》,可惜一直闲置,今天终于得空,可以学习起来了。为了使学习效果更好,还是写点东西记录下来,一方面巩固下知识点,一方面起到一个监督作用。

毕竟不是计算机专业科班出身,这些计算机基础知识只有靠自学。意识到汇编的重要性是从大师可以反汇编和逆向一些软件开始的。汇编在Debug的过程中也有重要作用,如在Debug时看到这种界面,总是有想理解其意义的好奇心:

Figure 1. Disassembly and Registers in Visual Studio

通过反汇编代码,对程序的运行情况更加清晰。学习汇编的两个目的:充分获得底层编程的体验,深刻理解机器运行程序的机理。知道了来胧去脉,在应用的过程中才能更加自信。

本文主要介绍在Windows7中运行debug,并在debug程序中执行汇编代码,从而方便理论知识的学习。

2.Run Debug in Windows7 

Debug是DOS, Windows提供的实模式(8086)程序的调试工具,使用它可以查看CPU各种寄存器、内存情况和在机器码级跟踪程序的运行。因为debug程序是16位的,在64位的Windows7中无法运行,所以根据网上的方法,先安装一个DOS模拟环境,再运行debug。

分别下载工具DOS BOX和32位机器上的debug,这里给出DOSBOX和MASM,其中Debug包含在MASM中。

Figure 2. DOSBox for Debug

安装好DOSBox后,将MASM放到D盘中,运行如下命令来运行Debug:

mount c d:\MASM 

c: 

debug 

-r 

就可以显示CPU中的相关信息,如下图所示:

Figure 3. Debug in DOSBox

Debug的命令比较多,下面简单介绍几个常用的:

v R命令:查看、修改CPU寄存器的内容;

v D命令:查看内存中的内容;

v A命令:以汇编指令的格式在内存中写入一条机器指令;

v T命令:执行一条机器指令;

2.1 R命令

CPU的寄存器有AX,BX,CX,DX,CS,IP等,通过R命令,可以查看这些寄存器中的信息。若要修改一个寄存器的值,比如AX中的值,可用R命令后加寄存器名来进行,输入r ax后回车,在:提示后输入一个数值即可。

Figure 4. Modify AX by R command

可以采用同样的方式来修改其他寄存器中的内容,如IP,CS等。

2.2 D命令

Debug的D命令可以查看内存中的内容,直接输入D命令后,会给出默认内存地址的信息,如下图所示:

Figure 5. D command

也可以用“d 段地址:偏移地址”来列出指定内存单元中的信息,如下图所示:

Figure 6. D command 

2.3 A命令

Debug的A命令以汇编指令形式在内存中写入机器指令。这样就可以方便测试汇编代码的效果。如下图所示向1000:0中写入汇编指令:

Figure 7. Write Assembly Code by A Command

如上图所示,在A命令后跟上地址,然后就可以向相应地址中写入汇编指令。再用D命令查看内存时,就可以看到相应的机器码。有了汇编代码,如何运行呢?需要用到T命令。

2.4 T命令

T命令用于执行CS:IP指向的内存单元处的指令。所以要执行A命令写的汇编指令,需要先通过R命令修改CS和IP寄存器的内容,使他们指向A命令汇编指令所在的内存地址。如上图所示的A命令是将汇编指令写到1000:0处,所以修改CS和IP使他们指向这个地址:

Figure 8. Modify CS & IP by R command

上图所示为修改CS和IP后,通过R命令显示出结果。修改CS和IP后,就可以运行T命令来执行我们写入的指令了。

Figure 8. Run T command

运行一次T命令后,就执行了一条汇编指令,这里执行了mov ax,1,执行后CS:IP指向了下条指令的地址,这样再执行一次T命令,就执行了mov bx,2,如下图所示:

Figure 9. Run T Command

运行T命令后,执行了mov bx,2,将BX中的内容改为2了。

3.Conclusion

学习汇编语言,对理解程序的运行机理有个清晰认识,是想从事计算机科学方面工作的必不可少的基础。

通过安装DOSBox从而在Windows7中运行debug。并通过debug的几个命令来熟悉简单的汇编指令。最后通过A,R和T命令,在debug中运行汇编指令。

4.References

1. 王爽. 汇编语言. 清华大学出版社. 2013

Dowload DOSBox & MASM

时间: 2024-12-30 14:42:11

Windows7 Debug Test的相关文章

64位windows7下,jboss-eap-4.3.0 报错

问题描述 高手们,请问一下:在64位windows7下,安装32位jdk6u24在启动jboss-eap-4.3.0时,报如下错误,折腾了很久,不知道为什么,谢谢各位了:011-03-03 13:50:00,398 DEBUG [org.jboss.system.ServiceController] starting service jboss.messaging:service=PersistenceManager2011-03-03 13:50:00,398 DEBUG [org.jboss

Windows7系统BIOS怎么更改硬盘模式

  1.首先打开开始菜单中的运行选项,并输入"regedit"回车打开注册表(这里涉及注册表,为了安全建议事先备份注册表); 2.然后依次展开定位到"HKEY_LOCAL_MACHINESystemCurrentControlSetServicesMsahci"下的"Start"子健,鼠标右击将start键值的数值数据修改为"0",然后确定并退出注册表. 3.之后重启电脑,在电脑开机时按F2进入BIOS设置界面,然后将IDE模

Windows7配置以及性能提升方法

据微软官方公布的进程,windows7最晚于10月22日上市,目前出现的Windows7RTM已经提供给OEM厂商.windows7对比vista而言最大的优势就是他的易用性.不过如果你正在使用Windows7,笔者能给你一些建议让你的windows7性能得到显著提升. Windows7性能提升建议一:硬件配置 要玩转Windows7,首先要保证你的电脑配置符合windows7的最基本要求.如果你的Windows7是VISTA升级而来,那么你就可以放心使用Windows7,官方规定的Window

Windows7怎样设置自动快速登录

Windows7怎样设置自动快速登录?下面小编将这一WIN7系统应用的小技巧分享给大家,目前已经有很多用户正在使用微软发布的Windows 7版本操作系统,而Windows 7系统中很多隐藏的小秘密也正一点点被人们所发掘出来.Windows操作系统有一个软肋总是被人们提及,那就是它的启动速度过慢,如今的Windows 7就有所改善了. 如果你想加快Windows 7系统的启动速度,可以对设置进行更改后让它自动为用户登录.当然这种方式最好仅在自己的个人电脑上使用为好,若不然可能会涉及到个人隐私和安

Windows7如何快速调节屏幕分辨率?

  如果你使用过微软Vista系统,你会发现,当你想要调节显示的分辨率时,需要点多次鼠标才能找到调节的位置,非常的不方便,很多新手都找不到如何去更改自己的分辨率.而在Windows7中,我们更改屏幕分辨率只需要点击两下鼠标,一次右击桌面,一次左击对应的功能,这也是Windows7细节改进的地方.

open-VS 调试运行无法创建文件,直接在debug目录运行源程序时文件正常创建,是怎么回事?

问题描述 VS 调试运行无法创建文件,直接在debug目录运行源程序时文件正常创建,是怎么回事? VS 调试运行无法创建文件,直接在debug目录运行源程序时文件正常创建,是怎么回事? 我该了管理员权限运行VS 然后调试运行 文件还是没有创建,我跟踪了open()函数的返回值 为1 正确的,表明函数调用成功,可是我在debug目录下并没有发现文件啊? 是怎么回事? 解决方案 检查下你创建文件的相对路径是什么.如果你直接给文件名,那么调试的时候试图在program files下创建文件,这是不允许

苹果air电脑安装windows7图文教程

对于很多苹果的忠实粉丝而言苹果操作系统华丽的界面,优秀的运行速度和系统安全性是完美的.但在日常生活中,苹果操作系统对很多软件的兼容性不是特别好,从而影响了我们办公效率.今天小编为大家介绍苹果air装windows7操作系统,从而完美解决您遇到的问题. 准备工作: 1.外置DVD光驱 2.U盘或移动硬盘 3.无线路由器 4.Windows7安装盘 将您下载的windows7 iso镜像刻录到光盘上即可. 1.开机进入Mac OS操作系统,使用无线网络进行宽带链接.如图一 图一 2.在应用程序列表中

Windows7家庭组局域网共享资源

还记得大学时代和宿舍里的同学想要建一个局域网玩游戏,但那时候大家都用WinXP系统,那可不是连几根网线就完成的事情啊,设置都要折腾半天,必须要有真正的电脑高手指导才有可能实现.现在很多朋友家中电脑多了,想要联网在一起共享资源方便,组建一个家庭网络,如果你还是用WinXP系统那同样是个艰难的工程.不过可能你听说身边好多朋友都有了家庭网,没觉得他们是电脑高手啊?那毫无疑问是Windows7系统帮助了他们.Windows7家庭高级版.Win7旗舰版.Win7专业版都支持强大且易用的家庭组网功能,说菜鸟

Windows7中下载掉线的原因及解决办法

  下载是我们上网最常做的事情,在Windows 7中使用下载软件下载量,有时会有这样的问题,长时间下载时,就会自动停止下载,下载软件也会处于掉线状态.下面我们来看看在Windows 7中下载掉线的解决办法. 经过多翻搜索.检查后,问题终于搞明白了,原来是网卡电源设置问题造成的. 解决方法如下: 进入Windows7控制面板,依次单击:网络和Internet选→网络和共享→更改适配器设置. 右击"本地连接"选择"属性",打开"属性"对话框,单击&