Уже много лет к нам в лабораторию DATALABS приносят на восстановление данных диски и флешки из систем видеонаблюдения. Это и стационарные видеорегистраторы и автомобильные регистраторы. В большинстве своём однодисковые, но бывают и много дисковые, а автомобильные как правило с microSD.
Под катом обзор как происходит процесс восстановления.
Проблемы потери данных бывают разные:
1. Инициализация Windows.
Данные на диске были. Либо не знали о софте на сайте производителя, либо на сайте вообще нет такого софта, но захотели слить на компьютер нужное событие. Чаще всего различного рода преступления.
Так как в огромном большинстве видеорегистраторов, в нулевом секторе не стандартный виндовый загрузчик, то есть нет мэйджик сигнатуры «55AA», винда предлагает инициализировать диск, с чем народ успешно соглашается и тем самым убивает нулевой сектор с инфой регистратора. И не всегда только нулевой…
Классика Windows XP — это нулевой сектор, а вот другие винды любят GPT, то есть EFI, а оно трёт и начало и конец диска. Беда в этом, что у некоторых видеорегистраторов служебная информация хранится не в начале, а в последних секторах диска.
Восстановление данных в таких случаях сводится к установке в видеорегистатор пустого диска, форматирования через меню и последующий анализ начальных и последних секторов. Иногда можно тупо подменить сектор, но в большинстве случаев нужно его править, так как там может быть информация о размере диска, начале и конце видео-потока и что-нибудь ещё что взбредёт братьям китайцам в голову. Если подмена произошла удачно, то можно открыть диск софтом с сайта производителя, либо на самом регистраторе.
Пример нулевого сектора Avtech AVC-776
2. Носороги полазили по меню.
Данные на диске были. Но не квалифицированные люди нечаянно или преднамеренно нажимают очистку диска в меню самого регистратора. Это пожалуй, наиболее страшные случаи, с точки зрения сложности восстановления данных. Так как трутся основные служебные данные, календари, атрибуты заполненности и прочие прелести.
Тут придётся серьёзно реинжинирить устройство хранения данных на диске. Наивный народ натравливает обычные программы для восстановления, но естественно получает банан. У 95% видеорегистраторов не используются типичные файловые структуры, не смотря что у всех написанно что ос Linux, не факт что используется ext2/3/xfs. Так что искать файлы бессмысленно.
Восстанавливать можно двумя способами, разобраться как описывается поток, либо резать сам поток. Второе в большинстве случаев проще, найти где описание номера камеры и раскидать поток по камерам, потом отконвертировать полученные файлики в удобоваримый формат тем же виртуалдабом или аналогичным софтом. В обоих случаях придётся писать софт.
Подводные камни могут быть такие: не всегда можно программно эмулировать работу процессора регистратора, то есть программа кодирования не сможет его конвертнуть, тут можно попробовать скормить эти файлики софту от производителя вирега (если таковой имеется). Этот софт может и не проглотит поток в тупую, нужно будет скачивать с самого регистратора бэкап файлы и смотреть их структуру. При бэкапе регистратор может формировать шапку над потоком нужно будет разбираться с этой шапкой, что бы формировать свою. Самое страшное когда эти файлы сразу конвертятся допустим в avi, и поток там уже не такой как на диске, для анализа не подойдёт.
Хоть что-то приятное в современных регистраторах есть, большинство пишут в кодаке H.264 и софт кодирования спокойно проглотит поток, или вообще халява когда можно дать файлу с потоком расширение mpeg и скормить Vlc… Но опять же не забываем про камеры, может быть один кадр с одной камеры, за ним один кадр с другой и т.д., а может быть по 25 кадров, а может вообще кусками по времени.
Если с потоком ничего не получилось, нужно заставить регистратор показывать данные. С точки зрения реинжиниринга это самое сложное. Разобраться где и как описываются данные, написать софт который это заново сгенерит, вдуть обратно в регистратор, иногда не это уходят недели, а клиентам как обычно нужно срочно… ведь скоро суд))) (чуть не написал судный день))
Слава богу если софт под такой регистратор уже написан, рисёрчить ничего не надо, но разнообразие регистраторов велико и у нас что ни кейс, то праздник.
3. Прошёл цикл.
Часто обращаются когда видео потребовалось сейчас, а событие было давно. Диски на регистраторах не резиновые и в зависимости от качества картинки и количества камер, пишут определённый интервал времени, а потом начинают перетирать старые данные, ну по кругу вообщем.
В большинстве случаев тут ловить нечего, так как всё перетёрто. Но были редкие случаи, когда цикл только начался и можно поискать «в хвосте» какие-нибудь ошмётки.
4. Сломался сам регистратор.
Ну тут восстанавливать ничего не надо, данные то на диске остались. Однако бывает засада, что на сайте производителя нет ПО способного отображать видео с диска, тогда либо искать точно такой же видеорегистратор, либо всё-таки восстанавливать данные, вышеописанными способами.
5. Автомобильные.
Тут две беды: удаление и недозапись.
С удалёнными может справиться любой софт из интернета, так как есть файловая структура и файлы как таковые, главное не писать после удаления.
А вот с недозаписью сложнее, тут софт уже не поможет. Ручками, батенька, ручками. Автомобильные хранят файлы MOV, AVI и т.д. то есть это уже контейнеры с оформленным потоком. Со своей «шапкой», «атомами» и т.п., в нете есть статьи о их структуре.
Регистратор создаёт, пустую или с минимальными данными, шапку-хидер, потом пишет непосредственно поток видео и только в конце записи формирует валидный хидер, таким образом получается нормальный файл.
В момент аварии, либо вылетает флешка из видеорегистратора, либо вылетает аккумулятор, либо божье провидение (скорее сатаны)не даёт сформироваться валидному хидеру и файл получается не рабочим.
Для восстановления такого файла требуется серьёзная медитация и знание формата.
Бывает и халява, если формат видеорегистратора MJPEG. Когда поток представляет из себя кучу JPG картинок. Тупо рекаверишь все джипеги, и пресловутым мувмейкером делаешь видео. Хотя некоторым клиентам и раскадровка нравится, так как авария это секундное дело и по-кадрово как в матрице).
Ну вот и всё вроде, на остальное отвечу в комментах.