首先在windows下安装debug

参考一下连接

https://blog.csdn.net/qq_39564555/article/details/82936535

 

使用debug

查看、修改CPU中寄存器内容

;采用debug 的R指令来查看、改变CPU的内容
直接输入R指令,查看所有CPU寄存器内容,以及下一条指令的CS:IP和对应的汇编语言 还有DS的地址

输入-R +寄存器 表示修改寄存器的内容

 

 

 

 

查看内存中的内容

使用debug中的命令D查看内存的内容

1.使用 d 段地址:偏移地址
会自动查看由段地址:偏移地址往后128个字节的对应ascii字符和对应的十六进制编码内容

 

2 采用d 段地址:偏移地址 偏移地址

只会看到这个两个之间的数据

3. 直接采用-d指令,会查看默认的地址的往后128个字节内容

 

 

修改内存中的内容

采用e指令来修改内容
可以使用直接赋值
如:
    -e 1000:0000  0 1 2 3 4 5 
就会给 10001 赋值0 10002赋值1以此类推

然后也可以采用一一对应赋值方式
如:
    -e 1000:0000
就会弹出每一个字节的赋值然后用空格来进入下一个字节,如果没有输入数字按了空格表示跳过,输入完成后用回车来结束。
注:如果输入的是字符就会在内存上变为字符对应的ASCII值,然后对应的ASCII保存为字符的值,也可以直接输入字符串对应赋值

 

 

 

 

 

 

 

将内存中的内容解释为机器指令和对应的汇编指令

 

使用-e指令修改了内存对应的值后,将CS:IP指向对应的地址然后直接使用-t指令执行就会自动使用对应的汇编指令。
通过-u指令对应的段地址:偏移地址可以查看到对应内存的汇编指令是什么。

 

 

 

 

 

执行CS:IP指向的内存单元的指令

 

使用-t指令就会直接执行CS:IP执行的指令,并且自动修改IP的值

 

以汇编指令的形式向内存中写入指令

 

也可以通过-a指令来直接用对应的汇编语言指令来修改内存的值,来直接执行。