注册

CpuDbg x96

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

[CpuDbg x96] 堆栈数据显示数据全部为空

[复制链接]
发表于 2023-1-7 04:57:28 | 显示全部楼层 |阅读模式
读取堆栈我写的是固定大小.一次读取 250 字节.
之前一直都是正常的. 这次更新之后,换成了延迟加载模块后, 读取就失败了. 效果如下图:

CpuDbg 读取堆栈失败

CpuDbg 读取堆栈失败


调试分析发现, 是因为堆栈地址所在范围,已经属于页边界了. 因为我大小写的是固定 250 字节. 那样就超过页边界了, 调用 VirtualProtectEx 或者 ReadProcessMemory ,都会报错的.
解决办法也很简单. 调用 ODPlugin_Memory_Find 获取内存数据, 通过 当前内存的 内存基址(base)+内存大小(size) 再减去当前的 堆栈地址(address), 得到的就是 剩余的大小了.
最后再把当前得到的大小赋值给 250 所在变量即可. 修改后就读取正常了. 如下图:

CpuDbg 读取堆栈失败

CpuDbg 读取堆栈失败




回复

使用道具 举报

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

QQ|Archiver|手机版| CpuDbg x96

GMT, 2024-12-21 18:33 , Processed in 0.078125 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2013 Comsenz Inc.

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