Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #87, МАРТ 2006 г.

Побег из VM Ware

крис касперски ака мыщъх

Хакер, номер #087, стр. 087-072-5


// без vm-ware возбуждается исключение

__declspec(naked) get_vm() // "голая" функция без пролога и эпилога

{

__asm{

; подготавливаем аргументы и магические "пирожки"

mov ecx, 0Ah ; номер команды — определение версии

mov eax, 564d5868h; 'VMXh' — магический номер типа "пирожок"

mov edx, 00005658h; '..VX' — магический порт back-door интерфейса

; дергаем за "веревочку"

in eax, dx ; вызываем команду по back-door интерфейсу

; возвращенные параметры помещаются в EAX/EBX/ECX

; внимание!

; в среде чистой Windows без vm-ware при обращении к порту ввода-вывода

; произойдет исключение и управление будет передано SEH-обработчику,

; который должен быть заранее установлен (иначе выполнение программы

; будет завершено системой)

; если же мы еще здесь, следовательно, исключения не произошло,

; и, либо какой-то хитрый драйвер открыл порты ввода/вывода,

; либо мы находимся под управлением непатченной vm-ware

; или чего-то очень на нее похожего

cmp ebx, 'VMXh' ; анализируем возвращенный магический "пирожок"

je under_VMware ; если "пирожок" возвращен, то мы под vm-ware

xor eax,eax ; возвращаем ноль в знак того, что мы не под vm-ware!

ret ; выходим из функции

under_VMware:

ret ; мы под непатченной vm-ware, в eax номер версии

}

}

main()

{

// вызываем функцию get_vm из блока __try,

// чтобы отлавливать возникающие исключения.

// для простоты и наглядности версия vm-ware, возвращенная get_vm,

// не выводится на экран, сообщается лишь о том, был ли обнаружен

// непатченный эмулятор или нет (если исключения не произошло,то

// vm-ware считается обнаруженной)

__try { printf("%s %s\n",VM, (get_vm())?VM_DETECTED:VM_NOT_RECOGNZD);}

// обработчик исключения, получающий управление при выполнении программы

// в среде чистой Windows, под патченной vm-ware или на другом эмуляторе

__except(1) {printf("%s %s\n",VM, VM_NOT_DETECTED);}

}

WARNING

Учитывай, что информация в статье – не призыв к действию. Не принимай близко к сердцу написанное и не забывай, что за подобные действия можно попасть в суд.

Назад на стр. 087-072-4  Содержание