Come nascondere da un programma che è in esecuzione su una macchina virtuale?


13

Alcuni software contengono test per vedere se sono in esecuzione su una macchina virtuale.

È molto spiacevole vedere messaggi di avviso come "Siamo spiacenti, questa applicazione non può essere eseguita su una macchina virtuale". e fai arrestare il tuo software!

Esistono molti motivi legali per ignorare tali test. Inoltre tali limitazioni non sono (il più delle volte) scritte negli Accordi di licenza con l'utente.

Quindi ... come posso nascondere il fatto che una macchina virtuale sta eseguendo il programma? Non voglio che i programmi che eseguono questa scansione rilevino correttamente la VM in esecuzione.

Sto usando un Virtual Private Server (VPS) con Hyper-V ... Sono amministratore del sistema operativo (Windows 2003) installato su questo VPS, non amministratore di Hyper-V.


1
Puoi chiarire cosa intendi con "nascondi un programma"? Inoltre, quale software stai cercando di eseguire, in particolare?
Anderson Green,

@AndersonGreen, significano che vogliono impedire a un programma di rilevare che è in esecuzione in una macchina virtuale.
Synetech,

Quindi fammi capire bene, il tuo software in esecuzione nella VM e non vuoi che il software sull'host rilevi che esiste un certo software in esecuzione nella VM, giusto?
user88311

1
Devi stare attento. Se il programma sta deliberatamente verificando se è in esecuzione in un ambiente di debug / virtuale, potrebbe essere molto probabile che stia cercando di imporre una determinata dichiarazione elencata nel suo Accordo di licenza . La manomissione della VM potrebbe essere una violazione diretta dell'EULA.
bytebuster,

1
@bytebuster Ho detto nella mia domanda "Inoltre tali limitazioni non sono (la maggior parte delle volte) non scritte negli Accordi di licenza con l'utente." ... Quindi so che a volte è vietato farlo ... e a volte è permesso ... I non chiedere assistenza legale ma consulenza tecnica!
Femto Trader,

Risposte:


1

In breve, penso che proprio non puoi. È la discussione sul malware che prova a rilevare se è in esecuzione in una macchina virtuale per evitare di essere rilevato da sistemi che usano macchine virtuali per eseguire codice per verificare la presenza di malware.

Alcuni riferimenti rapidi sono: VRT: come fa il malware a conoscere la differenza tra il mondo virtuale e il mondo reale? e The Dead Giveaways di VM-Aware Malware .


1
Fortemente in disaccordo, hai l'argomento nel modo sbagliato. Il rilevamento che si tratta di un ambiente virtualizzato rende molto più facile per il malware svolgere il proprio lavoro. Considera anche che esistono laboratori anti-malware e anti-virus che devono eseguire macchine virtuali per isolare la loro ricerca e che piantare malware in quelle macchine virtuali e devono nascondere il fatto che l'istanza è un'istanza virtualizzata. Questo è il motivo preciso per cui ESXi / VSphere consente di impostare un flag per nascondere il fatto che una VM è una VM.
Matthias Wolf,

Sono anche in forte disaccordo, come su passthrough GPU NVidia w / carte di qualità consumer. I driver NVidia eseguono un controllo "VM" e non installano con il codice di errore 43, ma un rapido google trova la soluzione alternativa. È un gioco costante di gatto e topo quando si tratta di cose come questa.
FreeSoftwareServers

Penso che questa risposta sia corretta, o meglio lo sarebbe se affermasse che qualsiasi cosa trovata a funzionare "ora" probabilmente non funzionerebbe dopo un certo periodo di tempo in quanto questo è per molti versi una sorta di "corsa agli armamenti" (specialmente per quanto riguarda i malware ) e quindi i mezzi di rilevazione contro i mezzi per contrastare il rilevamento sono in costante cambiamento e avanzano nel tempo.
Chuck van der Linden,

0

Per quanto ne so, dipende dal tipo di virtualizzazione che stai utilizzando.

Cominciamo dicendo che puoi sicuramente mitigare alcune cose (ad esempio, cambiare l'indirizzo MAC, disinstallare le aggiunte degli ospiti).

Detto questo, se si esegue una virtualizzazione completa, l'hypervisor emula l'hardware per gli ospiti. Una CPU emulata avrà il suo clock (software) che, presto o tardi, mostrerà velocità diverse, quando non dovrebbe.

Questa è una delle cose che non puoi riparare in alcun modo e un programma (principalmente malware) saprà che è in esecuzione in una VM.

Puoi ottenerlo direttamente usando una paravirtualizzazione che consiste nell'utilizzare il tuo hardware reale in un ambiente chiuso.


Direi che dipende ugualmente da quale hyper-visor stai usando per sapere cosa sta facendo il software per vedere se è in una VM.
FreeSoftwareServers
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.