Как определить, пренадлежит ли кластер диска к pagefile.sys?

Тема в разделе "WASM.NT.KERNEL", создана пользователем genesis, 7 ноя 2007.

  1. genesis

    genesis New Member

    Публикаций:
    0
    Регистрация:
    4 сен 2006
    Сообщения:
    43
    Всем привет.
    Читаю сырой диск, хотелось бы знать, и пропускать кластера, которые относяться к pagefile... Как бы это сделать?
     
  2. Mi256

    Mi256 New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2007
    Сообщения:
    116
    Ну например на FAT - просто сравнивай номер даного кластера с номерами кластеров pagefile из таблицы файлов. На ntfs - похоже но таблицы несколько другие
     
  3. genesis

    genesis New Member

    Публикаций:
    0
    Регистрация:
    4 сен 2006
    Сообщения:
    43
    Да, вариант парсить файловую систему есть всегда, это понятно. Но я думал что он крайний :). "Defragmenting Files " и "Disk Management Control Codes", или еще какая нибудь хрень есть? Так чтобы IOCTL послать, и все хорошо. Такого вот ниче нет?
     
  4. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Возможно, FSCTL_GET_RETRIEVAL_POINTERS поможет?
     
  5. genesis

    genesis New Member

    Публикаций:
    0
    Регистрация:
    4 сен 2006
    Сообщения:
    43
    поможет конечно, после того как хендл pagefils.sys получим... Собственно в получении хендла весь и вопрос...

    Код (Text):
    1. kd> x nt!MmPagingFile
    2. 8055f080 nt!MmPagingFile = <no type information>
    3. kd> dd 8055f080
    4. 8055f080  81218c00 00000000 00000000 00000000
    5.  
    6. kd> dt nt!_MMPAGING_FILE 81218c00
    7.    +0x000 Size             : 0x18000
    8.    +0x004 MaximumSize      : 0x30000
    9.    +0x008 MinimumSize      : 0x18000
    10.    +0x00c FreeSpace        : 0x15683
    11.    +0x010 CurrentUsage     : 0x297c
    12.    +0x014 PeakUsage        : 0x3802
    13.    +0x018 Hint             : 0
    14.    +0x01c HighestPage      : 0
    15.    +0x020 Entry            : [2] 0x81105868 _MMMOD_WRITER_MDL_ENTRY
    16.    +0x028 Bitmap           : 0xffb7a000 _RTL_BITMAP
    17.    +0x02c File             : 0x81194178 _FILE_OBJECT
    18.    +0x030 PageFileName     : _UNICODE_STRING "\??\C:\pagefile.sys"
    19.    +0x038 PageFileNumber   : 0
    20.    +0x03c Extended         : 0 ''
    21.    +0x03d HintSetToZero    : 0 ''
    22.    +0x03e BootPartition    : 0x1 ''
    23.    +0x040 FileHandle       : 0x800004a8