id: Гость   вход   регистрация
текущее время 14:54 25/04/2024
Автор темы: Гость, тема открыта 26/07/2007 21:42 Печать
https://www.pgpru.com/Форум/PGPdiskWholeDisk/РазборкаИВосстановлениеПоврежденногоКонтейнераPgpdisk
создать
просмотр
ссылки

Разборка и восстановление поврежденного контейнера PGPDisk.


Восстанавливал поврежденный контейнер с 23 до 5 утра, пока что без успеха. Решил написать
сочинение, возможно кому-то будет полезен и интересен мой опыт, а может кто подскажет что делать.


Навеяно бессонной ночью и progressive trance от di.fm... :)


PGP 9.0.5 [Build 650]
PGP SDK 3.5.0
Шифрование AES (256 bit)


На 4Гб флэшке PGPDiskом был создан контейнер disk.pgd объемом около 3-3.5 Гб (точно не помню).
На флэшке хранятся все документы, письма и информация наработанная за последние 3 года.
Использовался только пароль, без ключей. Файловая система контейнера NTFS.
Сама флэшка FAT32. Бэкапа НЕТ. :(


Вчера в результате неожиданного отключения электричества Мосэнерго, на работе умер UPS
и компьютер выключился вместе с подключенной к нему флэшкой. Был-ли замонтирован на тот
момент контейнер я точно не помню, скорее всего – нет. После включения компьютера Windows
почему-то удивился флэшке, вроде как нашел новое устройство, что-то похимичил и сообщил,
что Device ready to use.


Как обычно, кликаю иконку, чтобы замонтировать диск, ввожу пароль и получаю в ответ: "Incorrect
passphrase. Please try again." После еще пары попыток соображаю, что что-то случилось с флэшкой
и иду смотреть все-ли в порядке с файлом PGD. Файл на месте, его размер 3500*1024*1024+2560 байт,
флэшка читается и на первый взгляд вроде все в порядке.
Открываю PGPDesktop и вижу, что диску не назначен пользователь.


Почитав интернет и этот замечательный форум, понял, что утерян закрывающий заголовок PGPdUSER.
Ставлю Acronis True Image, делаю полный бэкап флэшки и проверяю ее chkdskом – говорит, что все ок.
Перезаливаю бэкап обратно на флэшку, чтобы вернуть ее допроверочное состояние и открываю ее WinHEXом.


Содержимое флэшки физически выглядит приблизительно так:
FAT32 headers
DATA
PGPdMAIN (логическое начало файла disk.pgd)
DATA (содержимое disk.pgd)
DATA (логический конец disk.pgd)
DATA (ровно 90 мбайт минус 512 байт, т.е. 90*1024*1024-512 байт)
PGPdUSER (видимо от моего файла)
FFFFFF – пустое место
PGPdMAIN (начало удаленного ранее другого pgd файла)
DATA
PGPdUSER (конец удаленного ранее другого pgd файла)
FFFFFF – пустое место
PGPdMAIN (начало удаленного ранее другого pgd файла)
DATA
PGPdUSER (конец удаленного ранее другого pgd файла)
FFFFFF – пустое место


Кстати, интересно, что WinHEX видит, что файл закончился, только после перехода в другой кластер
или сектор.
Учитывая, что я точно не помнил размер контейнера, то решил, что видимо в результате сбоя система
неправильно поставила окончание файла моего контейнера.
Поэтому я переписываю disk.pgd на жесткий диск, и добавляю WinHEXом 90 мбайт с закрывающим
заголовком. Добавляю диск в PGPDesktop – пользователь не появился, пароль не принимает.


Тогда я еще раз пересчитал размер файла и понял, что он точно соответствует 3500 Мбайт + 2560 байт,
тогда я заменил последние 512 байт файла на заголовок PGPdUSER, на который думал, что он от моего файла.
Добавляю файл в PGPDesktop – Ура! Пользователь появился, пароль принимается,
но при этом файловая система не определяется (RAW, размер 0 байт, свободно 0 байт.)
:(


Таким образом:
– оба заголовка сохранились и работают
– точный объем контейнера известен.
– закрывающий заголовок физически находится после конца файла и его отделяют ровно 90 мбайт с данными,
которые по структуре идентичны зашифрованному контейнеру.


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


Уважаемый SATtva и посетители и гуру форума!
Что на Ваш взгляд можно еще предпринять? И есть ли возможность реанимировать мои данные (пусть не
полностью), если повреждена какая-то часть контейнера? Буду очень благодарен за советы и помощь.
Спасибо!


 
Комментарии
— SATtva (29/07/2007 08:17)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Прекрасный (в плане содержательности Вашего сообщения), но печальный опыт. Спасибо за подробности в любом случае.

Попробуйте подключить контейнер и просмотреть (в примонтированном логическом диске) содержимое тем же WinHEXом. Есть там что-нибудь похожее на файловую систему и Ваши файлы? Хочется выяснить, осталось ли что-нибудь от ФС и верным ли мастер-ключом происходит расшифрование (если неверным, я очень сильно удивлюсь, но всё равно хочется быть уверенным).
— Андрей_S (29/07/2007 15:13)   <#>
Спасибо за отклик!

Непонятность в том, что система не видит примонтированный диск, а WinHEX пишет "Файл или папка повреждены. Чтение невозможно. Cannot access Drive G: You may want to try to open *physycal* medium instead." Хотя когда я для теста взял нормальный неповрежденный контейнер небольшого размера, скопировал в него файл и затем намеренно его повредил, то система хоть и увидела кучу ошибок, непонятных директорий и файлов, но тем не менее Windows не выдавал ошибку, что диск не читается, а WinHEX писал про ошибки файловой системы, но байтики показывал.

По-поводу мастер-ключа могу сказать, что при добавлении в конец контейнера любого другого оконечного headerа, PGP пароль не принимает, а также при уменьшении контейнера хотя бы на один байт также перестает принимать пароль. Я практически на 100% уверен, что найденный мной оконечный заголовок правильный.

Есть ли способ дешифровать диск или хотя бы его часть, имея правильные заголовки? И где бы найти информацию о структуре файлов PGD? Где хранится служебная информация и сколько байт она занимает?
Спасибо еща раз.
— SATtva (29/07/2007 17:04)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Есть ли способ дешифровать диск или хотя бы его часть, имея правильные заголовки?

Можно взять набор функций из исходников PGP, доработать и скомпилировать их в консольную программу, которой скормить весь набор параметров.

И где бы найти информацию о структуре файлов PGD?

К сожалению, в открытом доступе нет. Попробую запросить у Джона Калласа из PGPCorp: возможно, у них формат документирован, хотя и не факт. Я одно время сам занимался реверс-инженерингом формата, но за нехваткой времени так и не довёл работу до конца.
— Андрей_S (30/07/2007 17:10)   <#>
Можно взять набор функций из исходников PGP, доработать и скомпилировать их в консольную программу, которой скормить весь набор параметров.


Последний раз я сам что-то программировал лет 8 назад :). А есть ли кто-то на примете, кто мог бы мне помочь это сделать? В долгу разумеется не останусь.

К сожалению, в открытом доступе нет. Попробую запросить у Джона Калласа из PGPCorp: возможно, у них формат документирован, хотя и не факт. Я одно время сам занимался реверс-инженерингом формата, но за нехваткой времени так и не довёл работу до конца.


Спасибо, буду ждать ответа.
— Андрей_S (03/08/2007 22:51)   <#>
Перебрал несколько программ, чтобы прочитать содержимое примонтированного диска.
Выиграла R-Studio (http://www.r-studio.com), которая практически полностью увидела не только файловую систему и директории, но и смогла восстановить несколько файлов. Теперь точно понятно, что заголовки верные, а испорчен или фрагментирован только сам контейнер. Причем он не был раньше фрагментирован, т.к. файл, созданный физическим побайтовым копированием содержимого флэшки, байт в байт совпадает с контейнером.

Таким образом остается вопрос – откуда возникли эти лишние 90 мбайт и как мне собрать из имеющихся данных правильный контейнер? Задача становится похожа на сборку puzzle. Награда – восстановленные 3.5 Гб важной информации.
Если бы я знал как же все-таки устроен контейнер, то думаю мне было бы гораздо проще это сделать...
— Василий (21/02/2010 13:38)   <#>
Доброго времени суток. Надеюсь кто-то увидит мое сообщение =)
У меня проблема, суть такова – есть pgp архив – размер 1.5gb, защита – passkey, во время копирования потерялся замыкающий хидер, а диск, на котором он был изначально востановлению не подлежит. Диск маунтиться, но в списке нет пользователей, добавить нельзя. Почитал о таких проблемах и несколько людей предложили создать такой же архив с тем же шифрованием, паролем и размером и пришить замыкалку. Дело в том, что в hex-редакторе – в конце файла огромное число нулей – свободное место (где-то 300мб) и был вопрос куда шить – в конец файла, после конца файла, в конце данных итд, но методом проб и ошибок удалось сделать так, что при маунте появился логин, однако пароль все равно не подходит. Прочитал мануал по востановлению на этом форуме – там строка
" Затем отредактируйте начальный хидер и поставьте в нём точный указатель на замыкающий хидер (возможно, после этого придётся скорректировать CRC-сумму начального хидера)."
Как это сделать я к сожалению понять не могу, и поможет ли?
Конечно глупо говорить, но данные там чрезвычайно важны для меня итд =(
Если кто может помоч – отпишитесь пожалуйста, если вопрос в финансах – то он решаем, а если уже ничего точно сделать нельзя, то так и скажите =)
Заранее спасибо.
— SATtva (21/02/2010 18:03)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Почитал о таких проблемах и несколько людей предложили создать такой же архив с тем же шифрованием, паролем и размером и пришить замыкалку.

Эти люди дали беспочвенный совет, он не поможет. Мастер-ключ всегда уникален, независимо от используемых паролей. Вся описанная здесь методология работает только в одном случае: если где-то в незанятом пространстве на винте сохранилась точная копия замыкающего хидера от данного конкретного контейнера. Попытки реконструировать этот хидер ни к чему не приведут, поскольку нужен именно тот мастер-ключ, который был раньше.
— Гость (07/06/2011 15:29)   <#>
Ребята была проблема – ошибка файла при открытии просто "failed....", что делал я хочу поделиться:
переписал с флэшки, на диск. Затем открыл его в WinHex. Затем сделал по ТАКОМУ же размеру еще новый PGP диск. Открыл его и увидел, что размер у них разный. В WinHex зашел в меню и в раздел СПЕЦИАЛИСТ и установил имедж как диск. Далее в диск туллс и там параметры диска установл такие же в новом. и все. :). Тоже менял в начале последние два блока, но не пмогла, а это сработало!!
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3