首页
社区
课程
招聘
未解决 [已解决]关于VT项目HyperBone的Invalid Guest State问题
发表于: 2023-6-19 10:01 8076

未解决 [已解决]关于VT项目HyperBone的Invalid Guest State问题

2023-6-19 10:01
8076

冰与火的战歌:Windows内核攻防实战高级班!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。

最后于 2023-6-19 22:13 被hr_0515编辑 ,原因:
收藏
点赞 ・0
打赏
分享
最新回复 (4)
雪    币: 1343
活跃值: (279)
能力值: ( 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编辑 ,原因:
2023-6-19 22:10
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3 楼
你好,DPC_WATCHDOG_VIOLATION蓝屏怎么解决?
2023-9-13 10:50
0
雪    币: 0
能力值: ( 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`.
2024-8-13 13:55
0
雪    币: 469
活跃值: (640)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5 楼
牛奔奔 花了一点时间来编译启动, 给后来者看 修改 两个地方 1. VmxSetupVMCS 加上 vmCpuCtl2Requested.Fields.EnableINVPCID = ...
谢谢您的回答
2026-2-24 12:58
0
游客
登录 | 注册 方可回帖
返回