В общем, понадобилась статистика значений CR3. Кому не в тягость, запустите у себя, пожалуйста, CR3InfoUM.exe из приложенного архива с правами администратора. Всё, что программа делает, — это читает значение cr3 и cr4 в контексте процесса system, после чего отображает диалог с результатами. Просьба указать, запускалось приложение нативно или под VM, и если под VM, то под какой. Если у кого-то возникнут сомнения насчёт моей порядочности, исходники в том же архиве. Ну и, собственно, начнём с того, что у меня уже имеется. Код (Text): Нативно: CR3 value: 0x003b5000 PAE: on OS version: 5.1.2600 SP 3.0 client Нативно: CR3 value: 0x00122000 PAE: on OS version: 6.0.6002 SP 2.0 client Нативно: CR3 value: 0x00185000 PAE: on OS version: 6.1.7601 SP 1.0 client VMWare: CR3 value: 0x00319000 PAE: on OS version: 5.1.2600 SP 3.0 client P.S. Забыл упомянуть, что тест только для 32-битных систем.
Кстати, извиняюсь, если кого-то вдруг напугало отсутствие реакции на запуск теста. Имело смысл сначала показывать гуи, а потом грузить драйвер. Загрузка драйвера может занять где-то до 20 секунд. newbie Спасибо. Ещё несколько результатов: Код (Text): VMWare: CR3 value: 0x00122000 PAE: on OS version: 6.0.6002 SP 2.0 client VMWare: CR3 value: 0x00185000 PAE: on OS version: 6.1.7600 SP 0.0 client VMWare: CR3 value: 0x00039000 PAE: off OS version: 5.1.2600 SP 3.0 client VMWare: CR3 value: 0x00122000 PAE: off OS version: 6.0.6002 SP 2.0 client VMWare: CR3 value: 0x00185000 PAE: off OS version: 6.1.7600 SP 0.0 client Native: CR3 value: 0x00185000 PAE: on OS version: 6.1.7600 SP 0.0 client Native: CR3 value: 0x00185000 PAE: off OS version: 6.1.7601 SP 1.0 client Нетрудно заметить, что при выключении PAE меняется значение CR3 только у XP. Попробовал запустить под Win2k, так она тест вообще за win32 приложение не считает. Интересно почему, но не столь важно — разбираться не стал.
Код (Text): VMWare: CR3 value: 0x00122000 PAE: on OS version: 6.0.6001 SP 1.0 client VMWare: CR3 value: 0x00ae2000 PAE: on OS version: 5.1.2600 SP 2.0 client >>понадобилась статистика значений CR3 Зачем, если не секрет?
lhc645 Спасибо. Пока что секрет, но обещаю его раскрыть... в этом году. Могу сказать, что колебание значений в XP не на пользу. Но целевая система — Win 7, где значения CR3, как и в Vista, кажутся постоянными.
t00x Спасибо. Вы не указали, на живой ли машине запускался тест. Странное значение, хоть и допустимое. Обычно последние три разряда обнулены. newbie Регистр x86, хранящий физический адрес таблиц страниц процесса. Подробности есть в 4-й главе тома 3A известной книжки.
Native CR3 value: 0xbff84020 PAE: on OS version: 5.2.3790 SP 2.0 server VMware CR3 value: 0x00319000 PAE: on OS version: 5.1.2600 SP 3.0 client
l_inc CR3 value: 0x03740020 PAE: on OS version: 5.1.2600 SP 3.0 client VMware® Player 3.1.2 build-301548
Ладно. Всем спасибо. С XP/2003 всё ясно: адрес зависит не только от включенного/выключенного PAE или /3GB, но даже от объёма оперативной памяти и ещё хз чего. Хотелось бы теперь убедиться, что хотя бы для Vista и Win 7 адреса постоянные: 0x00122000 и 0x00185000 соответственно.
lhc645 Как видно, обещание мне сдержать не удалось (нет мне прощения, сча буду оправдываться). С одной стороны, потому что неофициальное разрешение выставить на публику курсовой проект я получил только осенью (официальное, по ходу, даже не получил, но не суть). С другой стороны, потому что получил второй курсовой проект в качестве логического продолжения первого на порядок (шестнадцатиричный, пожалуй) большей трудоёмкости, и вот даже сейчас сижу (благо, уже) дописываю отчёт. Очень надеюсь, что таки к концу весны выкрою время на оформление полноценного раскрытия секрета... где-то между дописыванием уже на полгода задержанной бакалаврской и прохождением Deus Ex 3 и Mass Effect 2 (вон уже третий поспевает, а я всё во второй никак не поиграю).