Помогите найти MmPagingFile

Тема в разделе "WASM.RESEARCH", создана пользователем VOOrDOOluck, 30 сен 2004.

  1. VOOrDOOluck

    VOOrDOOluck New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2004
    Сообщения:
    51
    Адрес:
    Ukraine
    Помогите найти MmPagingFile

    Всем привет.Я тут новенький,как и в дизасме.

    Нужно получить доступ к MmPagingFile для отслеживания работы с файлом подкачки.Ну и как всегда оно на експорт не пошло.В гугли кроме как моего побратима по несчастью и gloomy я не нашел.Но кроме них были две статьи с японского сайта.Кроме как

    kd> MmPagingFile ...

    ...

    особо понять ничего больше нельзя было.Но именно это мне и надо.

    Вопрос:если в kd такое можно узнать,наверно только с символьной инфой на сотню метров,то не мог бы ктото подсказать адрес MmPagingFile(конечно если это возможно).

    Желательно под xp(w2k тоже приму).

    Если такое не катит то подскажите в каком направлении порыскать(например в сайсе или ида)для результата.

    Заранее большое спасибо
     
  2. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    Под XP sp0 сама MmPagingFile по адресу 80546020, в ней 8144E9F0.
    Код (Text):
    1. typedef struct _MMPAGING_FILE {
    2.     PFN_NUMBER Size;
    3.     PFN_NUMBER MaximumSize;
    4.     PFN_NUMBER MinimumSize;
    5.     PFN_NUMBER FreeSpace;
    6.     PFN_NUMBER CurrentUsage;
    7.     PFN_NUMBER PeakUsage;
    8.     PFN_NUMBER Hint;
    9.     PFN_NUMBER HighestPage;
    10.     PMMMOD_WRITER_MDL_ENTRY Entry[MM_PAGING_FILE_MDLS];
    11.     PRTL_BITMAP Bitmap;
    12.     PFILE_OBJECT File;
    13.     UNICODE_STRING PageFileName;
    14.     ULONG PageFileNumber;
    15.     BOOLEAN Extended;
    16.     BOOLEAN HintSetToZero;
    17. } MMPAGING_FILE, *PMMPAGING_FILE;
     
  3. VOOrDOOluck

    VOOrDOOluck New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2004
    Сообщения:
    51
    Адрес:
    Ukraine
    Four-F

    Спасибо за отзыв.

    С хр sp1 не прокатило. Ж:dntknw:

    Откуда эти значения:из kd или дизасма.Очень интересно.

    P.S.поскольку не прокатило то что мне теперь можно сделать
     
  4. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    [ VOOrDOOluck: <font color="indigo]Откуда эти значения:из kd или дизасма.Очень интересно.</font><!--color--> ]



    Да я просто набрал в айсе dd MmPagingFile и всё. Kd тоже покажет.





    [ VOOrDOOluck: <font color="indigo]поскольку не прокатило то что мне теперь можно сделать</font><!--color--> ]



    Если айс стоит, то запускать \SoftICE\SymbolRetriever\symrtrvr.exe, жать на кнопку "Add File(s)", добавлять ntoskrnl, ставить галку "Load symbols into SoftICE", жать кнопку "Get Symbols", потом в айсе набирать dd MmPagingFile. Если Kd или WinDbg юзаешь, то доку читай. Там тоже написано как символы тянуть.





    ЗЫ: Структура из w2k сорсов, так что под ХР может не покатить. Есть ли она в PDB не знаю.
     
  5. VOOrDOOluck

    VOOrDOOluck New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2004
    Сообщения:
    51
    Адрес:
    Ukraine
    Four-F

    Символы уже были загружены предложеным способом.Но ничего.

    В чем может быть проблема.



    P.S.Кто нибудь у кого есть айс с xp sp1 посмотрите адрес MmPagingFile.Буду признателен.
     
  6. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    [ VOOrDOOluck: <font color="indigo]Символы уже были загружены предложеным способом.Но ничего. В чем может быть проблема.</font><!--color--> ]



    Если загружены были несколько pdb, то набирай table и смотри список... Активная таблица будет подсвечена. Если это не ntoskrnl, то не удивительно, что ничего. Переключи таблицу символов на ntoskrnl так table ntoskrnl, после этого должно работать. Попробуй ещё вывести список символов начинающихся с MmPaging. См лог.


    Код (Text):
    1. :table
    2. hal [NM32]
    3. kernel32 [NM32]
    4. ntdll [NM32]
    5. ntoskrnl [NM32]
    6. user32 [NM32]
    7. win32k [NM32]
    8. 0000520213 Bytes Of Symbol Memory Available
    9. :
    10. :
    11. :sym _mmpaging*
    12.       Address       Symbol Name
    13. .data(0023:8054A500, 00017BA4 bytes)
    14.     0023:80560AC0 _MmPagingFile
    15.     0023:80560B70 _MmPagingFileHeader




    ЗЫ: И доку почитай.
     
  7. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    VOOrDOOluck

    Хм, как я понял, ты всё со своей проблемой. Кстати, не обращал внимания на функции ioPageRead, ioPageWrite. Так вот, используя эти функции диспетчер памяти и иже с ними используют для сброса страниц в своп, причём вот я не понял, что касаемо контекста, но, ты можешь их перехватить и это тебе много даст. Как искать адреса функций в разных версиях ядер ??? Используй файлы символов и метод, описанный в книге Свена Шрайбера. Всё должно проканать.
     
  8. VOOrDOOluck

    VOOrDOOluck New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2004
    Сообщения:
    51
    Адрес:
    Ukraine
    Four-F

    в который раз спасибо.Мне это поможет изучить некоторые данные.

    CARDINAL

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

    Про контекст можно тоже забыть.Сброс в своп происходит не в конкретном процесе а над конкретеными pfn.

    ioPageRead, ioPageWrite я посмотрю.Но на них свет не сошелся и есть еще iocalldriver,asyncwrite... и event.

    Поэтому отслеживать запись/чтение полностью будет накладно.Кроме того page это хорошо но в своп оно может сбрасываться и кластерами.Тут page уже наверно не катит.

    Зато bitmap для конкретного pagefile дает реальную картину используемых и освобождаемых ресурсов свопа.

    В этом направлении и копаю.