DEBUGE用法2.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DEBUGE用法2

- 有不少朋友来信问过我这样一个问题:?怎样才能成为一名优秀的HACKER。我的回答是:?深入的了解汇编知识,学好DEBUG的用法。这次借Pc?life的一角之地,我将详细的讲解一下DEBUG的用法。 DEBUG是一个DOS实用程序,是供程序员使用的程序调试工具,可以用它检查内存中任何地方的字节以及修改任何地方的字节.它可以用于逐指令执行某个程序以验证程序运行的正确性,也可以追踪执行过程、比较一个指令执行前后的值以及比较与移动内存中数据的范围,读写文件与磁盘扇区。 DEBUG把所有数据都作为字节序列处理。因此它可以读任何类型的文件。DEBUG可以识别两种数据:?十六进制数据和ASC码字符。它的显示格式是各个字节的十六进制值以及值在32与126之间的字节的相应ASC码字符。 在DEBUG中输入数据有两种方法:?提示方法和非提示方法。在用提示方法时,用户可以输入要求输入数据的命令,后跟数据所要输入的地址。然后用户就可以看到该地之中已有内容及一个冒号提示符。此时用户可以在提示符下输入一个新的值或者按下回车键或CTRL+C回到短横(-)提示符。在运用非提示方法时,用户可以输入要输入数据的内存地址以及要输入的字节。但与使用字处理程序或正文编辑程序时不一样,在使用DEBUG时,用户不能直接移动光标到一入口点输入或修改数据,而要一次输入一个或几个字节。 在使用DEBUG时可以只涉及内存中的数据,从而一般都要指定所要处理的内存地址,地址的输入格式是:?[段地址]:?[位移]。如果没有输入地址,DEBUG将假定为当前内存段,从位于地址100H的字节开始。前100H字节保留给程序段前缀使用,这一专用区域用于建立DOS与程序之间的联系。DEBUG总是用四位十六进制数表示地址。用两位数表示十六进制数据。 讲到这里大家应该对DEBUG有了初步的了解,但是光知道这些可不够,接下来我来讲讲DEBUG的命令格式和命令。当输入 DEBUG 调用了DEBUG程序,就会出现一个短横提示符,用户就可以在这一短横后输入DEBUG程序的命令。有些DEBUG命令会显示一个内存地址并产生一个作为提示符的冒号。在这些提示符后,用户可以输入一个新值以改变所显示位置原来的值。如果用户不输入一个新值而是按下回车或CTRL+C,那么原来的值不会改变。 一般用不着把地址和命令名字分开。例如,用转储命令D察看100号地址的数据,那么这个命令可以用以下任一种形势输入:? D100 D?100 D。100 D,100 如果输入的命令中出现了错误,DEBUG将在下一行对着错误的位置标记出来,例如:? -s100?d?12 ^Error DEBUG的命令及功能如下:? *?A[地址]?汇编命令 功能:?将指令直接汇编成机器码输入到内存中。 说明:?用于小段程序的汇编及修改目标程序,所有输入的数字均采用十六进制,?用户装入内存的汇编语句是连续存放的,若没有指定地址,并且前面没有使用汇编命令,改语句被汇编到?CS:0100区域。 *?C[源地址范围][目的地址]比较命令 功能:?比较两内存区域中的内容是否相同,若不同则显示其地址和内容。 *?D[地址]?或D[起始地址][目的地址]?转储命令 功能:?以内存映象方式显示内存中的信息。 说明:?转储用左右两部分显示内存映象内容,左边以十六进制,右边以ASCII字符显示,所有不可打印字符用句号(。)表示。每行显示16个字节的内容,在第八和第九个字节之间有一个连字符?-?此命令隐含的段地址为DS的值。若未指定起始地址,则D命令从显示的最后一个单元的下一个单元开始显示,若以前没有使用给D命令,?则从初使化的段寄存器的内容,加上地址偏移量?0100H?开始显示。 *?E[地址]?[字节串)?修改内存命令 功能:?从指定的地址开始修改内存值。 说明:?若地址部分只输入偏移量,则?E?命令认为段包括在DS寄存器中。命令格式有两种:其一是用命令中包含的字节串替换从指定的地址开始的多个字节的内容;其二是命令后不跟字节串,则允许按顺序方式显示和修改字节,按下空格键为显示下一字节内容,若想修改,直接输入相应值。 *?F[地址范围]?[字节或字节串]?填写命令 功能:?将要填写的字节或字节串填入由地址范围指定的存储器中。 *?G[=起始地址]?[[断点]……]?执行命令 功能:?执行正在调试的程序,当达到断点时停止执行,?并且显示寄存器标志和下一条要执行的命令。 说明:?如果没有指定起始地址,那么当前指令地址由CS,IP寄存器的内容来决定,如果用户指定起始地址就从指定的起始地址开始执行。如果指定断点,当指令到达指令地址时停止执行,并显示各寄存器标志位的内容和下一条要执行的命令,最多允许用户设定10个断点。 *?H[数值][数值]?十六进制算术运算命令 功能:?分

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档