Внимание: запуск данной программы на процессорах Intel приведет к зависанию ОС!
Инициатор гипердрайвера переводит процессоры в виртуальный режим, а последний из них, изолирует от вычислительной установки. Последний (по номеру APIC) процессор используется исключительно для скоростного сканирования оперативной памяти внутри гипердрайвера. После развертывания гипердрайвера, уже находясь в виртуальном режиме, инициатор выдает прерывания перезагрузки (int 19h) и дальнейшее зависит от БИОС вашего компьютера. Загрузка ОС происходит уже под контролем гипердрайвера в виртуальном режиме работы процессора. Операционная система может быть абсолютно любая, лиш-бы она была 32-битная, все остальное гипердрайверу - «по барабану». После загрузки OS Windows нужно запустить гиперагент (файл Free_Eye.exe), которая организует интерфейс между гипердрайвером и пользователем системы. Эта программа выполняется на прикладном уровне и может работать в любой современной ОС Windows.
Данная программа может выполнять следующие функции:
После запуска программы весь её функционал и пользовательский интерфейс должен (я надеюсь) быть интуитивно понятен, а если это не так, то есть контекстные подсказки. В данной версии гипердрайвера функция эмуляции команды CPUID реализована не случайно, поясню суть. На сайте IXBT.COM появилась статья "VIA Nano как инструмент для исследователя: дают ли эффект нечестные методы конкурентной борьбы?", где была попытка разобраться с моделезависимостью программных продуктов. Авторы использовали не лучший тестовый инструмент, и поскольку тема моделезависимости для меня тоже актуальна, то возникло желание поучаствовать в этом процессе и помочь инструментарием в дальнейших изысканиях, благо возможность такая у меня есть. Для создания статических структур данных используемых в подстановках осуществляемых гипердрайвером используются специальные файлы с расширением.хар. Такой файл загружается инициатором гипердрайвера и используется в частности для подстановок при эмуляции команды CPUID. Для создания такого «.хар» файла имеется программка CPUIDXAP.exe, надеюсь Вы догадались, что ее имя происходит от старинного русского слова «хапнуть», что полностью отражает сущность выполняемой с ее помощью работы. Программа выполняется из ДОС, и создает хар-файл в корневой директории диска С:, этот файл можно отредактировать в бинарном редакторе по своему усмотрению перед его загрузкой в гипердрайвер. Структура файла состоит из двух последовательных блоков по 32 записи из 16 байт, первые 32 записи получены для результатов команды CPUID при ЕАХ=00000_00ххh, а второй блок получен при выполнении команды CPUID при ЕАХ=08000_00ххh. После запуска агента можно редактировать «хар» область подстановок непосредственно в его редакторе, запускать с разными значениями подстановок исследуемые программы и регистрировать в дампе события выполнения команды CPUID. Гипердрайвер грузит ОС с выключенным режимом подстановок в команде CPUID, включение режима подстановок происходит из агента (меню ДАМП). Для связи между программными объектами системы используется универсальный механизм вызова. Универсальность метода объясняется его работоспособностью как в системе виртуализации AMD, так и в системе Intel. Кроме этого, это еще и уникальный по своей природе метод, поскольку только с его помощью можно быстро вызвать из пользовательского уровня гипердрайвер. Для организации интерфейса используется машинная команда PAUSE – это очень специфическая команда, поскольку с одной стороны она относится к классу системных (меняет состояние процессора), но с другой стороны может выполняться на третьем кольце безопасности (пользовательский уровень) и, кроме того, не требует эмуляции. Интерфейс получается несколько ущербным, поскольку инициатором обмена информацией всегда является агент, а ответ на запрос выдает гипердрайвер. В этом интерфейсе гипердрайвер инициатором обмена данными быть не может. Данная программа является демонстрационной, а потому имеет рад ограничений; она не работает с 64битными ОС, не работает на процессорах Intel, не может работать с адресами большими 4 ГБ, длина строки поиска не может быть больше 8 байт. Больше в ней никаких ограничений нет.
|