windows xp下用debug查看内存和汇编指令

 时间:2024-10-12 05:42:06

简单介绍下debug溽朽孑臾查看内存中的机器码,已经查看汇编指令的方法。

-r参数用来查看CPU中寄存器的值,以及改变寄存器的值。

windows xp下用debug查看内存和汇编指令

至于那些神马AX,BX,CX,DX的都不用说了,CS跟IP更不用说了,指向了要执行的下一条指令。

可以用-r cs或者-r ip来改变它们的值。如图:

windows xp下用debug查看内存和汇编指令

这样我们就可以让CS:IP指向我们希望的指向内存地址,从而可能执行我们预先在该地址存放好的代码。

-D命令:用来查看内存中的值。比如:

windows xp下用debug查看内存和汇编指令 如图:最左边的是内存的地址,用基地址:偏移量的方式给出,中间存放的是内存中的机器码,一行刚好15个字节,而最右边则是对这些数据敌对应的可显示的ASCII字符,对于没有的,则用.代替。所以如果想看一下,右边输出hello之类的 东西,则可以向指令里面写如这些字符的ASCII码。

-E命令:改写内存中的内容。上面已经说到了,下面我们来试试,用E改变CS:IP里面存放的指令。

windows xp下用debug查看内存和汇编指令 如图:使用' ‘的格式就可以向里面输入字符了,右边出现了字符hello,所以我们可以认为中间的数据就是对应字符的ASCII码,我们之所以看到h是68,那是因为这是十六进制的数据,h真正的ASCII码应该是6*16+8=104,所以是吻合的。比如我们像内存里面写入:61(也就是6*16=97)

windows xp下用debug查看内存和汇编指令

而0到9几个数字ASCII码的十六机制刚好是3x,也就是48+x.这点必须的搞清楚。

好,搞了这么长时间的E命令,我们在看看U命令,它用来查看机器码对应的汇编代码。比如:windows xp下用debug查看内存和汇编指令 可以看到十六进制的61对应的汇编还是61?所以我们可以用-e写入机器码,然后用-u来查看汇编指令。

-A:以汇编的形式向内存写入指令。比如:

windows xp下用debug查看内存和汇编指令

还有一个命令就是-t,也就是执行,不多说了。

  • Visual Studio怎么查看函数和变量
  • 如何检测java环境变量是否配置正确
  • CMD如何进入C盘根文件夹
  • 如何将VS2013的解决方案资源管理器移动到左边
  • 怎么解决sql提示网络相关的或特定实例错误问题
  • 热门搜索
    自媒体怎么赚钱 试管婴儿是怎么回事 胸贴怎么清洗 惠普打印机怎么安装 新车购置税怎么算 马怎么叫 雪是怎么形成的 幽门螺杆菌怎么治疗 捐精怎么捐 衣服发黄怎么洗白