在驅動中判斷系統是否執行在安全模式

2021-05-24 06:23:36 字數 839 閱讀 8142

方法一: 通過核心匯出的變數。

windows 核心匯出了乙個變數.乙個 ulong 型別的指標.initsafebootmode .用於確定系統執行於何種模式下.驅動程式可以用這個匯出的變數來判斷系統當前處於何種模式下.下列是關於這個變數的一些取值的說明:

value

mode

0the operating system is not in safe mode.

1safeboot_minimal

2safeboot_network

3*safeboot_dsrepair(僅用於windows 域控制器)

要使用這個變數可以參考如下:

extern pulong initsafebootmode;

然後便可以使用類似如下的**片斷做判斷.

方法二: 通過登錄檔

在安全模式下,系統將修改登錄檔中的一處鍵值,來記錄當前登入的模式。

hkey_local_machine/system/currentcontrolset/control/safeboot/option 項下的

optionvalue 的值,reg_dword 型別。

0             正常模式(正常模式下,optionvalue 項一般不存在)

1             mini 安全模式

2             帶網路連線的安全模式

在 windows 啟動的時候,我們可以看到還有個帶命令列的安全模式,

這種模式下 optionvalue 的值也為 1(與mini 安全模式相同),另外有新增了乙個鍵值。

usealternateshell     reg_dword 型別。 值為1。

判斷程式是否執行在虛擬機器裡 收藏

判讀程式是否執行在虛擬機器裡 include include isinsidevpc s exception filter dword forceinline isinsidevpc exceptionfilter lpexception pointers ep high level languag...

如何判斷當前程式是否執行在虛擬機器內

最近寫程式,碰到要檢測程式是否執行在虛擬機器內的問題。在網上找了一下,找到下面兩個函式,可以檢測程式是否執行在virtual machine中,支援vmware 和virtual pc檢測.主要的原理,都是利用virtual machine往往支援一些真實pc不支援的指令.isinsidevpc s...

如何判斷當前程式是否執行在虛擬機器內

最近寫程式,碰到要檢測程式是否執行在虛擬機器內的問題。在網上找了一下,找到下面兩個函式,可以檢測程式是否執行在virtual machine中,支援vmware 和virtual pc檢測.主要的原理,都是利用virtual machine往往支援一些真實pc不支援的指令.isinsidevpc s...