Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Гайд Antivm (базовый)

кто прочитал тот будет жить
Премиум
Премиум
Статус
Оффлайн
Регистрация
5 Сен 2022
Сообщения
91
Реакции
17
простая проверка папки "VirtualBox" уже недостаточна. этот код сканирует все, от серийного номера материнской платы до скрытой сигнатуры "гипервизора" процессора. код способен обманывать тех, кто пытается анализировать данные с помощью QEMU.
опять же этого будет недостаточно для некоторых ПО (тут только база так что без хейта):da::da:

этот код не просто проверяет название системы, он извлекает сигнатуру Hypervisor напрямую из процессора. он распознает такие значения, как:

KVMKVMKVM (KVM)
Microsoft Hv (Hyper-V)
VMwareVMware (VMware)
XenVMMXenVMM (Xen)


C++:
Expand Collapse Copy
#include <iostream>
#include <windows.h>
#include <intrin.h>
#include <vector>

bool is_any_vm() {
    int cpuInfo[4];
    // адрес 0x40000000 возвращает подпись гипервизора
    __cpuid(cpuInfo, 0x40000000);
   
    char vendor[13];
    memcpy(vendor, &cpuInfo[1], 4);
    memcpy(vendor + 4, &cpuInfo[2], 4);
    memcpy(vendor + 8, &cpuInfo[3], 4);
    vendor[12] = '\0';

    // если процессор возвращает подпись виртуализации, значит это VM
    std::string v(vendor);
    if (v == "VMwareVMware" || v == "Microsoft Hv" || v == "KVMKVMKVM" ||
        v == "prl hyperv" || v == "VBoxVBoxVBox" || v == "XenVMMXenVMM") {
        return true;
    }
    return false;
}

// обманка
void fake_server_connection() {
    std::cout << "[*] Establishing connection: security.cc" << std::endl;
    while(true) {
        Sleep(2500);
        std::cout << "[+] Packet sent (Size: " << (rand() % 512) << " bytes)" << std::endl;
    }
}

int main() {
    if (is_any_vm()) {
        fake_server_connection();
    } else {
        // основной код
    }
}
 
простая проверка папки "VirtualBox" уже недостаточна. этот код сканирует все, от серийного номера материнской платы до скрытой сигнатуры "гипервизора" процессора. код способен обманывать тех, кто пытается анализировать данные с помощью QEMU.
опять же этого будет недостаточно для некоторых ПО (тут только база так что без хейта):da::da:

этот код не просто проверяет название системы, он извлекает сигнатуру Hypervisor напрямую из процессора. он распознает такие значения, как:

KVMKVMKVM (KVM)
Microsoft Hv (Hyper-V)
VMwareVMware (VMware)
XenVMMXenVMM (Xen)


C++:
Expand Collapse Copy
#include <iostream>
#include <windows.h>
#include <intrin.h>
#include <vector>

bool is_any_vm() {
    int cpuInfo[4];
    // адрес 0x40000000 возвращает подпись гипервизора
    __cpuid(cpuInfo, 0x40000000);
  
    char vendor[13];
    memcpy(vendor, &cpuInfo[1], 4);
    memcpy(vendor + 4, &cpuInfo[2], 4);
    memcpy(vendor + 8, &cpuInfo[3], 4);
    vendor[12] = '\0';

    // если процессор возвращает подпись виртуализации, значит это VM
    std::string v(vendor);
    if (v == "VMwareVMware" || v == "Microsoft Hv" || v == "KVMKVMKVM" ||
        v == "prl hyperv" || v == "VBoxVBoxVBox" || v == "XenVMMXenVMM") {
        return true;
    }
    return false;
}

// обманка
void fake_server_connection() {
    std::cout << "[*] Establishing connection: security.cc" << std::endl;
    while(true) {
        Sleep(2500);
        std::cout << "[+] Packet sent (Size: " << (rand() % 512) << " bytes)" << std::endl;
    }
}

int main() {
    if (is_any_vm()) {
        fake_server_connection();
    } else {
        // основной код
    }
}
Вот чел ахуент кода увидит логику отправки в 4 строчки где 2 это цикл а остальная это print
 
Назад
Сверху Снизу