先说明一下,这里说的数据窗口,也可以称之为内存窗口, 为避免和(alt+m内存窗口)搞混淆了,下面都将CPU主窗口左下角的窗口称之为数据窗口.
今天在写调试器的数据窗口的ctrl+g功能. 我打开od1.x 单击一下数据窗口, 按 ctrl+g 随便输入了一个 0x19FF74 地址.
转过去之后, 就能发现是在一个页的最底部. 如下图:
数据窗口显示区域问题
一开始我必没注意, 以为真的就是到了页边界了. 可是我自己实现了一样的功能, 数据窗口展示的确不是页边界, 如下图:
cpudbg数据窗口显示区域
可以看到 cpudbg 数据窗口显示是全的. 于是我打开 alt+m内存窗口 看了一下, 这样是正确的. 再打开od1.x的内存窗口看到,也是正常的.
说明od1.x的数据窗口显示有BUG. 我右键刷新了内存窗口,在查看数据窗口还是出错的. 单步一下, 也没看到数据窗口刷新. 看来这个真是BUG, 并不是没有刷新...
-----------------------------------------------------
刚刚我又看了一下 x32dbg 和 yzdbg 也是和 od1.x 一样的. 如下图:
yzdbg和x32dbg数据窗口显示区域问题
这明显是错的. 难道这几款调试器都有这BUG?
还是说内存窗口显示区域有什么规则或讲究?
具体到底是BUG还是什么原因, 暂时还不清楚, 这个问题等回头再仔细研究研究吧...
如果你知道原因, 欢迎跟帖分享讨论.
贴子类型 暂时由 ollydbg 改成 多款调试器.
-----------------------------------
2023.01.05
真是有点尴尬了,之前没有注意看.应该是cpudbg的问题,
内存地址: 0x0019C000 内存大小: 0x0004000
而输入的 0x0019FF74 正好在这命中范围内. 所以应该是在页的边界了. 而cpudbg显示有误.
因为数据窗口还有很多功能还未写, 等回头写到数据窗口的时候再修复一下此bug吧 -_-#贴子类型 暂时由 多款调试器 改成 CpuDbg.
-----------------------------------
to be continued...
|