注册

CpuDbg x96

查看: 810|回复: 0
收起左侧

[x96Dbg] 堆栈窗口显示堆栈大小错误的BUG

[复制链接]
发表于 2022-10-26 06:06:40 | 显示全部楼层 |阅读模式
今天调试器写到堆栈窗口改堆栈数值功能, 改完之后发现没有写修改后的红色高亮.
然后打开od1.x修改一下堆栈,发现也没有红色高亮. 即使在数据窗口转到sp地址,创建一个备份,再更新,也一样没有红色高亮. 如下图:

od1.x修改堆栈数值

od1.x修改堆栈数值


然后试了 od2.x yzdbg x32dbg 修改堆栈都会有高亮红色显示.

看来除了 od1.x 都有高亮红色显示.
接着我又用winhex打开同样的堆栈地址,修改相应的数值, 测试发现,  od2.x 并不会立即在堆栈刷新. 必须要单步一下才会刷新堆栈.
而其它的调试器,都是修改之后,再点一下堆栈窗口,就立即刷新的.
这里不清楚为什么od作者要在2.x版本中,去除自动刷新堆栈. 有可能是怕影响性能? 因为每修改一次, 就必然要有 readmemory  和 writememory 的操作.
----------------------------------------------------------
其中测到x32dbg的时候, 发现了一个BUG. 就是堆栈大小获取错误的问题, 如下图:

x32dbg堆栈显示BUG

x32dbg堆栈显示BUG


从图中可以看到, x32dbg中的堆栈地址显示的是 0x000CD000 对应的内存窗口也能看到大小是 0x00013000,
可是我用WinHex打开 notepad.vmp.exe 输入 0x000CD000 地址确提示是无效的地址.
然后我用滚动条,滚动到周边, 发现是没有这个地址的. 多半是未分配的内存.(我也没有深入分析到底是x32dbg还是winhex的问题.我个人认为多半是x32dbg的问题.)


回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注册

QQ|Archiver|手机版| CpuDbg x96

GMT, 2024-5-18 16:42 , Processed in 0.078125 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表