OSDev
http://osdev.su/

NTFS
http://osdev.su/viewtopic.php?f=6&t=505
Страница 2 из 2

Автор:  Станислав [ 08 мар 2012, 20:53 ]
Заголовок сообщения:  Re: NTFS

Я понял, что в записях MFT есть котологи и файлы которые туда влезли, а те кто не влез разместили в других местах.
Записьи в MFT ещё не могу понять, начинаются с FILE0 размер 2 сектора записи, как дальше там записи
Папки с INDX размер 8 секторов у меня

Автор:  Yoda [ 08 мар 2012, 23:45 ]
Заголовок сообщения:  Re: NTFS

Станислав писал(а):
в записях MFT есть котологи и файлы которые туда влезли, а те кто не влез разместили в других местах.
...
Записьи в MFT ещё не могу понять, начинаются с FILE0 размер 2 сектора записи, как дальше там записи

Тээкс. Нету там каталогов. Каталоги хранятся отдельно. Ты документацию по ссылке скачал? Распаковал? Попробовал почитать?
Каждая запись MFT действительно начинается с магического числа "FILE". 0 в конце - это просто так получилось, на самом деле там смещение на "Update sequence". Вот как выглядит заголовок записи:

Offset Size Description
0x00 4 Magic number 'FILE'
0x04 2 Offset to the update sequence
0x06 2 Size in words of Update Sequence Number & Array (S)
0x08 8 $LogFile Sequence Number (LSN)
0x10 2 Sequence number
0x12 2 Hard link count
0x14 2 Offset to the first Attribute
0x16 2 Flags
0x18 4 Real size of the FILE record
0x1C 4 Allocated size of the FILE record
0x20 8 File reference to the base FILE record
0x28 2 Next Attribute Id
0x2A 2 Align to 4 byte boundary
0x2C 4 Number of this MFT Record
2 Update Sequence Number (a)
2S-2 Update Sequence Array (a)

Самое важное, что здесь есть, это смещение на первый атрибут, по адресу 0x14. По этому смещению раскручиваешь цепочку атрибутов в данной записи.

Содержимое атрибутов может быть резидентным (это значит, что прямо в этой записи они и находятся) или нерезидентным (тогда атрибут хранит цепочку кластеров, т.н. "data runs" в которых хранятся данные). Содержимое файлов хранится в неименованном атрибуте типа $DATA. Действительно, если файл достаточно маленький, он может разместиться прямо в записи.

Автор:  Станислав [ 09 мар 2012, 06:02 ]
Заголовок сообщения:  Re: NTFS

По NTFS инфу удачнее находить по таким словечкам как Offset to the update sequence
Нашел не плохие сайты, думаю скоро уже разберусь.
http://www.deltann.ru/10/d-052008/p-22
http://www.antivirus.ru/file_record.html
http://bos.asmhackers.net/docs/filesyst ... /INDX.html
http://www.insidepro.com/kk/044/044r.shtml

По ссылке Yoda нашёл код, он мне помоч не смог, но с твоими наводками и новыми сайтами разобраться уже вполне реально.

Автор:  Yoda [ 09 мар 2012, 16:15 ]
Заголовок сообщения:  Re: NTFS

Станислав писал(а):
По ссылке Yoda нашёл код, он мне помоч не смог

Это как? Смотрю в книгу, вижу фигу?? :))) Я дал ссылку на ДОКУ. Эта дока - составная часть проекта Линукс-НТФС. Качать надо доку, а не код НТФС-драйвера. Вот тебе более конкретная ссылка:
http://sourceforge.net/projects/linux-n ... p/download

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

Из четырёх ссылок две на одну и ту же статью Криса Касперски. Хорошая статья. Одна ссылка на муть. И одна ссылка на ту же доку, что и я привёл, только более старую и неудобную в плане навигации.

Автор:  Станислав [ 09 мар 2012, 17:25 ]
Заголовок сообщения:  Re: NTFS

Потзатупил я чагото :)
байт в загрузочном секторе "Clusters Per File Record Segment". У меня получается, что если там 0 то это 1 кластер
Я пытаюсь прочитать метку диска перебирая метафайлы и корневой каталог, было бы проще сектор каталога записать в BPB и метку диска туда же.
А если не хватит 8 секторов для перечисления элементов в папке, где след. сектора будут?

Страница 2 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/