[RLS] VM Detection Methods

  • Moin,


    ich werde hier einige VMDetection Methoden releasen von ziemlich banalen zu

    etwas komplexeren. Note es kann sein das diese Methoden nicht zu 100% funktionieren, da sie teilweise

    gezielt einzelne VM Anbieter ansprechen. Insgesamt habe ich 7 verschiedene Methoden die ich nun in C++ umschreibe

    und für Windows Anpasse.


    Mein C++ codingstyle ist scheiße!

    Ich bin kein experte für WindowsAPI weder noch für c++.

    Verbesserungsvorschläge gerne gesehn!


    Kann man diese Methoden Bypassen?

    Ja kann man. Aber kein 0815 Metin2 Pleb.



    Folgende Methoden werden folgen:

    -TSC Register

    - MacAdresse Format First 3 Segements!

    - HyperVisor Detection

    - Via WMIC

    - Via CPU Tempreature

    - Via Network Interface

    - CPUID Prefix

    - Invalid ASM Instruction set



    Die erste die ich mit euch teilen möchte nutzt das TSC Register.

    Erklärung zum TSC Bitte melden Sie sich an, um diesen Link zu sehen.

    Hier die eklärung zu __rdtsc() Bitte melden Sie sich an, um diesen Link zu sehen.


    Code
    1. bool VMDetectionByTSCRegister()
    2. {
    3. UINT64 time1 = __rdtsc();
    4. UINT64 time2 = __rdtsc();
    5. if (time2 - time1 > 500)
    6. {
    7. return true;
    8. }
    9. return false;
    10. }

    Edit: Doch kein ASM nötig __rdtsc() funktioniert auch für 32Bit!

    Das obere Snippet ist für 64Bit und 32 Bit unten nur für 32Bit, da ASM nur auf 32 Bit compiled werden kann!

    Die 2 gesammelten Timestamps werden subtrahiert.

    Bei einem non virtualized System liegt die Differenz meistens bei 80-90.

    Bei einem virtualisierten eher über 500.


    Wieso funktioniert der Bums?


    Die direkte Erklärung ist viel ausführlicher und komplexer bin dafür aber zu dumm!

    VMware sagt folgendes zum TSC Timekeeping in einer virtuellen Maschiene.


    Zitat

    Virtual TSC
    Current VMware products virtualize the TSC in apparent time. The virtual TSC stays in step with the other
    timer devices visible in the virtual machine. Like those devices, the virtual TSC falls behind real time when
    there is a backlog of timer interrupts and catches up as the backlog is cleared. Thus, the virtual TSC does not
    count cycles of code run on the virtual CPU; it advances even when the virtual CPU is not running. The virtual
    TSC also does not match the TSC value on the host hardware ......


    Weitere folgen die Tage.


    MfG

    Zynko

    Sell Aze Nudes pn me

    9 Mal editiert, zuletzt von Señor Zynko ()

  • Dieses Thema enthält einen weiteren Beitrag, der nur für registrierte Benutzer sichtbar ist, bitte registrieren Sie sich oder melden Sie sich an um diesen lesen zu können.