核晶360是一种在CPU支持虚拟化并且开启虚拟化的前提下一种360防护模式,如何辨别核晶360,我的思路是从判断CPU是否支持虚拟化入手
思路:
1.使用第三方软件-cpu-z
2.使用特定的cpu命令,捕获异常
3.使用wmic获取cpu信息
wmic cpu
其中VirtualizationFirmwareEnabled 属性最为关键,翻译来的意思是启用虚拟化固件
开启CPU虚拟化
VirtualizationFirmwareEnabled Ture
未开启CPU虚拟化
VirtualizationFirmwareEnabled False
使用wmic获取虚拟化固件属性
C:\Users\R4bbit>wmic cpu get VirtualizationFirmwareEnabled VirtualizationFirmwareEnabled TRUE
4.从注册表中读取信息
5.查看CPU指令集检测是否支持vt-x
这里思路我只仔细研究了第三种
BOOL Check_VT()
{
system("wmic cpu get VirtualizationFirmwareEnabled > 1.txt"); //导出的txt文本格式是utf-16 文件头为FF FE
system("type 1.txt > 2.txt");
//转换为普通txt文件格式
char filePath[MAX_PATH] = {};
GetCurrentDirectory(MAX_PATH, filePath);
SetCurrentDirectory(filePath);
strcat(filePath, "\\2.txt");
TCHAR fileData[M