首先在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指令来直接用对应的汇编语言指令来修改内存的值,来直接执行。