Wie verstecke ich mich vor einem Programm, das auf einer virtuellen Maschine ausgeführt wird?


13

Einige Software enthält Tests, um festzustellen, ob sie auf einer virtuellen Maschine ausgeführt werden.

Es ist sehr unangenehm, Warnmeldungen wie "Diese Anwendung kann nicht unter einer virtuellen Maschine ausgeführt werden" anzuzeigen. und lassen Sie Ihre Software stoppen!

Es gibt viele rechtliche Gründe, solche Tests außer Kraft zu setzen. Darüber hinaus sind solche Einschränkungen (meistens) nicht in Benutzerlizenzvereinbarungen festgelegt.

Also ... wie verstecke ich die Tatsache, dass eine virtuelle Maschine das Programm ausführt? Ich möchte nicht, dass Programme, die diesen Scan durchführen, die ausgeführte VM erfolgreich erkennen.

Ich verwende einen Virtual Private Server (VPS) mit Hyper-V ... Ich bin Administrator des auf diesem VPS installierten Betriebssystems (Windows 2003) und kein Administrator von Hyper-V.


1
Können Sie klarstellen, was Sie unter "Programm verstecken" verstehen? Welche Software möchten Sie speziell ausführen?
Anderson Green

@AndersonGreen, sie bedeuten, dass sie verhindern möchten, dass ein Programm erkennt, dass es in einer VM ausgeführt wird.
Synetech

Lassen Sie mich das klarstellen, Ihre laufende Software in der VM und Sie möchten nicht, dass Software auf dem Host erkennt, dass bestimmte Software in der VM ausgeführt wird, richtig?
user88311

1
Du solltest vorsichtig sein. Wenn das Programm absichtlich prüft, ob es in einer debuggten / virtuellen Umgebung ausgeführt wird, versucht es möglicherweise , eine bestimmte in seiner Lizenzvereinbarung aufgeführte Anweisung durchzusetzen . Manipulationen an VM können einen direkten Verstoß gegen die EULA darstellen.
Bytebuster

1
@bytebuster Ich sagte in meiner Frage: "Außerdem sind solche Einschränkungen (meistens) nicht in Benutzerlizenzvereinbarungen geschrieben." ... Ich weiß also, dass es manchmal verboten ist, dies zu tun ... und manchmal ist es erlaubt ... ich Suchen Sie keinen Rechtsbeistand, sondern technischen Rat!
Femto Trader

Antworten:


1

Kurz gesagt, ich denke du kannst es einfach nicht. Es geht um Malware, die versucht zu erkennen, ob sie in einer VM ausgeführt wird, um zu vermeiden, dass sie von Systemen erkannt wird, die VMs verwenden, um Code zur Überprüfung auf Malware auszuführen.

Einige Kurzreferenzen sind: VRT: Woher kennt Malware den Unterschied zwischen der virtuellen und der realen Welt? und The Dead Giveaways von VM-Aware Malware .


1
Stimme überhaupt nicht zu, du hast das Argument falsch herum. Die Erkennung, dass es sich um eine virtualisierte Umgebung handelt, erleichtert Malware die Arbeit erheblich. Bedenken Sie auch, dass es Anti-Malware- und Antiviren-Labors gibt, in denen VMs ausgeführt werden müssen, um ihre Forschung zu isolieren, und die Malware in diese VMs einbauen und die Tatsache verbergen müssen, dass es sich bei der Instanz um eine virtualisierte Instanz handelt. Dies ist der genaue Grund, warum ESXi / VSphere das Setzen eines Flags ermöglicht, um die Tatsache zu verbergen, dass eine VM eine VM ist.
Matthias Wolf

Ich bin auch nicht einverstanden, wie wäre es mit NVidia GPU Passthrough mit Consumer-Karten. NVidia-Treiber führen eine "VM" -Prüfung durch und können den Fehlercode 43 nicht installieren, aber ein schneller Google-Vorgang findet die Problemumgehung. Es ist ein ständiges Katz- und Mausspiel, wenn es um solche Dinge geht.
FreeSoftwareServers

Ich denke, diese Antwort ist richtig, oder besser gesagt, wenn festgestellt wird, dass alles, was "jetzt" funktioniert, nach einiger Zeit wahrscheinlich nicht mehr funktioniert, da dies in vielerlei Hinsicht eine Art "Wettrüsten" ist (insbesondere wenn es um Malware geht) ) und so ändern sich die Mittel zur Erkennung im Vergleich zu den Mitteln zur Verhinderung der Erkennung ständig und entwickeln sich im Laufe der Zeit weiter.
Chuck van der Linden

0

Soweit ich weiß, hängt dies von der Art der verwendeten Virtualisierung ab.

Lassen Sie uns sagen, dass Sie einige Dinge sicher abmildern können (z. B. MAC-Adresse ändern, Gast-Ergänzungen deinstallieren).

Wenn Sie jedoch eine vollständige Virtualisierung ausführen, emuliert der Hypervisor die Hardware für die Gäste. Eine emulierte CPU verfügt über eine eigene (Software-) Uhr, die früher oder später unterschiedliche Geschwindigkeiten anzeigt, wenn dies nicht der Fall sein sollte.

Dies ist eines der Dinge, die Sie in keiner Weise reparieren können, und ein Programm (meistens Malware) weiß, dass es in einer VM ausgeführt wird.

Sie können es mit einer Paravirtualisierung klarstellen, die darin besteht, Ihre echte Hardware in einer geschlossenen Umgebung zu verwenden.


Ich würde sagen, es hängt gleichermaßen davon ab, welchen Hypervisor Sie verwenden, um zu überprüfen, ob die Software überprüft, ob sie sich in einer VM befindet.
FreeSoftwareServers
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.