虛擬機器的系統和程式能判斷出自己是執行在虛擬機器上的麼?

時間 2021-05-08 21:52:34

1樓:alpha調參師

答案是能。

對於full virtualization的硬體虛擬化,eg.KVM/QEMU,惡意軟體檢測虛擬機器環境的存在的方法可以分成以下幾種:

1.CPU Semantic Attack:有些指令在物理機上和在虛擬機器上執行的結果不同;

2.Timing Attacks:由於虛擬機器要模擬物理機,儘管使用了一些硬體加速的方案,仍然與在宿主機上執行有一定的差距,惡意軟體可以通過比較benchmark在實際機器與虛擬機器上的執行時間;

3.String Attack:就是樓上@yegle說的「檢測顯示卡、網絡卡的廠商資訊」;

對於2.的防禦可以用欺騙虛擬機器時鐘的方法,3.就更好防禦了,目前來說最難的是1的防禦,目前學術上有些文章是關於檢測哪些cpu指令導致semantic attack。

參考:https://www.

usenix.org/conference/u

senixsecurity14

2樓:

可以啊。Anti-VM在malware(惡意軟體)裡面是非常常用的技巧,推薦一下Michael Sikorski和Andrew Honig出的Practical Malware Analysis這本書,第17章全是Anti-VM。匿名使用者的答案裡的鏈結也很不錯。

如果懶得自己寫的話可以試一下trapkit.de - ScoopyNG 這個軟體……反VM套裝,你值得擁有。

3樓:北極

如果只針對某一款特定的虛擬機器,肯定有一些辦法,比如VMWare或者VirtualBox,這些虛擬機器都比較好檢查。

但是沒有一種通用的方法。

尤其是那種指令級翻譯的,比如bochs,能在非x86平台模擬x86指令(這類虛擬機器可以被稱為emulator),一般的檢查方法就很難檢查到了。

所以,方法肯定有,但通用的肯定沒有,要知道,虛擬機器沒有上百種也有幾十種了。(http://

en.wikipedia.org/wiki/C

omparison_of_platform_virtualization_software)

4樓:Xi Yang

當然能。虛擬機器經常會虛擬乙個特別的主機板。

實際上,Debian在安裝系統的時候,就會發現是否執行在virtualbox裡,然後會自動安裝virtualbox的特別驅動。

虛擬機器和雙系統有什麼區別

虛擬機器是在原本的宿主系統中通過虛擬機器軟體來安裝其他不同的作業系統,好處的話就是切換自如,可以用來做一些測試,搭建服務端環境之類的用途,也可以單純用於折騰和體驗一些新鮮系統.虛擬機器畢竟是軟體,所以你要做移植也是十分容易的,匯出之後在其他電腦就可以匯入並且享受同樣的體驗。壞處基本上就是對物理主機的...

Docker 安裝的Ubuntu 和 虛擬機器安裝的Ubuntu 有什麼區別?

數人雲 這個問題的其實是容器技術和虛擬機器技術的區別,虛擬機器執行的ubuntu是乙個完整的資源強隔離的作業系統,啟動時需要完整的引導載入的過程。容器執行的ubutun並非完整的作業系統,使用的是宿主機的linux核心,啟動時沒有引導的過程,可以秒起,是執行在宿主機上的乙個程序。 簡單的說 虛擬機器...

mac VM虛擬機器裡的XP系統打不開。提示 「打不開 dev vmmon 無此檔案或目錄」,怎麼解決?

汪楊 mac上也經常遇到 打不開 dev vmmon 問題,說一下思路 基本原因和HAXM或者docker衝突,說一下mac上haxm衝突的解決辦法 1 啟動vmware fushion前先解除安裝haxm的核心模組 sudo kextunload Library Extensions intelh...