Привет всем.
Столкнулся с сабжевой проблемой.
Кто-нибудь занимался подобной темой ?
Насколько мне известно технология востановления файлов для NTFS будет отличаться от Fat/Fat32
Если да, то поделитесь опытом, в каком направлении копать, чтобы порешать ее под обе файловые системы ?
Заранее спасибо...
Здравствуйте, VladSharkov, Вы писали:
VS>Привет всем. VS>Столкнулся с сабжевой проблемой. VS>Кто-нибудь занимался подобной темой ? VS>Насколько мне известно технология востановления файлов для NTFS будет отличаться от Fat/Fat32 VS>Если да, то поделитесь опытом, в каком направлении копать, чтобы порешать ее под обе файловые системы ? VS>Заранее спасибо...
Собственно нужно сначало изучить устройство этих файловых систем.
Могу точно сказать, что 100% гарантии невозможно достич.
Да есть некоторые условия при которых файлы можно восстановить, однако эти условия достаточно узкие.
> Насколько мне известно технология востановления файлов для NTFS будет > отличаться от Fat/Fat32 >
Если файл был фрагментированным, то ты его можешь восстановить только догадываясь где какой фрагмент находился — анализировать сам формат файла, делать догадки, что какой-то фрагмент мог быть нефрагментированным — вобщем больше алхимии, а не точной науки!!!
Если же ты заведомо знаешь, что файл не фрагментирован или умещался в одном кластере, то достаточно найти его описатель в родительской папке взять значение первого кластера и размер файла, а потом последовательно забивать в FAT'е нужные значения!!!
Но если в FAT'е всё расположение и хранится в одном месте и формате, то в NTFS'е это не всегда так: маленькие файлы хранятся прямо в MFT!!!
Вот как с шифрованиям и сжатием дела обстоят я даже не представляю — вобщем восстановление NTFS'а очень геморно!!!
Недаром большинство прог работают с ним только в режиме чтения!!!
Posted via RSDN NNTP Server 1.9 beta
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Здравствуйте, VladSharkov, Вы писали:
VS>Привет всем. VS>Столкнулся с сабжевой проблемой. VS>Кто-нибудь занимался подобной темой ? VS>Насколько мне известно технология востановления файлов для NTFS будет отличаться от Fat/Fat32 VS>Если да, то поделитесь опытом, в каком направлении копать, чтобы порешать ее под обе файловые системы ? VS>Заранее спасибо...
Сталкивался. Решал.
Про FAT уже написано много всего хорошего. Если вкратце, то точно восстановить файл там можно только если он не фрагментирован. В противном случае, будут проблемы. (Помнится, Norton Unerase позволял руками находить кластеры, принадлежащие файлу и склеивать их.)
С NTFS все гораздно лучше.
В "Windows 2000 Native API Reference" Gary Nabbet-а есть два примера работы c NTFS. Они помогут разобраться с базовыми концепциями. Кроме того, в сети есть дока по структурам NTFS (создавалась в рамках проекта по написанию драйвера NTFS для Linix. Лежит где-то на sourceforge.) . Мне этого хватило, что бы написать свой undelete. Со сжатыми файлами проблем не будет. С зашифрованными вроде тоже.
PS: Учтите, что ваш процесс разработки будет выглядеть сл. образом:
Во всяком случае, у меня все было именно так.
Re: Как написать unerase
От:
Аноним
Дата:
24.06.04 17:42
Оценка:
Здравствуйте, VladSharkov, Вы писали:
VS>Столкнулся с сабжевой проблемой.
Здравствуйте, Stanky, Вы писали:
S>Если файл был фрагментированным, то ты его можешь восстановить только догадываясь где какой фрагмент находился — анализировать сам формат файла, делать догадки, что какой-то фрагмент мог быть нефрагментированным — вобщем больше алхимии, а не точной науки!!!
Совершенно верно.
S>Если же ты заведомо знаешь, что файл не фрагментирован или умещался в одном кластере, то достаточно найти его описатель в родительской папке взять значение первого кластера и размер файла, а потом последовательно забивать в FAT'е нужные значения!!!
Не всегда можно узнать начальный кластер, т.к. при удалении старший байт обнуляется. Для FAT12/16 это не страшно, но для FAT32 имеет место.
S>Но если в FAT'е всё расположение и хранится в одном месте и формате, то в NTFS'е это не всегда так: маленькие файлы хранятся прямо в MFT!!!
Угу
S>Вот как с шифрованиям и сжатием дела обстоят я даже не представляю — вобщем восстановление NTFS'а очень геморно!!!
Ну не очень геморно, но сложнее.
S>Недаром большинство прог работают с ним только в режиме чтения!!!
Ну для unerase запись и не нужна. А вообще с записью не связываются по другой причине — формат NTFS не документирован, и поэтому всегда есть вероятность записать чего-нибудь что ОС не поймет.
Я как раз пишу свою такую тулзу, можно глянуть на www.handyrecovery.com. Там правда 1.0, но скоро будет релиз 2.0
Re[2]: Как написать unerase
От:
Аноним
Дата:
25.06.04 05:10
Оценка:
Здравствуйте, Lonely Dog, Вы писали:
LD>PS: Учтите, что ваш процесс разработки будет выглядеть сл. образом: LD>
LD>Во всяком случае, у меня все было именно так.
> Ну для unerase запись и не нужна. А вообще с записью не связываются по > другой причине — формат NTFS не документирован >
Именно по этой причине я и сказал, что это довольно геморно!!!
Причём существует несколько версий NTFS'а: на данный момент последняя 5.0.
Posted via RSDN NNTP Server 1.9 beta
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
> Я как раз пишу свою такую тулзу, можно глянуть на > www.handyrecovery.com. Там правда 1.0, но скоро будет релиз 2.0 >
Если не секрет, то как происходит восстановление файла в FAT'е?
Делается предполажение, что файл не фрагментирован или что-то посложней?
Posted via RSDN NNTP Server 1.9 beta
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Re[4]: Как написать unerase
От:
Аноним
Дата:
27.06.04 08:36
Оценка:
Здравствуйте, Stanky, Вы писали:
>> Я как раз пишу свою такую тулзу, можно глянуть на >> www.handyrecovery.com. Там правда 1.0, но скоро будет релиз 2.0 >> S>Если не секрет, то как происходит восстановление файла в FAT'е? S>Делается предполажение, что файл не фрагментирован или что-то посложней?
Пока FAT был неприоритетной FS, поэтому реализован самый простой вариант, когда считаем файл недефрагменитрованным, но есть идеи по улучшению, наверное в 2.1 буду доделывать.
> Пока FAT был неприоритетной FS, поэтому реализован самый простой > вариант, когда считаем файл недефрагменитрованным, но есть идеи по > улучшению, наверное в 2.1 буду доделывать. >
И какие идеи?
По формату файла ориентироваться или люзера спрашивать оно не оно?
Posted via RSDN NNTP Server 1.9 beta
Не бойся выглядеть глупо, от этого ты выглядишь ещё глупей!!!
Re[6]: Как написать unerase
От:
Аноним
Дата:
28.06.04 05:14
Оценка:
Здравствуйте, Stanky, Вы писали:
S>И какие идеи? S>По формату файла ориентироваться или
И это тоже
S>люзера спрашивать оно не оно?
Ну спрашивать вряд ли, многие не поймут чего от них хотят