午夜精品人妻久久久-成年美女很黄的网站-在线看片免费人成视久网app-国产精品美女无遮挡一区二区-91精品国产综合久久久久-国产的免费视频又猛又爽又刺激-在线看片免费人成视久网app-久久香蕉国产精品视频-av一区二区三区高清

如何檢測(cè)程序運(yùn)行在虛擬機(jī)中?

出處:
最近在網(wǎng)絡(luò)上看到有人提出一個(gè)有趣的問(wèn)題:程序能否知道自己是在虛擬機(jī)中運(yùn)行的?如果能虛擬機(jī)加載exe文件教程,是怎么做到的?
之前并沒(méi)有深入考慮過(guò)這個(gè)問(wèn)題 , 不過(guò)我知道這確實(shí)是可能的 。比如說(shuō),國(guó)內(nèi)比較有知名度的深度操作系統(tǒng)在安裝時(shí)就會(huì)檢查自己所在的運(yùn)行環(huán)境,如果發(fā)現(xiàn)是從虛擬機(jī)運(yùn)行的,就會(huì)主動(dòng)關(guān)閉一些比較消耗資源的動(dòng)畫(huà)與特效 。
除此之外,也聽(tīng)說(shuō)過(guò)這樣一種說(shuō)法:對(duì)于某些來(lái)源不明、可能攜帶病毒或有流氓行為 , 但仍然有用處的軟件,部分高級(jí)用戶會(huì)在虛擬機(jī)里安裝它們 , 以防止它們影響實(shí)際的系統(tǒng) 。后來(lái)這些流氓軟件的開(kāi)發(fā)者也學(xué)乖了,如果發(fā)現(xiàn)自己是從虛擬機(jī)中運(yùn)行的,就可以推斷出系統(tǒng)用戶可能屬于那種警覺(jué)性比較高的人,也有可能通過(guò)一些技術(shù)手段去觀測(cè)程序的行為 , 所以這些流氓軟件在虛擬機(jī)中反而表現(xiàn)得比較“老實(shí)” 。當(dāng)然,這只是聽(tīng)說(shuō),我并沒(méi)有實(shí)際驗(yàn)證過(guò) 。
既然知道這是可行的 , 接下來(lái)的問(wèn)題就是:如何辦到?我們已經(jīng)看到深度操作系統(tǒng)有檢查虛擬機(jī)的功能,并且它也是開(kāi)源的,我們不妨看看它是如何實(shí)現(xiàn)的 。
【如何檢測(cè)程序運(yùn)行在虛擬機(jī)中?】

如何檢測(cè)程序運(yùn)行在虛擬機(jī)中?

文章插圖
如何檢測(cè)程序運(yùn)行在虛擬機(jī)中?

文章插圖
一番查找之后,我在 — 項(xiàng)目中發(fā)現(xiàn)了具體代碼:
這個(gè)方法非常簡(jiǎn)單,相信你即便不熟悉 C++ 或者 Qt 也很容易看明白:運(yùn)行 cat /proc/,輸出結(jié)果如果包含字樣,就說(shuō)明程序是運(yùn)行在虛擬機(jī)中 。顯然這是一個(gè)系統(tǒng)級(jí)別的虛擬文件,也就是說(shuō) ,  Linux 已經(jīng)幫助我們實(shí)現(xiàn)了這個(gè)功能 。你可以去命令行自己運(yùn)行一下試試看 。因?yàn)檩敵鰞?nèi)容很長(zhǎng),要防止看花眼虛擬機(jī)加載exe文件教程 , 最好用期望的結(jié)果去過(guò)濾一下:
cat /proc/cpuinfo | grep hypervisor
以上是檢測(cè)虛擬機(jī)最簡(jiǎn)單、不需要其他外部依賴的辦法 。當(dāng)然,除此之外還有很多其他方法,總體說(shuō)來(lái) , 不外乎這么幾種思路:
如果你不喜歡前述方法的話,這里有一篇老外寫(xiě)的較為全面的文章 , 總結(jié)了判斷虛擬機(jī)的 10 種不同方法 。這些方法大多走的用硬件信息的路子,其中有些依賴于特定的系統(tǒng)命令,在實(shí)際使用中應(yīng)該結(jié)合 Linux 發(fā)行版的具體情況來(lái)選擇 。如果你仔細(xì)看過(guò)上面的代碼注釋 , 應(yīng)該會(huì)發(fā)現(xiàn)深度的開(kāi)發(fā)者也考慮到了調(diào)用外部命令(以及 virt-what 都是該文章提到過(guò)的方法),但最終還是選擇了第一種方式 。當(dāng)然 , 這個(gè)實(shí)現(xiàn)以后也可能會(huì)改變 。
本文到此結(jié)束,希望對(duì)大家有所幫助 。