Woran erkennten Programme, dass sie in einer VM laufen?

9 Beiträge in diesem Thema

Hallo zusammen,

ich hätte eine kleine Verständnisfrage: Woran erkennt ein Programm bzw. ein Setup, dass es in einer VM ausgeführt werden soll?

Hintergrund ist der: Wir befinden uns im Jahre 2016 n.Chr. Meine ganzen Server sind virtualisiert ... Meine ganzen Server? Nein! Ein von unbeugsamen Lizenzprogrammen bevölkertes Blech hört nicht auf, dem Stromsparen Widerstand zu leisten. Und das Leben ist nicht leicht für die schwäbischen Administratoren, die als Besatzung in den befestigten Lagern... Ok, das geht dann zu weit^^

Ich möchte gerne mein letztes Blech weg virtualisieren, zum einen weil es - bis auf den Lizenzserver - überflüssig ist, zum anderen weil es mittlerweile außer Wartung ist und so langsam ersetzt gehört. Ich sehe aber eigentlich nicht ein, ein (im Vergleich zu einer "kostet mich nix VM) sauteures Blech anzuschaffen, Wartung zu zahlen etc. nur weil die Softwarefirma (ironischerweise wirklich Gallier.. ähm Franzosen) sagt, "unsere Software muss auf echter Hardware laufen, VM is nicht".

Die Lizenz überprüft soweit ich bis jetzt herausfinden konnte "nur" die MAC Adresse der Maschine auf der sie läuft, allerdings meckert das Setup für den Lizenzserver die VM immer an. Jetzt natürlich die Frage, woran merkt die das?

bearbeitet von Maniska

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Bei der Betriebssystem-Installation wird erkannt, ob ein physikalischer oder virtueller Server aufgesetzt wird. Das wird in der Konfiguration mit abgespeichert.

Unter Linux ist zum auslesen das Tool facter sehr hilfreich. Nach der Installation gibst Du z.B. facter processors ein.

Hinten siehst Du bei einem physikalischen Server dann "physicalcount" => 1. Das bedeutet, dass es auf richtiger Hardware läuft. Ähnliches muss es auch unter Windows geben. Irgendwo in der Registry wird es sicher Einträge geben, ob das Betriebssystem auf physikalischer oder virtueller Hardware läuft.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Woher weiß z.b. Windows, dass es eine VM ist? Nun es gibt durchaus ein paar Merkmale dafür, allen voran z.b. bestimmte Treiber die installiert werden (z.b. das, was früher die integration tools waren). Ich muss dir sicher nicht erklären, dass moderne CPUs  über eine durchaus hohe Anzahl an Befehlen verfügen, die an das Betriebssystem weitergegeben werden. Das gleiche muss natürlich auch für die VMs passieren (der hypervisor reicht es über die HAL nach oben weiter). Dementsprechend kann das Betriebssystem erkennen, dass es eben virtualisiert läuft.

 

So kompliziert müssen wir es dann aber gar nicht machen. Simples Beispiel zum nachvollziehen:

mach eine Powershell ein und vergleich den output des folgenden Befehls auf einer physischen Maschine und einer vm:

 

get-WmiObject Win32_ComputerSystem

Bei mir auf dem Hyper-V sieht dass dann so aus:

Domain              : core.internal.lab
Manufacturer        : System manufacturer
Model               : System Product Name
Name                : vhost10.core.internal.lab
PrimaryOwnerName    : admin@core.internal.lab
TotalPhysicalMemory : 68659310592

während in der vm folgendes rauskommt

Domain              : integration.core.internal.lab
Manufacturer        : Microsoft Corporation
Model               : Virtual Machine
Name                : DC01.integration.core.internal.lab
PrimaryOwnerName    : Windows User
TotalPhysicalMemory : 2147012608

Wie hilft dir das jetzt konkret? Leider gar nicht. Ich denke meine Ausführungen zeigen dir, dass es nicht nur ein, sondern mehrere Merkmale gibt, um einen Server als Blech oder virtuell zu erkennen. Welche davon konkret von dem Hersteller verwendet werden kann man so leider nicht erkennen. Wenn du dir die Mühe wirklichen machen willst, wäre wohl procmon ein erster Start, um mal zu verfolgen wohin der Kollege den wühlen geht.

bearbeitet von SilentDemise

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 51 Minuten schrieb Maniska:

nur weil die Softwarefirma (ironischerweise wirklich Gallier.. ähm Franzosen) sagt, "unsere Software muss auf echter Hardware laufen, VM is nicht".

Sorry, die stellen die Regeln auf und nicht du. Dir steht es natürlich frei, zu jedem beliebigen Konkurrenzprodukt zu wechseln... Wundert mich jetzt eh, wieso du von den - von dir so sehr gehassten - Franzosen überhaupt Software kaufst...

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Wo genau siehst du den Hass? Referenz auf den einleitenden Satz nicht verstanden? Man kann sich auch echt anstellen. 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 4 Stunden schrieb SilentDemise:

Wie hilft dir das jetzt konkret? Leider gar nicht. Ich denke meine Ausführungen zeigen dir, dass es nicht nur ein, sondern mehrere Merkmale gibt, um einen Server als Blech oder virtuell zu erkennen. Welche davon konkret von dem Hersteller verwendet werden kann man so leider nicht erkennen. Wenn du dir die Mühe wirklichen machen willst, wäre wohl procmon ein erster Start, um mal zu verfolgen wohin der Kollege den wühlen geht.

Ja, so was in der Art habe ich befürchtet, ich habe gehofft es gibt da so 1-3 "Standardwege" die man ggf. durchtesten könnte, aber so wie es ausschaut taugt das nur als ABM wenn man nichts sinvolleres zu tun hat.

Schade.

vor 3 Stunden schrieb pr0gg3r:

Sorry, die stellen die Regeln auf und nicht du. Dir steht es natürlich frei, zu jedem beliebigen Konkurrenzprodukt zu wechseln... Wundert mich jetzt eh, wieso du von den - von dir so sehr gehassten - Franzosen überhaupt Software kaufst...

Ähm, ja...

Nur weil deren 1st Level Support sagt "kömmer net, machmer net" ist das noch lange keine Regel. Es steht nirgens in der Lizenzvereinbarung, dass es nicht in einer VM betreiben werden DARF, es wird nur offiziell nicht unterstützt.

Es gibt übrigens Branchen, da wird einem vom Kunden vorgeschrieben welche Software man einzusetzen hat. Wenn $Großindustrie sagt du musst deine CAD Zeichnungen mit $Programm erstellen, dann erstellst du diese mit $Progrmm und nichts anderem. Sonst bist du die längste Zeit Zulieferer gewesen.

Was den angeblichen Hass auf Franzosen angeht, du hast wohl noch nie einen bestimmten französischen Comic von immem gesehen, oder?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

@Maniskalix:
Kommt die Meldung bei der Installation, oder hast du auch schon mal versucht, ein image zu ziehen oder das BS auf anderem Wege zu konvertieren ( P2V Konvertierung z.B. mit Disk2vhd)?

Schon verschiedene Virtualisierungslösungen (VMWare Shpere, WMWare ESX, HyperV) ausprobiert? Vielleicht funktioniert es ja auf einer der diversen Varianten doch.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hi,
 

Am 23.8.2016 um 16:11 schrieb Maniska:

Die Lizenz überprüft soweit ich bis jetzt herausfinden konnte "nur" die MAC Adresse der Maschine

aber auch die MAC Adresse gibt doch Auskunft:

00:50:56:00:00:00 ist z.B. VMWare. Auch VirtualBox und Oracle VM etc. haben entsprechende Vendor IDs, d.h. selbst daran könnte man das festmachen.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Es gibt übrigens Branchen, da wird einem vom Kunden vorgeschrieben welche Software man einzusetzen hat. Wenn $Großindustrie sagt du musst deine CAD Zeichnungen mit $Programm erstellen, dann erstellst du diese mit $Progrmm und nichts anderem. Sonst bist du die längste Zeit Zulieferer gewesen. <--richtig aber da ist abzuwägen:

Macht deine Firma durch den Kunden 200€ Umsatz im Monat würde ich keinen Handschlag für den Kunden machen und ihm empfehlen andere Software zu nutzen..

Ist es natürlich ein Kunde an dem massig Umsatz generiert wird, wirst du dich auf seine Bedürfnisse einstellen...aber dann sollte dir auch egal sein ob du für den Kunden ein eigenes Blech stehen hast.

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!


Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.


Jetzt anmelden