首页
社区
课程
招聘
VirtualPC单步标志问题
发表于: 2005-2-25 08:01 9792

VirtualPC单步标志问题

2005-2-25 08:01
9792

VirtualPC单步标志问题
kongfoo/2005.2.24

同样是虚拟机系统,VirtualPC比VmWare好用很多,VmWare里面的win98慢得出奇,
按下开始按钮画了十几次才画出开始菜单,VPC里面就完全不同,几下就出来了。
相信一般情况下装VPC的比VmWare的人多些。下面转入正题。

XP、2k下面,设置T位将使执行之后的指令引发单步中断,代码如下:
  pushfd
  or [esp],100h
  popfd
  nop //这里就引发中断
但在VPC里面的win2k和win98,popfd执行后并没有把T位置1。
换言之,可以写一段代码来检测是否在VPC中。
mov OldESP,esp
push @NotInVPC
push fs:[0]
mov fs:[0],esp
pushfd
or [esp],100h
popfd
nop
jmp @InVPC
@NotInVPC:
mov esp,OldESP
pop fs:[0]
add esp,4
mov UnderVPC,0
jmp @Exit
@InVPC:
pop fs:[0]
add esp,4
mov UnderVPC,1
@Exit:

VPC的这个特点,有好也有不好,对于调试人员来说,这种利用设置T位产生
单步中断的代码不再起作用,使调试工作相对简单了一点,但同时也会失去
程序的流程。对于编程人员来说,在VPC里面就不能用直接设置T位的办法产
生单步中断了。如果真要设置,其中一个办法就是利用SEH,让操作系统来设置:
PUSH @Seh
PUSH DWORD PTR FS:[0]
MOV DWORD PTR FS:[0],ESP
INT3
@Seh:
MOV EAX,DWORD PTR SS:[ESP+C]
MOV DWORD PTR DS:[EAX+B8],@NewEIP
OR DWORD PTR DS:[EAX+C0],100
XOR EAX,EAX
RETN
@NewEIP:
POP DWORD PTR FS:[0]  //单步中断
ADD ESP,4

操作系统:winXP/win2k,VPC版本:2004
VPC操作系统:win2K/win98


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

收藏
免费 7
支持
分享
最新回复 (12)
雪    币: 303
活跃值: (466)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
偶像
2005-2-25 08:27
0
雪    币: 161
活跃值: (231)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
好贴正如美女,我顶
2005-2-25 08:58
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
4
好文,学习 !
2005-2-25 09:04
0
雪    币: 301
活跃值: (300)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
5
收藏学习,辛苦
2005-2-25 09:43
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
6
好文,学习 !学习 !
2005-2-25 11:16
0
雪    币: 97697
活跃值: (200824)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
7
支持...
2005-2-25 19:13
0
雪    币: 159
活跃值: (339)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
8
好帖子...又学到了...
2005-2-25 20:35
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
同样是虚拟机系统,VirtualPC比VmWare好用很多,VmWare里面的win98慢得出奇,
按下开始按钮画了十几次才画出开始菜单,VPC里面就完全不同,几下就出来了
--------
我说呢!这下知道了!用VPC装98合适!
2005-2-27 20:36
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mxl
10
最初由 kongfoo 发布
VirtualPC单步标志问题
kongfoo/2005.2.24

同样是虚拟机系统,VirtualPC比VmWare好用很多,VmWare里面的win98慢得出奇,
按下开始按钮画了十几次才画出开始菜单,VPC里面就完全不同,几下就出来了。


可能你装完98没装vmware tools驱动吧,我感觉vmware还是挺快的啊.
2005-2-27 23:11
0
雪    币: 371
活跃值: (790)
能力值: ( LV12,RANK:570 )
在线值:
发帖
回帖
粉丝
11
噢,我是没有装vmware tools驱动。当时看见太慢了就没有再搞其他东西直接换VPC了。呵呵。下次有机会的话试试装上vmware tools驱动的效果。
2005-3-1 08:17
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
12
我是用 vmware 的

的确是要装上 vmware tool 驱动,如果不装上的话显示速度很慢

装上后速度和正常 pc 一样快
2005-3-1 08:34
0
雪    币: 371
活跃值: (790)
能力值: ( LV12,RANK:570 )
在线值:
发帖
回帖
粉丝
13
OK,I got it :)
2005-3-1 11:44
0
游客
登录 | 注册 方可回帖
返回
//