能力值:
( LV9,RANK:280 )
|
-
-
2 楼
所以你接管那些msr干嘛?
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
hzqst
所以你接管那些msr干嘛?
我置位use_msr_bitmaps,照样会出现上图奇怪的msr寄存器编号导致系统崩溃
|
能力值:
( LV9,RANK:280 )
|
-
-
4 楼
你既然要用msrbitmaps你就把MSR_BITMAP好好填上啊,不该捕获的填0,该捕获的填1就完事了
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
问题是出现系统崩溃时的msr参数很奇怪,没有这个编号吧?
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
这应该是hyperv用保留msr来通信,而且还有https://www.unknowncheats.me/forum/3425463-post15.html
|
能力值:
( LV3,RANK:20 )
|
-
-
7 楼
是否出现该报错取决于我是否接管#PF异常
|
能力值:
(RANK:15 )
|
-
-
8 楼
这些属于Synthetic MSR,MSR访问是否造成的vmexit,取决于index是否在合法范围内,0~0x1FFF,0xC0000000~0xC0001FFF之间,如果不在这个区间内,直接产生vmexit,否则取决于bitmap。
|
能力值:
(RANK:15 )
|
-
-
9 楼
Synthetic MSR是提供给虚拟机使用的,不止Hyper-v,Vmware或者Kvm都有自己的。
|
能力值:
( LV3,RANK:20 )
|
-
-
10 楼
当我开启拦截 #PF 并 设置 PFEC_MASK & PFEX_MATCH 时可以规避掉一些#PF,并且此时并不会出现上边的奇怪msr编号(此时虽然设置了use_msr_bitmaps,但是没有填充 MSR_BITMAP)。这却决于我所设置的过滤规则,比如0x15,用户态的代码引发的缺页异常。
|
能力值:
( LV3,RANK:20 )
|
-
-
11 楼
ALwalker
当我开启拦截 #PF 并 设置 PFEC_MASK & PFEX_MATCH 时可以规避掉一些#PF,并且此时并不会出现上边的奇怪msr编号(此时虽然设置了use_msr_bitmaps,但是 ...
如果过滤规则过于放松,仍然会引发上述的问题;再者,如果不设置#PF并不会出现上述问题 。感觉是 #PF 拦截引起的,但是又不知道原因。 如果不设置MSR_BITMAP,即该域全部为0,就是在 0-0x1fff, 0xc0000000-0xc000001fff 任何对msr的读写都不会产生 vm-exit?
|
能力值:
(RANK:15 )
|
-
-
12 楼
ALwalker
如果过滤规则过于放松,仍然会引发上述的问题;再者,如果不设置#PF并不会出现上述问题 。感觉是 #PF 拦截引起的,但是又不知道原因。
如果不设置MSR_BITMAP,即该域全部为0,就是在 0-0 ...
msr bitmap可以控制这个范围内的访问是否vmexit,这个范围外的是必然产生vmexit。
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
你这多半是PF处理部分的问题,好好检查一下寄存器的保存和恢复,以及注入时类型和RIP。
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
__forceinline bool IsMicrosoftSyntheticMsr(UINT64 Msr) { return (Msr >> 30) == 1; } 这个只有在虚拟机下才会传递,自己的VM遇到这个VmExit后直接交给上层VMM处理就行。实机的话可以注入个#GP之类的
|
|
|