本帖最后由 leigema 于 2012-10-20 17:53:37 编辑 最近在学汇编,用xp自带的debug工具调试的时候,想查看栈中的内容,发现debug修改了栈。但程序运行结果是对的。
但是我想查看炸中的内容,也就不可能了,因为debug动了栈,我看到的都不正确。
debug会修改栈中的内容 见这里http://topic.csdn.net/u/20121018/18/3fce0f68-d774-46e3-857c-88cb22908d09
所以我需要一个不会修改栈内容的调试器,难道没有这样的调试器?
------最佳解决方案--------------------------------------------------------
od softice
------其他解决方案--------------------------------------------------------
修改了。有一个解释不知道对不对,esp被保存到ebp里 所有的函数参数都是通过ebp访问的,只是看了下反汇编没对照过机器码不知道对不对。
------其他解决方案--------------------------------------------------------
bochs.
------其他解决方案--------------------------------------------------------
他改栈和你没什么关系吧?你调试又不需要总盯着stack活着。
简单即是hacker之道
------其他解决方案--------------------------------------------------------
esp只是一个存返回地址,和参数的内存指针。如果暂时被修改也没有什么关系,只要最后能被恢复就行。
------其他解决方案--------------------------------------------------------
你看stack中的内容没问题,可以用很多方法查看
比如 看调用链,看动态变量,参数,返回地址等。
但你没必要限制debuger对stack的操作
------其他解决方案--------------------------------------------------------
16位的行吗
------其他解决方案--------------------------------------------------------
最近调试看栈中的内容