[C#]偵測目前OS是否虛擬機器

[C#]偵測目前OS是否虛擬機器

目前虛擬化愈來愈盛行,虛擬機器在未來絕對是一大趨勢,有了虛擬機器,還有人想要在機房中放一大堆的Server嗎?只要虛擬機器的軟體本身夠穩定,外面裝載的Server等級夠強健,我想多數的公司應該會逐步走向虛擬化,不過隨著虛擬機器的出現,軟體產品本身的權限管制,似乎也出現了一些亟需解決的問題,如果你的軟體是以識別電腦的為一識別碼做為判斷,在虛擬機器的環境下你的授權可能會遭受破解,對軟體開發人員來說,這是個讓人頭痛的問題,本文主要提供一個簡單的做法,來偵測目前執行的環境是否虛擬機器,如果是的話看你是要做些額外處理還是怎麼樣,這段不方便進行說明,請大家就自行思考了。

本文主要是用到Prevx所提供的VMDETECTLIBRARY.DLL來達到識別目前OS是否run在虛擬機器上:

Step1.請到Prevx去下載VMDETECTLIBRARY.DLL,順便看一下右邊的正妹

image

 

Step2.將下載下來的dll加入專案參考

image

Step3.using namespace

Step4.使用所提供的屬性來識別是否虛擬機器,目前提供兩種虛擬機器的判別,分別是VMWare跟VirtualPC;


VMDetect.IsInsideVPC;

如此就可以輕易的判別目前的OS是否run在虛擬機器上囉,是不是很簡單...

游舒帆 (gipi)

探索原力Co-founder,曾任TutorABC協理與鼎新電腦總監,並曾獲選兩屆微軟最有價值專家 ( MVP ),離開職場後創辦探索原力,致力於協助青少年培養面對未來的能力。認為教育與組織育才其實息息相關,都是在為未來儲備能量,2018年起成立為期一年的專題課程《職涯躍升的關鍵24堂課》,為培養台灣未來的領袖而努力。