показана карта адресного пространства
В таблице 1 3- 4 показана карта адресного пространства при выполнении все той же программы VMMap, но уже под управлением Windows 98. Для экономии места диапазон виртуальных адресов между 0x80018000 и 0x85620000 не приведен.
Базовый адрес | Тип | Размер | Блоки | Атрибут(ы) защиты | Описание |
00000000 | Free | 4194304 | |||
00400000 | Private | 131072 | 6 | ---- | C:\CD\X86\DEBUG\14_VMMAP.EXE |
00400000 | Private | 8192 | -R-- --- | ||
00402000 | Private | 8192 | -RW- --- | ||
00404000 | Private | 73728 | -R-- --- | ||
00416000 | Private | 8192 | -RW- --- | ||
00418000 | Private | 8192 | -R-- --- | ||
0041А000 | Reserve | 24576 | |||
00420000 | Private | 1114112 | 4 | - | |
00420000 | Private | 20480 | -RW- --- | ||
00425000 | Reserve | 1028096 | - | ||
00520000 | Private | 4096 | -RW- --- | ||
00521000 | Reserve | 61440 | |||
00530000 | Private | 65536 | 2 | -RW- --- | |
00530000 | Private | 4096 | -RW- --- | ||
00531000 | Reserve | 61440 | -RW- --- | ||
00540000 | Private | 1179648 | 6 | Стек потока | |
00540000 | Reserve | 942080 | -- | ||
00626000 | Private | 4096 | -RW- --- | ||
00627000 | Reserve | 24576 | -- - | ||
00620000 | Private | 4096 | — -- | ||
0062Е000 | Private | 139261 | -RW- --- | ||
00650000 | Reserve | 65536 | |||
00660000 | Private | 1114112 | 4 | - _ | |
00660000 | Private | 20480 | -RW- --- | ||
00665000 | Reserve | 1028096 | --- -- | ||
00760000 | Private | 4096 | -RW- --- | ||
00761000 | Reserve | 61440 | |||
00770000 | Private | 10485/6 | 2 | -RW- --- | |
00770000 | Private | 32768 | -RW- --- | ||
00778000 | Reserve | 1015808 | -RW- --- | ||
00870000 | Free | 2004418560 | |||
78000000 | Private | 262144 | 3 | ---- | С \WINDOWS\SYSTEM\MSVCRT.DLL |
78000000 | Private | 188416 | -R-- --- | ||
7802E000 | Private | 57344 | -RW- --- | ||
7803С000 | Private | 16384 | -R-- - | ||
78040000 | Free | 133955584 | |||
80000000 | Private | 4096 | 1 | --- | |
80000000 | Reserve | 4096 | -- --- | ||
80001000 | Private | 4096 | 1 | ||
80001000 | Private | 4096 | -RW- --- | ||
80002000 | Private | 4096 | 1 | ---- | |
80002000 | Private | 4096 | -RW- --- | ||
80003000 | Private | 4096 | 1 | ||
80003000 | Private | 4096 | -RW- --- | ||
80004000 | Private | 65536 | 2 | ||
80004000 | Private | 32768 | -RW- --- | ||
8000С000 | Reserve | 32768 | ---- --- | ||
80014000 | Private | 4096 | 1 | ||
80014000 | Private | 4096 | -RW- --- | ||
80015000 | Private | 4096 | 1 | ---- | |
80015000 | Private | 4096 | -RW- --- | ||
80016000 | Private | 4096 | 1 | ---- | |
80016000 | Private | 4096 | -RW- --- | ||
80017000 | Private | 4096 | 1 | ||
80017000 | Private | 4096 | -RW- --- | ||
85620000 | Free | 9773056 | |||
85F72000 | Private | 151552 | 1 | ---- | |
8bF72000 | Private | 151552 | -RW- --- | ||
85F97000 | Private | 327680 | 1 | ---- | |
85F97000 | Private | 327680 | -RW- --- | ||
85FE7000 | Free | 22052864 | |||
874EF000 | Private | 4194304 | 1 | ---- | |
874EF000 | Reserve | 4194304 | |||
878EF000 | Free | 679219200 | |||
B00B0000 | Private | 880640 | 3 | ||
B00B0000 | Private | 233472 | -RW- --- | ||
В00Е9000 | Private | 20480 | -RW- --- | ||
В00ЕЕ000 | Private | 626688 | -R- --- | ||
В0187000 | Free | 177311744 | |||
ВААА0000 | Private | 315392 | 7 | ---- | |
ВАAА0000 | Private | 4096 | -R- --- | ||
ВААA1000 | Private | 4096 | -RW- --- | ||
ВАAА2000 | Private | 241664 | -R- --- | ||
BAADD000 | Private | 4096 | -RW- --- | ||
BAADE000 | Private | 4096 | -R- --- | ||
BAAOF000 | Private | 32788 | -RW- --- | ||
ВААЕ7000 | Private | 24576 | -R- --- | ||
BAAED000 | Free | 86978560 | |||
BFDE0000 | Private | 20480 | 1 | ||
BFOE0000 | Private | 20480 | -R- --- | ||
BFDE5000 | Free | 45056 | |||
BFDF0000 | Private | 65536 | 3 | ---- | |
BFDF0000 | Private | 40960 | -R- --- | ||
BFDFA000 | Private | 4096 | -RW- --- | ||
BFDFB000 | Private | 20480 | -R- --- | ||
BFE00000 | Free | 131072 | |||
BFE20000 | Private | 16384 | 3 | --- | |
BFE20000 | Private | 8192 | -R- --- | ||
BFE22000 | Private | 4096 | -RW- --- | ||
BFE23000 | Private | 4096 | -R- --- | ||
BFE24000 | Free | 245760 | |||
BFE60000 | Private | 24576 | 3 | ---- | |
BFE60000 | Private | 8192 | -R-- --- | ||
BFE62000 | Private | 4096 | -RW- --- | ||
BFE63000 | Private | 12288 | -R-- --- | ||
BFE66000 | Free | 40960 | |||
BFE70000 | Private | 24I376 | 3 | ---- | |
BFE70000 | Private | 8192 | -R-- --- | ||
BFE72000 | Private | 4096 | -RW- --- | ||
BFE73000 | Private | 12288 | -R-- --- | ||
BFE76000 | Free | 40960 | |||
BFE80000 | Private | 65536 | 3 | ---- | С:\WINDOWS\SYSTEM\ADVAPI32.DLL |
BFE80000 | Private | 49152 | -R-- --- | ||
BFE8C000 | Private | 4096 | -RW- —— | ||
BFE8D000 | Private | 12288 | -R-- --- | ||
BFE90000 | Private | 573440 | 3 | ||
BFE90000 | Private | 425984 | -R-- --- | ||
BFEF8000 | Private | 4096 | -RW- --- | ||
BFEF9000 | Private | 143360 | -R-- --- | ||
BFF1C000 | Free | 16384 | |||
BFF20000 | Private | 155648 | 5 | ---- | С:\WINDOWS\SYSTEM\GDI32.DLL |
BFF20000 | Private | 126976 | -R-- --- | ||
BFF3F000 | Private | 8192 | -RW- --- | ||
BFF41000 | Private | 4096 | -R-- --- | ||
BFF42000 | Private | 1096 | -RW- --- | ||
BFF43000 | Private | 12288 | -R-- --- | ||
BFF46000 | Free | 40960 | |||
BFF50000 | Private | 69632 | 3 | С:\WINDOWS\SYSTEM\USER32.DLL | |
BFF50000 | Private | 53248 | -R-- --- | ||
BFF5D000 | Private | 4096 | -RW- — | ||
BFF5E000 | Private | 12288 | -R-- --- | ||
BFF61000 | Free | 61440 | |||
BFF70000 | Private | 585728 | 5 | ---- | С:\WINDOWS\SYSTEM\KERNEL32.DLL |
BFF70000 | Private | 352256 | -R-- --- | ||
BFFC6000 | Reserve | 12288 | ---- -- | ||
BFFC9000 | Private | 16384 | -RW- --- | ||
BFFCD000 | Private | 90112 | -R-- --- | ||
BFFE3000 | Reserve | 114688 | ---- --- | ||
BFFFF000 | Free | 4006 |
Таблица 13-4. Образец карты адресного пространства процесса (с указанием блоков внутри регионов) в Windows 98
Главное отличие двух карт адресного пространства в том, что под управлением Windows 98 информации получзешь значительно меньше Например, о регионах и блоках можно узнать лишь, свободные они, резервные или закрытые Распознать тип физической памяти Mapped или Image нельзя, Windows 98 не позволяет получить дополнительную информацию, по которой можно было бы судить, что с регионом связан проецируемый в память файл или образ исполняемого файла.
Наверное, Вы заметили, что размер большинства регионов кратен 64 Кб (это значение определяется гранулярностью выделения памяти) Если размеры блоков, составляющих регион, не дают в сумме величины, кратной 64 Кб, то в конце региона часто появляется резервный блок адресного пространства. Его размер выбирается системой так, чтобы довести общий объем региона до величины, кратной 64 Кб Например, регион, который начинается с ядреса 0x00530000, включает в себя два блока: четырехкилобайтовый блок переданной памяти и резервный блок, занимающий 60 Кб адресного пространства.
Заметьте также, что на последней карте не встречаются атрибуты защиты, разрешающие исполнение или копирование при записи, поcкoлькy Windowы 98 не поддерживает их. Кроме того, она не поддерживает и флаги атрибутов защиты (PAGE_GUARD, PAGE_WRITECOMBINE и PAGE_NOCACHE) Из-за этого программе VMMap приходится использовать более сложный метод, чтобы опредслить, не выделен ли данный регион под стек потока.
И последнее. В Windows 98 (в отличие от Windows 2000) можно исследовать регион адресного пространства 0x80000000-0xBFFFFFFF. Это раздел, в котором находится адресное пространство, общее для всех 32-разрядных приложений По карте видно, что в него загружены четыре системные DLL., и поэтому они доступны любому процессу