首页
社区
课程
招聘
[求助]关于书中的虚拟机
发表于: 2010-9-7 15:14 5559

[求助]关于书中的虚拟机

2010-9-7 15:14
5559
书中474页最下面文字说“因为将VMContext结构存放在当前使用的堆栈更靠下面的一部分,所以应该避免出现VMContext结构被覆盖的情况”,但是我自己觉得VMContext这个结构在虚拟机使用堆栈的高地址部分(即在ESP的下面),但是在图17.2中显示的堆栈部分VMContext这个结构却在堆栈的低地址部分(即ESP在VMcontext的下面),还有VCheckESP Handler中第一句是什么意思,为什么要edi+0x100,可能我第一个问题没弄明白,第二个问题就更不明白了。希望大家给解释一下,谢谢。
下面的图是我的理解和图17.2

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 1946
活跃值: (263)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
2
请仔细看图,ESP越往下值越大,越往上值越小,所以就是你所说的在ESP的下面。而至于VCheckESP主要是用来判断ebp(即虚拟机的esp)是否快接近edi(即虚拟机环境),当快要接近时就得防止执行下一条指令之前vmcontext的内容被堆栈值给覆盖。
2010-9-10 00:16
0
雪    币: 228
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢版主的回复,我自己按照书中理解觉得虚拟机使用的堆栈地址好像实在vmcontext这个结构的上面,也就是虚拟机的堆栈地址在堆栈中vmcontext的低地址方向,按理说在虚拟机的范围内,堆栈会一直往低地址方向走,不存在覆盖的问题。我的困惑在这个地方。
2010-10-1 21:28
0
游客
登录 | 注册 方可回帖
返回
//