首页
社区
课程
招聘
未解决 [求助]vt-x虚拟化多核浸染时,兼容不同数量的CPU核心时出现问题 10雪币
发表于: 2025-12-7 18:47 368

未解决 [求助]vt-x虚拟化多核浸染时,兼容不同数量的CPU核心时出现问题 10雪币

2025-12-7 18:47
368

如题,多核浸染代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 多核浸染
KeGenericCallDpc(synchronization_infection, NULL);
 
BOOLEAN synchronization_infection(KDPC* dpc, PVOID deferred_context, PVOID system_arg1, PVOID system_arg2)
{
    ULONG cpu_id = KeGetCurrentProcessorIndex();
    struct __vcpu* vcpu = (struct __vcpu*)(&vcpu_info.vcpu_info_table[cpu_id]);
 
    // 初始化vmcs并执行vmlaunch
    init_vcpu(vcpu, cpu_id);
     
    // Wait for all DPCs to synchronize at this point
    KeSignalCallDpcSynchronize(system_arg2);
 
    // Mark the DPC as being complete
    KeSignalCallDpcDone(system_arg1);
 
    DbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL, "[ok] cpu-%d synchronization infection completed.\n", vcpu->cpu_id);
    return TRUE;
}

经过测试发现,1/2/3/6核时可正常实现多核浸染,但当核心数为4/8时卡死。

处理器核心数为2时,正常实现虚拟化
处理器核心数为2时,正常实现虚拟化。

图片描述
处理器核心数为4时,执行init_vcpu卡死。

当前物理机CPU为4核8线程,使用VMware® Workstation 17 Pro。
为什么会出现这样的问题?懂的大牛指点一下,谢谢!


[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!

最后于 2025-12-7 18:49 被ALwalker编辑 ,原因: 错别字
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回