[Delphi] Auf virtuelles System testen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von ColdFusion, 14. September 2007 .

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 14. September 2007
    Auf virtuelles System testen

    Hey,

    ich arbeite an einer Funktion mit der man erkennen kann, ob das eigene Programm auf einer VM gestartet wurde.
    Bisher funktioniert dieser allerdings nur mit den Betriebsystemen <= XP. Vista geht noch nicht.

    Daher brauche ich eure Hilfe:

    Alle die Vista auf ihrem richtigen PC installiert haben bitte einmal das Testprogramm starten und mir die ausgegebene(n) Nummer nennen. Bitte zusätzlich auch sagen um welche Vista Version es sich handelt (Ultimate, Home Premium, etc). Wer will gerne auch die Nummern posten, die ausgelesen werden, wenn Vista auf einer virtuellen maschine ausgeführt wird. Dann bitte noch hinschreiben welche Software verwendet wird. (VMWare, VirtualPC, VirtualBox, etc)

    Das Testrogramm gibt es hier:
    Download offline!
    Es zeigt lediglich für jede CPU die base adress der IDT an.

    // Edit by Kolazomai:
    Es ist nicht geklaert, ob dieses Programm ein Virus ist oder nicht. Bitte NICHT downloaden oder ausfuehren, wenn ihr euch nicht sicher seid, dass ihr damit umgehen koennt.
    // Edit by ColdFusion:
    Etwas weiter unten habe ich die Projektdatei gepostet. Könnt ihr euch gerne selber kompilieren wenn ihr wollt. Also definitiv keine Maleware.

    Erklärung: Das Programm liest die base adress der IDT (= Interrupt descriptor table) aus. Diese Adresse ist in einem Bestimmten Bereicht. Liegt die Adresse nicht dort, kann man sagen, dass das Programm unter einer virtuellen maschine ausgeführt wird. Für alle Systeme <= XP habe ich diesen Bereich schon herausgefunden. Seit Vista wurde der Bereich allerdings erweitert. Daher benötige ich nun möglichst viele Messwerte um Gemeinsamkeiten zu finden.

    Vielen Dank :)
     

  2. Anzeige
  3. #2 14. September 2007
    AW: BITTE TESTEN! Auf virtuelles System testen

    ich rate jedem ab dieses "programm" zu starten. ich tendiere zu malware.
    schlechter versuch, mit dem ersten beitrag ..hast dir aber ne nette story ausgesucht ;)
     
  4. #3 14. September 2007
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    AW: BITTE TESTEN! Auf virtuelles System testen

    Auch wenn ich das Misstrauen von B0B teile, und nie die exe eines Users der :
    1. nur einen post hat
    2. eine exe anbietet und sagt man soll draufklicken

    vertrauen.

    Allerdings sagt der Anubis Dienst folgendes:


    Code:
    1. General Information 
    
     [i]board.[/i] 
    Time needed: 36 s 
    Report created: 9/13/2007, 11:15:55 PM 
    Termination reason: All tracked processes have exited 
    Program version: 1.5 
    
    2. VMTest.exe
    
     [i]board.[/i] 
    Analysis Reason: Primary Analysis Subject 
    Filename: VMTest.exe 
    MD5: bc0a2c3e688aa5ec4340bb86bff3f6e6 
    SHA-1: 2570469d9f6c39d028a4b019e10c2c13f3c2f796 
    File Size: 45056 Bytes 
    Command Line: "C:\VMTest.exe" Process-status at analysis end: dead Exit Code: 0 
     [i]board.[/i] 
     Module Name Base Address Size
    C:\​WINDOWS\​system32\​ntdll.dll 0x7C900000 0x000B0000 
    C:\​WINDOWS\​system32\​kernel32.dll 0x7C800000 0x000F4000 
    C:\​WINDOWS\​system32\​oleaut32.dll 0x77120000 0x0008C000 
    C:\​WINDOWS\​system32\​msvcrt.dll 0x77C10000 0x00058000 
    C:\​WINDOWS\​system32\​USER32.dll 0x77D40000 0x00090000 
    C:\​WINDOWS\​system32\​GDI32.dll 0x77F10000 0x00047000 
    C:\​WINDOWS\​system32\​ADVAPI32.dll 0x77DD0000 0x0009B000 
    C:\​WINDOWS\​system32\​RPCRT4.dll 0x77E70000 0x00091000 
    C:\​WINDOWS\​system32\​ole32.dll 0x774E0000 0x0013D000 
    
     [i]board.[/i] 
    Module Name Base Address Size C:\WINDOWS\system32\MSCTF.dll 0x74720000 0x0004B000 
     [i]board.[/i] 
    Window Name Window Text CPU 1 OK Base adress: 8003F400 
    
    
    2.a) VMTest.exe - Registry Activities
    
     [i]board.[/i] 
    Key Name Value Times H
    KU\​S-1-5-21-1614895754-115176313-1202660629-1003\​Keyboard Layout\​Toggle Language Hotkey 1 2 
    HKU\​S-1-5-21-1614895754-115176313-1202660629-1003\​Keyboard Layout\​Toggle Layout Hotkey 2 2
    Es sieht also nicht so nach dem Hammermördervirus aus....
    aber das sollen schließlich alle Viren ;-)
    also Vorsicht.


    \\\

    Webwasher-Gateway 6.0.1 2007.09.14 Virus.Win32.FileInfector.gen!90 (suspicious)
     
  5. #4 14. September 2007
    AW: BITTE TESTEN! Auf virtuelles System testen

    nod 3.0 macht keinen muks bei der file - gestartet hab ich sie jedoch nicht ^^
     
  6. #5 14. September 2007
    AW: BITTE TESTEN! Auf virtuelles System testen

    Sieht auch unter IDA nicht gefährlich aus, aber ich würde es begrüßen, wenn du den src posten könntest ;) Ich bezweifel das man mit Delphi die IDT auslesen kann...

    @Smokers: Er will ja nur das man es in einer VM ausführt. Also halb so wild.

    mfg r90
     
  7. #6 14. September 2007
    AW: BITTE TESTEN! Auf virtuelles System testen

    Hey,

    nene es soll auf dem richtigen System ausgeführt werden.

    Hier meine Kernfunktion. Es fuktioniert über inline assembler:

    Code:
    function VMPresent: Boolean;
    
    function SetProcessAffinity(Affinity: DWORD): Boolean;
    var
     Handle: THandle;
    begin
     Result := False;
     Handle := OpenProcess(PROCESS_SET_INFORMATION, False, GetCurrentProcessID);
     if Handle <> 0 then
     begin
     Result := SetProcessAffinityMask(Handle, Affinity);
     CloseHandle(Handle);
     end;
    end;
    
    function LocateAddressIDT: DWord;
    asm
     push ecx
     push ecx
     sidt [esp+8+qword ptr -8]
     mov eax, dword ptr [esp+8+qword ptr -8+2]
     pop ecx
     pop ecx
     retn
    end;
    
    function QueryAndCompareIDT: Boolean;
    asm
     call LocateAddressIDT
     and eax, 0FF000000h
     xor ecx, ecx
     cmp eax, 80000000h
     setnz cl
     mov eax, ecx
     retn
    end;
    
    begin
     Result := false;
     try
     if SetProcessAffinity(1) then
     begin
     Result := QueryAndCompareIDT;
     end;
     except
    
     end;
    end;
    Mir fehlt allerdings noch der Wertebereich für Vista. Für <= XP funktioniert die Funktion wunderbar. Vista Systeme werden aber immer als VM erkannt :(
     
  8. #7 14. September 2007
    AW: Auf virtuelles System testen

    Hi!

    Online Malware Scan hat keinen Virus gefunden.
    Ich weise aber darauf hin, dass Download & Benutzung auf eigene Gefahr hin stattfindet.

    Du kannst dein ganzes Projekt als Source [ ProjektDatei ] posten, dann koennen wir es selbst kompilieren, und Verdaechtigungen sind ausgeschlossen ;)

    Mfg,

    Kolazomai
     
  9. #8 14. September 2007
    AW: Auf virtuelles System testen

    Bitte sehr: Download offline!
     

  10. Videos zum Thema
Die Seite wird geladen...
Similar Threads - Delphi virtuelles System
  1. DR/Delphi.Gen2

    muddern , 3. April 2016 , im Forum: Viren, Trojaner & Malware
    Antworten:
    3
    Aufrufe:
    922
  2. Antworten:
    1
    Aufrufe:
    1.112
  3. Antworten:
    1
    Aufrufe:
    777
  4. Antworten:
    5
    Aufrufe:
    1.242
  5. Antworten:
    20
    Aufrufe:
    3.335