分类
游戏安全

判断SecureBoot是否开启

因微软签名机制改动,在开启了SecureBoot的机器下,需要微软whql证书以及ev证书支持才能够加载驱动至内核。
所以为了规避该问题.只能在未开启的机器上使用普通证书。在开启的机器上使用2015年或者以前的证书

方法一:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSecureBootState
UEFISecureBootEnabled
代码如下:

BOOLEAN _util_IsUEFISecureBootEnabled() {
 HKEY hkey; DWORD dwVal;
 DWORD WordType = REG_DWORD;
 DWORD WordData = 4;
 long ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SYSTEMCurrentControlSetControlSecureBootState", 0, KEY_READ, &hkey);
 if (hkey == NULL)
 return FALSE;
 if (RegQueryValueEx(hkey, L"UEFISecureBootEnabled", NULL, &WordType, (LPBYTE)&dwVal, &WordData) != ERROR_SUCCESS) {
 CloseHandle(hkey); return FALSE;
 }
 CloseHandle(hkey);
 return dwVal;
 }

方法二:

 fveapi.dll->FveGetSecureBootBindingState

方法三:

 _KUSER_SHARED_DATA->SafeBootMode
0 0 vote
文章评分

由FAKE

Через тернии к звездам,
через радость и слезы
Мы проложим дорогу

Subscribe
提醒
guest
0 评论
Inline Feedbacks
View all comments