Эмулятор ЭМУ

 
  В начало  
  Эмулятор ЭМУ  
  Скачать эмулятор  
  О нас  
  Посещений: 1  
 

Эмулятор EMU v1.xx


Оглавление:


Назначение

Эмулятор EMU версии 1.01 - мощное инструментальное средство, позволяющее детально исследовать разнообразное программное обеспечение, функционирующее на аппаратной платформе Intel x86. С точки зрения пользователя эмулятор выглядит как классический отладчик программ, включающий традиционный набор возможностей для программ этого класса:

  • пошаговый и непрерывный режим выполнения исследуемой программы;
  • возможность остановки выполнения программы в заданных контрольных точках;
  • просмотр значений регистров центрального процессора;
  • просмотр содержимого оперативной памяти и стека.

Использование режима эмуляции позволило реализовать ряд принципиально новых возможностей, которые отсутствуют в обыкновенных отладчиках:

  • возможность исследования программ, выполняющихся до полной загрузки операционной системы (элементы BIOS, компоненты ОС);
  • просмотр параметров текущего состояния аппаратных устройств ПЭВМ (например, содержимого памяти CMOS, значений регистров и внутренних буферов контроллеров);
  • загрузка в режиме эмуляции различных операционных систем, под управлением которых выполняются исследуемые программы.

Описание программы

Эмулятор EMU по своей сути является виртуальной машиной, аналогичной реальной аппаратной платформе Intel x86. Исследуемая программа функционирует совершенно так же, как и на обыкновенном компьютере и ничего "не подозревает" о том, что она работает в режиме эмуляции. Достигается это за счет достаточно полного моделирования процессора, то есть реализации набора его команд, а так же моделирования того, над чем эти команды оперируют: регистров процессора, адресного пространства процессора (в которое попадают ОЗУ компьютера, ПЗУ системной платы и внешних устройств, ОЗУ внешних устройств, например, видеопамять, и т.д), а так же пространства портов ввода/вывода процессора, обеспечивающего процессору доступ к регистрам внешних устройств.

Естественно, что кроме всего вышеперечисленного для нормального функционирования программам нужны внешние устройства, такие как контроллер прерываний, таймер, жесткие и гибкие диски, клавиатура, видеоплата и т.д. Минимально необходимые для работы любых программ, а так же наиболее распространенные устройства представлены в эмуляторе EMU в виде соотвествующих программных моделей.

Эмулятор включает в себя программные модели следующих основных частей ПЭВМ:

  • центральный процессор (Intel Pentium);
  • чипсет Intel i815EP в составе:
    • мост Host-Hub Interface, обеспечивающий доступ к оперативной памяти компьютера (размер моделируемой оперативной памяти ограничивается возможностями аппаратной платформы, осуществляющей эмуляцию);
    • мост PCI-to-AGP Bridge (в полной мере не реализован);
    • Hub Interface to PCI Bridge ();
    • мост PCI-to-LPC, обеспечивающий доступ к устройствам на LPC шине (аналог Super I/O или ISA шины);
    • контроллер прямого доступа к памяти 8237 (DMA controller);
    • таймер 8254 (PIT);
    • контроллер прерываний 8259 (PIC);
    • часы реального времени (RTC) + энергонезависимая память КМОП (CMOS, до 128 байт, образ CMOS считывается из внешнего файла при начале эмуляции);
    • контроллер FWH, обеспечивающий доступ к ПЗУ системной платы, содержащему BIOS (образ BIOS считывается из файла);
    • контроллер расширенного управления питанием (ACPI);
    • контроллер IDE (один "Primary" канал, поддерживается только режим "Programmed I/O") с возможностью подключенния к нему моделей жестких дисков (ATA-4, образы дисков хранятся в виде внешних файлов) или модели привода CD-ROM (ATAPI-4, для моделирования используется реальный привод эмулирующего компьютера);
  • контроллер шины LPC Super I/O типа Winbond W83627HF, содержащий следующие контроллеры:
    • контроллер клавиатуры PS/2 8042 (с поддержкой мыши, для моделирования используется клавиатура и мышь эмулирующего компьютера);
    • контроллер накопителя на гибких магнитных дисках 82077/ 765, (FDD, образы дискет хранятся во внешних файлах);
    • контроллер последовательного порта (не реализован в полной мере);
    • контроллер параллельного порта (не реализован в полной мере);
    • монитор состояния процессора и системной платы (Hardware Monitor);
  • видеоадаптер VGA (с собственной BIOS в виде файла-образа);
  • монитор (представлен в виде отдельного окна программы).

На моделируемом компьютере выполняются все фазы работы обычного компьютера - "включение питания", загрузка операционной системы, запуск программ и др. Именно за счет данной "виртуализации" и обеспечивается замкнутость программной среды исследуемых программ , что позволяет существенно расширить класс решаемых задач. Под замкнутостью программной среды исследуемых программ понимается следующее: какие бы "вредоносные" действия не попыталась исполнить исследуемая программа, результат этих действий скажется только на функционировании других программ, работающих в режиме эмуляции, но не на работе эмулирующей платформы. Таким образом эксперт, проводящий исследование, всегда находится "снаружи" данной среды и при любых обстоятельствах имеет возможность сохранять контроль над исследуемой программой.

Эмулятор EMU функционирует под управлением операционных систем Windows 9x/NT/2000. Это обычная прикладная программа, не накладывающая каких-либо существенных (специальных) ограничений на операционную систему и аппаратные возможности эмулирующего компьютера. У программы имеется развитый графический интерфейс для наиболее удобного исследования эмулируемых программ.

Как и традиционные отладчики, эмулятор позволяет выполнять исследуемую программу в непрерывном и в пошаговом режимах. Допускается использование контрольных точек для приостановки работы программы. Количество контрольных точек очень велико (65536) и разнообразно (например, остановка программы при чтении данных из регистра внешнего устройства, при переходе центрального процессора в защищенный режим, при возникновении в процессоре исключения и др.), что позволяет осуществлять гораздо более полный контроль за ходом выполнения исследуемых программ. Возможности отладки, предоставляемые самим центральным процессором, так же моделируются, что позволяет использовать в режиме эмуляции и традиционные отладчики. Содержимое регистров центрального процессора, ячеек оперативной памяти, регистров внешних устройств выводится в отдельных окнах. В процессе работы программы нажатие клавиш на клавиатуре компьютера воспринимается как нажатие клавиш эмулируемого компьютера. Для отображения содержимого видеопамяти адаптера VGA так же используется отдельное окно эмулятора.

Типичный вид эмулятора во время работы представлен на рисунке 1.

Рис.1: Типичный вид эмулятора [увеличить]

Эмулятор имеет встроенный дизассемблер, позволяющий динамически дизассемблировать любые участки оперативной памяти. Пользователь также может применять для трассировки листинги, полученные с помощью дизассемблеров других фирм.


Рекомендуемая область применения

Эмулятор является программой с широкой областью применения. С его помощью можно решать следующие задачи:

  • Исследование особенностей функционирования элементов различных операционных систем, работающих на платформе Intel x86 (например, Windows NT).
  • Исследование работы прикладных программ в условиях отсутствия исходных текстов с целью выявления алгоритма функционирования.
  • Отладка программ, выполняющихся до полной загрузки операционной системы и, следовательно, без использования стандартных отладчиков (компоненты ОС).
  • Интерактивная отладка программного обеспечения BIOS и пользовательских ПЗУ в условиях интенсивного взаимодействия с аппаратурой компьютера.
  • Исследование программ, которые содержат зашифрованные (упакованные) участки или имеют средства защиты от отладки.
  • Исследование систем реального времени в пошаговом (!) режиме.
  • Антивирусные исследования.
  • Отладка программного обеспечения, взаимодействующего с аппаратными устройствами, которые реально отсутствуют на инструментальном компьютере, но представлены в эмуляторе своей программной моделью.
  • Выполнение работ по сертификации и аттестации программно-аппаратного обеспечения.

Требования

Программа работает на ПЭВМ (платформа Intel x86). Установка эмулятора требует следующих ресурсов:

  • ОС - Windows 9x/NT/2000;
  • свободное место на диске:
    • программное обеспечение - 1 MБ;
    • образы жестких дисков - в зависимости от их размера (например, 50 MБ);
    • другие файлы - 4 MБ.

Для приемлемого быстродействия работы эмулятора рекомендуется конфигурация не ниже Pentium-II 233 МГц, 64 MБ.


Ограничения

Эмулируемый компьютер по сравнению с реальными компьютерами имеет следующие ограничения:

  • количество устройств IDE - не более 2 (у реальных - до 4);
  • размер жесткого диска - не более 8 гигабайт, режим доступа - только Programmed I/O;
  • образ BIOS, загружаемой в эмулятор, должен быть совместим с BIOS для материнской платы с чипсетом Intel i815EP и чипом SuperI/O Winbond W83627HF.

При работе программного обеспечения в режиме эмуляции наблюдается естественное снижение быстродействия по сравнению с быстродействием инструментального компьютера. Так, например, на компьютере с процессором Pentium II ~400 МГц скорость эмуляции составляет около 1.000.000 команд в секунду, что вполне приемлемо для нормальной работы

 
Copyright © 2002-2007, Провинциальные Программисты