Debug 命令概略

  1. 进入 Debug 命令
    在 Win2000、WinXP 及 Win7(32位 版本)命令行(cmd) 中输入debug 回车后,就进入到虚拟8086的执行环境了。也可以输入debug + 程序名字,这就是对某个程序进行调试。

  2. R (Register) 命令
      从名字可以看出是对寄存器操作的命令,此指令有两个功能:一是显示所以寄存器和标记的内容;二是修改寄存器的内容。只输入 r 来显示寄存器的内容

    r命令 显示寄存器
      debug总共显示3行,最底下一行是debug正要执行的命令,即cs:ip指向的命令。第一行和第二行显示了各个寄存器的值,其中第二行的最后表示的是标志寄存器中的值,从左到右分别为:溢出标志:ov(溢出),nv(未溢出);方向标志:dn(减),up(曾);中断标志:ei(启用),di(禁用);正负标志:ng(负),pl(正);零标志:zr(为零),nz(不为0);辅助进位标志:ac(进位),na(未进位);奇偶校验标志:pe(偶校验),po(奇校验);进位标志:cy(进位),nc(未进位)。
    如果想修改某个寄存器的值,直接在r后面加上要修改寄存器的名字,如:r ax ,然后回车并输入修改的值再回车就可以了。
    r命令 修改寄存器
     从上图可以看出ax的值确实改变了,不但可以改变ax的值,其它寄存器的值都可以改变,包括cs,ip的值,这是在汇编程序中所做不到的 \color{red}{(存疑)}

  1. D (dump) 命令查看内存中的信息

      如果想知道10000h内存中的信息,可以用”d 段地址:段偏移地址“来查看:
    d命令 查看内存信息
     使用”d 段地址:段偏移地址“的格式,debug会列出从指定内存单元开始的128个内存单元的内容。如上图所示,在使用d 1000:0 后,debug列出了1000:0-1000:7f中的内容。

      在使用”d 段地址:段偏移地址“之后,接着使用d命令,可列出后续的内容,如下图所示:
    d命令
    也可以用指定d命令的查看范围,此时采用”d 段起始地址:起始偏移地址 结尾偏移地址“的格式。比如要查看1000:0-1000:9中的内容,可以用“d 1000:0 9”实现,如下图所示:
    d命令
  2. E (edit) 命令改写内存中的内容

    可以用“e 起始地址 数据 数据 数据...”的格式来修改从起始地址开始的内存中的内容。比如修改10000h开始的10个单元的内容,如下图:
    e命令修改内存数据
    也可以用e命令以提问的方式来逐个地修改从某一地址开始的内存单元中的内容,以从1000:10单元开始为例,步骤如下:
    • 输入e 1000:10,按enter键;
    • debug显示起始地址1000:0010,和第一个单元的原始内容:00,然后光标停在“.”后面提示输入想要写入的数据,此时有两种选择:一是输入数据,然后按空格键,即输入数据修改当前的内存单元;二位不输入数据,直接按空格键,则不对当前内存单元进行改写;
    • 当前单元处理完后(不论改写或者没有改写,只要按了空格键,就表示处理完成),debug将显示下一个内存单元的原始内容,并提示修改;
    • 所以希望改写的内存单元改写完成后,按enter键,e命令操作结束;

如下图所示:
e命令修改内存数据

也可以用e命令向内存单元写入字符串,比如用e命令从内存1000:0开始写入:1、“a+b”、2、“c++”、‘3’、“IBM”,如下图所示:
e命令修改内存数据
也可以向内存张写入机器码。
  1. 用U (un-assembly) 来反汇编机器码
    我们首先用e命令从内存1000:0单元开始写入这样一段机器码:
机器码                     对应汇编指令
b80100                    mov ax, 0001
b90200                    mov cs, 0002
01c8                      add ax, cx

然后用u命令反汇编出这段内存中的汇编命令,如下图所示:
u 命令显示
  1. T (trace) 单步调试执行命令

    每输入一个t,debug就执行一条指令,然后停下了显示所有寄存器的内容。如下图所示:
    t 命令执行
  2. a (assembly) 命令以汇编指令形式写指令到内存中

    前面说过可以用e命令写入机器码,但这样很不方便,必须记住机器码才行,而a命令以汇编形式写入就方便多了,“a 起始地址“表示将汇编指令写入某个地址中,如下图:
    a 命令输入汇编指令
  3. N (name) 命令
    指定 debug l(加载)或 w(写入)命令的可执行文件的名称,或者指定正在调试的可执行文件的参数:

n [drive:][path] filename

要指定测试的可执行文件的参数,请使用以下语法:

n file-parameters

  1. l (load) 命令
    l 命令将 n命令 指定的可执行文件加载到内存的某个地址中。
    要从磁盘文件加载 BX:CX 寄存器中指定的字节数内容,请使用以下语法:

l [address]

要略过 Windows 2000 文件系统并直接加载特定的扇区,请使用以下语法:

l address drive start number

不过我在win7中试了第一个语法,debug居然报错,不知道为什么,只有用不带参数的l命令才行。如下图所示:
l命令 加载

也就是说加载文件只能加载到开始进入debug时cs:ip所指向的起始内存单元中去。但是在网上找了很多资料,都说可以直接加载到一个指定的地址中去,不知道为什么不行?

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容