[UDF] Virtual PC erkennung (Vmware, VirtualBox, VirtualPc und Qemu )

  • Viel spaß :P

    Screenshot:
    [Blockierte Grafik: http://www.dark-labs.de/dt-312975974119.png]


    Spoiler anzeigen
    [autoit]


    If _IsInVBox() Then
    MsgBox(64,"","Ich bin in einem Virtuellen Computer")
    Else
    MsgBox(64,"","Ich bin NICHT in einem Virtuellen Computer")
    EndIf
    Func _IsInVBox($strComputer = '.')
    Local $x = 0, $objWMIService, $colItems
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_DiskDrive', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $vReturn = $objItem.Model
    If StringInStr($vReturn,"VBOX HARDDISK") Then
    Return True
    ExitLoop
    EndIf
    If StringInStr($vReturn,"QEMU HARDDISK") Then
    Return True
    ExitLoop
    EndIf
    If StringInStr($vReturn,"VMWARE VIRTUAL IDE HARD DRIVE") Then
    Return True
    ExitLoop
    EndIf
    If StringInStr($vReturn,"VIRTUAL HD") Then
    Return True
    ExitLoop
    EndIf
    Next
    EndIf ;Copyright (C) 2011 Fennek/sl4y3r
    EndFunc

    [/autoit]


    mfg. andi

    Einmal editiert, zuletzt von sl4y3r (13. Februar 2011 um 12:44)

  • Man kann es sogar noch kürzen :D

    [autoit]


    If _IsInVBox() Then
    MsgBox(64,"","Ich bin in einem Virtuellen Computer")
    Else
    MsgBox(64,"","Ich bin NICHT in einem Virtuellen Computer")
    EndIf
    Func _IsInVBox($strComputer = '.')
    Local $x = 0, $objWMIService, $colItems
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_DiskDrive', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    If StringInStr($objItem.Model,"VBOX HARDDISK") Then Return True
    If StringInStr($objItem.Model,"QEMU HARDDISK") Then Return True
    If StringInStr($objItem.Model,"VMWARE VIRTUAL IDE HARD DRIVE") Then Return True
    If StringInStr($objItem.Model,"VIRTUAL HD") Then Return True
    Next
    EndIf ;Copyright (C) 2011 Fennek/sl4y3r
    Return False ;sieht sauberer aus :P
    EndFunc

    [/autoit]
  • Man kann es sogar noch kürzen

    Das nennst du kürzen? ;) :

    Spoiler anzeigen
    [autoit]

    If _IsInVBox() Then
    MsgBox(64,"","Ich bin in einem Virtuellen Computer")
    Else
    MsgBox(64,"","Ich bin NICHT in einem Virtuellen Computer")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Func _IsInVBox($strComputer = '.')
    Local $oWMI = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    For $i In $oWMI.ExecQuery('SELECT Model FROM Win32_DiskDrive', 'WQL', 48)
    If StringRegExp($i.Model, "(VBOX|QEMU|VMWARE VIRTUAL|VIRTUAL HD)") Then Return True
    Next
    Return False
    EndFunc

    [/autoit]
  • Nette Idee aber mal ehrlich hast Du Probleme, die Realität von der virtuellen Realität zu unterscheiden. :)
    Dafür gibts doch bginfo, in jedem fall praktisch wenn man evtl. noch ein paar Infos mehr braucht als nur wo man sich aufhält.

    Gruß Dietmar

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Dietmar was soll bginfo sein?

    @Pinguin94 humm... bug, lass bitte folgendes skript mal in VMWare laufen und mach einen Screenshot ;)
    (Hab VMWare leider nicht installiert, daher habe ich mir die Festplatten Infos aus dem Inet gesucht...)

    [autoit]

    _IsInVBox()
    Func _IsInVBox($strComputer = '.')
    Local $x = 0, $objWMIService, $colItems
    $objWMIService = ObjGet('winmgmts:\\' & $strComputer & '\root\cimv2')
    If Not IsObj($objWMIService) Then Return SetError(1, 0, 0)
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_DiskDrive', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $vReturn = $objItem.Model
    msgbox(64,"Festplatte",$vReturn)
    Next
    EndIf ;Copyright (C) 2011 Fennek/sl4y3r
    EndFunc

    [/autoit]
  • schönes tool ;) kann man gebrauchen ;)

    hatte sowas auchschonmal released. allerdings nicht hier sondern im autoitbot forum. kannste dir ja vllt auch mal ansehn ;)

  • Klasse Sache, aber mir stellt sich gerade die Frage was wohl passiert wenn eine Festplatte zu einem VHD konvertiert wird ? wie wird diese dann erkannt als virtuelle Platte oder nicht ? Hat das schon einer Ausprobiert ? Zudem gibt es ja auch noch die möglichkeit eine VHD Datei als Festplatte in einem Hostsystem einzubinden, in dem fall währe es ja auch keine Virtuelle Umgebung ? oder wie ist dann die Definition ?

  • Es wird lediglich die das Modell der Festplatte ausgelesen, wenn diese VBOX... oder ähnliches enthält wird es als virtuelle Maschine erkannt :D

  • dann lass doch wie bei meiner udf einfach die grafikkarte auslesen. Dann kommt es nicht zu fehlern wenn es zb ein vhd ist xD

  • bginfo :) http://www.google.de/images?hl=de&q=sys%20internals%20bginfo&um=1&ie=UTF-8&source=og&sa=N&tab=wi

    Ich weiß nicht wie es sich bei Virtuell-PC und Quemu verhält aber vmwares kann man auch schön anhand der Mac Adresse erkennen.
    Damit filtern wir bei uns am Linux DHCP (auch wieder etwas, was Win DHCP (Stand 2k8R2) immer noch nicht kann :( ) die Maschinen aus welche ein GW bekommen und welche nicht.
    Wozu eigentlich so viele Emulatoren, damit sich jeder raussuchen kann was er möchte oder nutzt Du wirklich alle?

    Btw bei vm kannst Du auch schauen ob die tools installiert sind, ohne wäre ja nogo :)

    Gruß Dietmar

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Keine Sorge, kein Bug, ich hab einfach die VM Detection umgangen ( blödes Themida usw D: )