跟踪NtUserGetMessage的疑惑

htron 2005-04-26 03:57:04
系统:Win2k SP4

通过KeServiceDecriptorTableShadow找到了GetMessage的内核函数,也即NtUserGetMessage,这个函数的参数跟用户态的GetMessage是一样的,现在我只关心第一个参数:pMsg.
在函数入口处开始跟,一直到RET,传入的参数都没有变化,但是到最后一条指令:
ret 10h
过去之后,堆栈恢复到调用前的位置,但是传入的参数竟然被改变了!虽然这部分现在已经出了栈,但是一条ret指令,又是怎样修改它的值呢?

唯一能够想象的,就是ret之后,地址空间也变了,但这怎么实现的呢?

请大家指教,谢谢!
...全文
256 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

4,450

社区成员

发帖
与我相关
我的任务
社区描述
云计算 云安全相关讨论
社区管理员
  • 云安全社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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