Riconoscere macchina virtuale

di il
16 risposte

Riconoscere macchina virtuale

Ciao a tutti,

vorrei impedire che un mio software venga eseguito all' interno di una macchina virtuale tipo VMWare o HyperV. Conoscete un modo per riconoscere se ci si trova in questa situazione? Sarei interessato più ad una soluzione C#, comunque ho postato in questa sezione perché anche altre soluzioni mi andrebbero bene.

16 Risposte

  • Re: Riconoscere macchina virtuale

    Ecco una soluzione C#:
    
            public bool VMTest()
            {
                using (var searcher = new System.Management.ManagementObjectSearcher(
                     "Select * from Win32_ComputerSystem"))
                {
                    using (var items = searcher.Get())
                    {
                        foreach (var item in items)
                        {
                            string manufacturer = item["Manufacturer"].ToString().ToLower();
                            if (manufacturer == "microsoft corporation"
                                || manufacturer.Contains("vmware")
                                || item["Model"].ToString() == "VirtualBox")
                            {
                                return true;
                            }
                        }
                    }
    
                    return false;
                }
            }
    
  • Re: Riconoscere macchina virtuale

    Stupendo! Immagino che " microsoft corporation" corrisponda a HyperV.
  • Re: Riconoscere macchina virtuale

    Si, esatto.
  • Re: Riconoscere macchina virtuale

    Mentre se non sono sotto una macchina virtuale cosa dovrei aspettarmi?
  • Re: Riconoscere macchina virtuale

    Dovresti trovare il nome del produttore del pc ad esempio "Acer".
  • Re: Riconoscere macchina virtuale

    In genere, la marca del costruttore (ad es. hewlett-packard per un sistema HP).

    Ma occhio perché esistono altri "virtualizzatori" (come XEN) da prevedere.

    E comunque è un metodo abbastanza semplice da "superare" ... (come altri, del resto).
  • Re: Riconoscere macchina virtuale

    Ok grazie a tutti e due

    Un' altra cosa, sapreste indicarmi dove trovare l' elenco delle query che si possono fare con un ManagementObjectSearcher? Non sono riuscito a trovare della documentazione utile.
  • Re: Riconoscere macchina virtuale

    Mi dispiace ma non so risponderti, pure io ho trovato solo informazioni frammentarie.
  • Re: Riconoscere macchina virtuale

    Ok, grazie comunque e sarebbe OT, apro un altro thread.
  • Re: Riconoscere macchina virtuale

    Una curiosità, come faceva osservare oregon esistono altri virtualizzatori, cosa fai metti l' elenco di tutti? E se poi cambiano stringa?
  • Re: Riconoscere macchina virtuale

    In realtà a me interessa sapere che non sono sotto una vm e che mi trovo su un ben determinato pc (vedi thread sulla protezione software) per cui se per esempio non mi risponde "Acer" il programma protesta.
  • Re: Riconoscere macchina virtuale

    barba59 ha scritto:


    In realtà a me interessa sapere che non sono sotto una vm e che mi trovo su un ben determinato pc (vedi thread sulla protezione software) per cui se per esempio non mi risponde "Acer" il programma protesta.
    Mah ... non mi pare che potrai avere facilmente questa certezza ...
  • Re: Riconoscere macchina virtuale

    oregon ha scritto:


    barba59 ha scritto:


    In realtà a me interessa sapere che non sono sotto una vm e che mi trovo su un ben determinato pc (vedi thread sulla protezione software) per cui se per esempio non mi risponde "Acer" il programma protesta.
    Mah ... non mi pare che potrai avere facilmente questa certezza ...
    Assolutamente d' accordo, su questo non ho dubbi che hai ragione.

    Però per i miei programmi e per il tipo di clientela che ho è una protezione più che adeguata. È un pò come dire che qualsiasi lucchetto si può aprire però io alla bicicletta ce lo metto comunque
  • Re: Riconoscere macchina virtuale

    barba59 ha scritto:


    È un pò come dire che qualsiasi lucchetto si può aprire però io alla bicicletta ce lo metto comunque
    Sì, vedi mia risposta nell'altro thread ...
Devi accedere o registrarti per scrivere nel forum
16 risposte