堆栈的两个问题?

boywang 2003-07-11 12:26:25
1.如何知道某一进程中所有堆的基地址?
2.如何知道某一内存地址是否包含线程堆栈?
...全文
41 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
boywang 2003-07-12
  • 打赏
  • 举报
回复
up
暗黑帝国 2003-07-11
  • 打赏
  • 举报
回复
推荐你去看<WINDOW核心编程>里面有讲.
boywang 2003-07-11
  • 打赏
  • 举报
回复
在我的msdn上找不到ZwQueryThreadInformation的信息呀?
怎么用ZwQueryThreadInformation呢?
boywang 2003-07-11
  • 打赏
  • 举报
回复
楼上的,用你的方法可以等到其他的进程的堆栈信息吗?
Carapee 2003-07-11
  • 打赏
  • 举报
回复
问题一,使用GetProcessHeaps得到句柄,使用HeapQueryInformation得到相应的信息。
问题二,
CreateToolhelp32Snapshot
Thread32First
THread32Next
获得本进程所有线程的ID.
OpenThread打开线程。
使用NativeAPI,ZwQueryThreadInformation得到TEB的地址
使用ReadProcessMemory读出TEB结构,其中就有堆栈基地址和大小等信息。

知道了本进程所有线程的堆栈信息,自然就可以判断一个指针是否落在堆栈区域了。
双杯献酒 2003-07-11
  • 打赏
  • 举报
回复
GZ
boywang 2003-07-11
  • 打赏
  • 举报
回复
我就是看过了,有些地方不是很明白才来这里问的!!!
FAICHEN 2003-07-11
  • 打赏
  • 举报
回复
看书好点吧,核心编程里面内存结构那有讲

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧