檢測程序是否是在虛擬機中運行源碼是一款檢測如果你的程序是在虛擬機內(nèi)運行和禁止工具,最近在項目中遇到一個虛擬機檢測的問題,需要檢測當(dāng)前程序是否在虛擬機中運行,相信很多朋友也會有同樣的問題,大家下載編譯使用。
判斷程序是否運行在虛擬機中的代碼
首先我們要了解一下什么是虛擬機, 對虛擬機的通用解釋是通過軟件模擬的具有完整硬件系統(tǒng)功能的, 運行在一個完全隔離環(huán)境中的完整計算機系統(tǒng). 通過虛擬機軟件, 你可以在一臺物理計算機上模擬出一臺或多臺虛擬的計算機, 這些虛擬機就像真正的計算機那樣進行工作, 例如你可以安裝操作系統(tǒng), 安裝應(yīng)用程序, 訪問網(wǎng)絡(luò)資源等等. 對于你而言, 它只是運行在你物理計算機上的一個應(yīng)用程序, 但是對于在虛擬機中運行的應(yīng)用程序而言, 它就像是在真正的計算機中進行工作. 因此, 當(dāng)我在虛擬機中進行軟件評測時, 可能系統(tǒng)一樣會崩潰, 但是, 崩潰的只是虛擬機上的操作系統(tǒng), 而不是物理計算機上的操作系統(tǒng), 并且, 使用虛擬機的恢復(fù)功能, 我可以馬上恢復(fù)虛擬機到安裝軟件之前的狀態(tài). 現(xiàn)在比較流行的虛擬機軟件有 VMWare 和 Microsoft Virtual PC , 它們都能在 Windows 系統(tǒng)上虛擬出多個計算機, 用于安裝 Windows 或其他操作系統(tǒng). 相比而言, VMWare 不論是在多操作系統(tǒng)的支持上, 還是在執(zhí)行效率上, 都比 Microsoft Virtual PC 明顯高出一籌. 但是 VMWare 沒有虛擬顯卡, 而是通過 VMWare Tools 才能用上高分辨率和真彩色. Microsoft Virtual PC 模擬了一個比較通用的顯卡:S3Trio32/64(4M), 這點看來比較通用, 易用性較好.
以下主要代碼主要判斷程序是否在虛擬機環(huán)境中運行, 測試環(huán)境為 Windows 系統(tǒng), 在 Windows XP SP2 + Microsoft Visual C++ 2003 下調(diào)試成功, 附編譯的檢測程序