各位大神进来看看,这里有个奇怪的问题
本帖最后由 xiaosawanjava 于 2014-5-3 13:47 编辑我只不过把sp栈顶的值,指向了与代码重复的地址,但是我都还没执行push ax 它就把我mov ax,1111下一句的push ax 的代码改变了,这是为什么
结果出来了,原因是这样子的
因为用T指令进行调试时,会产生中断。而为了保护现场,CPU则先将标志寄存器进栈、再把当前CS的值进栈,最后将IP的值进栈。所以内容也就是:IP-CS-EFlags-栈底.
你的下一条指令是 13D7:0103 push ax 而你的cs:ip却指向了13D7:0101 oggplay 发表于 2014-5-2 21:04 static/image/common/back.gif
你的下一条指令是 13D7:0103 push ax 而你的cs:ip却指向了13D7:0101
恩,这个而我发现了,但是这是为什么? :lol:还是我俩研究吧。 比发帖效率高 xiaosawanjava 发表于 2014-5-2 21:07 static/image/common/back.gif
恩,这个而我发现了,但是这是为什么?
你没给出全部代码 看不懂 这是怎么回事ip怎么不跳到103?无解 oggplay 发表于 2014-5-2 21:21 static/image/common/back.gif
你没给出全部代码 看不懂
图片里面就是我的全部代码,我是写在debug里面的 回复里面如何添加图片啊??我有截图有真相
hackershit 发表于 2014-5-2 22:36 static/image/common/back.gif
回复里面如何添加图片啊??我有截图有真相
要不你开个贴,或者你吧图片上传到某个网站上,然后复制链接就可以i显示了 hackershit 发表于 2014-5-2 22:36 static/image/common/back.gif
回复里面如何添加图片啊??我有截图有真相
还有个方法就是你选个高级模式,哪里可以加图片 我的分析:
1.我自己做了好多次实验,将CS,DS,SS,都设为同一段
2.将sp设置成不同的值分别为100,102,104,106,108
当SP 为100时 ,调试器按照我们理论上的步骤一步步下去,没有问题
但是,当我们将SP 设为 102,104,106,108的时候,也就是跟IP 向下执行有“交集” 的时候,就有问题出现。。。为什么???我们的疑问在这里!
明明只执行了一条T命令,怎么内存中内容会被改写了呢?我们没发现有什么东西在搞鬼啊~~
到底是什么呢??
我个人见解和理解是:
由于我们运行的DEBUG是在windows系统下的,属于保护模式下的debug所以,跟实模式下的DEBUG可能有所不同,因为在保护模式下的后面还有个"黑手"那就是系统。。。是不是系统搞的鬼?我个人认为应该是系统的保护机制在起作用吧,因为保护模式下用的是段页的分段机制,而不是实模式下的纯段机制,所以这里可能有问题。。。期待高手的更多解答。
以上是我个人一点见解,还请高手指正 hackershit 发表于 2014-5-2 23:29 static/image/common/back.gif
我的分析:
1.我自己做了好多次实验,将CS,DS,SS,都设为同一段
2.将sp设置成不同的值分别为100,102,104,1 ...
能加个好友吗。。。。
页:
[1]