能力值:
( LV2,RANK:10 )
|
-
-
2 楼
在GitHub上翻到一个不知名的人 更新了源代码 我一直没有注意到。 就算没找到那个源码我也快找到真相了。额。。。。
我输出了很多相关信息,当我发现当前执行的寄存器索引是4的时候,我猜到与RSP有关了,但是还是不知道咋弄。
最后偶然找到了hub上的代码 是这样的: if (data->Fields.Register == 4) { regValue = GuestState->GuestRsp; } 之后再把regValue 写入到 CR3,这样就不会报33号错误了。 它的英文注释是: Because its RSP and as we didn't save RSP correctly (because of pushes) so we have make it points to the GUEST_RSP
最后于 2023-6-19 22:11
被hr_0515编辑
,原因:
|
能力值:
( LV1,RANK:0 )
|
-
-
3 楼
你好,DPC_WATCHDOG_VIOLATION蓝屏怎么解决?
|
能力值:
( LV1,RANK:0 )
|
-
-
4 楼
花了一点时间来编译启动, 给后来者看 修改 两个地方 1. VmxSetupVMCS 加上 vmCpuCtl2Requested.Fields.EnableINVPCID = TRUE;
2. VmExitCR 函数加上 if (data->Fields.Register == 4) { INT64 RSP = 0; __vmx_vmread(GUEST_RSP, &RSP); *regPtr = RSP; } __vmx_vmwrite( GUEST_CR3, *regPtr ); 改成 __vmx_vmwrite(GUEST_CR3, (*regPtr & ~(1ULL << 63)));
这是那个博客地址 71aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6J5j5i4W2S2L8X3k6S2L8g2)9J5k6h3y4G2L8g2)9J5c8Y4c8G2M7r3W2U0M7#2)9J5c8X3S2&6M7r3g2J5N6X3W2K6L8%4u0Q4x3X3c8X3M7X3!0E0i4K6u0V1M7$3y4J5j5i4c8U0K9q4)9J5k6s2m8S2M7Y4c8Q4x3X3b7$3i4K6u0r3 GitHub地址 a7aK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6e0K9h3&6S2d9$3q4J5N6X3q4F1k6r3W2Q4x3V1k6t1P5i4m8W2M7Y4k6A6M7$3!0J5i4K6u0V1c8Y4u0G2L8g2)9J5k6q4y4U0M7X3q4@1j5$3R3`.
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
牛奔奔
花了一点时间来编译启动, 给后来者看
修改 两个地方
1. VmxSetupVMCS
加上 vmCpuCtl2Requested.Fields.EnableINVPCID = ...
谢谢您的回答
|
|
|