Побег из VM Ware крис касперски ака мыщъх Хакер, номер #087, стр. 087-072-4 прочие способы Для обмена мелкими порциями данных между виртуальной машиной и основной системой удобно использовать старый добрый гибкий диск. Просто даем эмулятору физический доступ к устройству А: (B:)и все! В смысле кранты! Если вирус внедрит в boot-сектор зловредный код, то дискета окажется забытой в дисководе и этот дисковод будет первым загрузочным устройством в BIOS Setup, когда-нибудь зловредный код получит управление и сможет поразить жесткий диск основной системы. Существуют и другие сценарии проникновения, однако они еще менее жизнеспособны и поэтому здесь не рассматриваются. что же дальше? Эмулятор — это очень удобная вещь, однако от разведения вирусов в недрах виртуальной машины я советую воздержаться: «скорлупа», отделяющая гостевую систему от реального мира, слишком тонка, и против грамотно спланированной атаки ей не устоять. Можно, конечно, запустить эмулятор в эмуляторе (например, BOCHS внутри VM Ware), только это все равно не решит всех проблем, а вот производительность упадет колоссально! Отельный жесткий диск в этом плане намного надежнее, да и удобнее. Кстати говоря, отключать основной диск необходимо чисто физически — путем отрубания кабеля. Диски, перечисленные в основном разделе BIOS, актуальны только на стадии первичной загрузки, а дальше весь обмен идет через драйвер защищенного режима, работающий напрямую с контроллером. Отключение каналов интегрированного контролера через BIOS Setup, как правило, делает диски невидимыми, да и штатными средствами Windows до них не дотянуться, однако зловредный код при большом желании со своей стороны, может перенастроить контроллер на ходу, подцепив все каналы. Естественно, это системно-зависимая операция и все контроллеры программируются по-разному, но поддержать пару-тройку самых распространенных чипсетов вполне реально! Короче говоря, «дедовские» способы — самые надежные, но неудобные. Виртуальные машины — удобные, но ненадежные. Вот и выбирай! программа, определяющая версию VMWare #include <windows.h> // строковые константны #define VM "vmware" #define VM_DETECTED "detected" #define VM_NOT_DETECTED "not detected" #define VM_NOT_RECOGNZD "detected, but not recognized" // под vm-ware функция возвращает версию vm-ware в регистре eax // (нуль — это не vm-ware или версия неопознана), |