方法一: 通過核心匯出的變數。
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...