2013-10-03 68 views
2

我的情況是這樣的:我們有一個許可證產品,如果將授權文件從一個位置複製到下一個位置,則該許可證會成功禁用。這也可以很好地跨PC使用。但是,我們剛剛發現了一個用例,該用例不能達到預期的效果:如果軟件在VM中獲得許可,並且第二次複製並加載該VM,則該軟件可以解決許可證複製保護問題,因爲該軟件認爲它仍然存在同一系統的一部分。有什麼技術可以用來確定軟件是否安裝在虛擬系統中,以及該虛擬機是否被複制以規避複製保護?用於發現虛擬機是否已被複制/虛擬機中是否安裝了軟件的技術

我知道這是一個相當廣泛的問題,但我並沒有在尋找確切的方法來確定如何實施複製保護。我正在尋找如何檢測虛擬機的存在的經過驗證的技術,以及爲確保虛擬機本身未被複制而需要檢查的內容。

如果我沒有在正確的位置詢問過這個問題(StackOverflow有一個廣泛的部分Q &討論,而不是一個空白的問題「請問問題得到答案」格式?),請移動到適當的位置。

+0

您無法檢測虛擬機映像是否已複製到__。這是意圖,你需要一個心靈讀者。但即使檢測到圖像被複制也幾乎不可能。這只是一點點。位序列10001是否被複制?如果你不能從5位中分辨出來,你需要多少位? – MSalters

回答

1

有一些VMware API可用於查找在同一ESXserver(管理程序)上運行的VM。我不確定這些服務器是否可以跨esx服務器使用,但如果它們連接在同一個vCenter上,則可能是可行的。此外,還有一些虛擬機上的服務發現方法,這些方法也需要來自特定服務的支持(對於您的軟件)。我相信,鉤子可以從客戶虛擬機插入,當一個服務啓動時,可以從其他虛擬機調用。

在你的情況下,可以說當你的程序在一個虛擬機中出現時,你可以插入鉤子。也就是說,如果虛擬機已被複制,並且稍後當您的程序在複製的虛擬機上啓動時,請調用掛接以查看服務是否正在另一個虛擬機上運行(您可以與掛鉤共享一些密鑰,以便新的虛擬機服務知道另一個人運行相同的密鑰)

當我們在開發一個基於vm的項目時,我們已經做了類似的事情。但我現在不記得確切的細節。

但我不認爲有一種方法來確定虛擬機是否得到複製或不復制。

+0

我希望也許我可以獲得加載的虛擬磁盤的實際路徑,並可能將我們的許可證綁定到該虛擬磁盤上(如果我們處於虛擬環境中) –