AVR Hobby Я
Календарь
«  Февраль 2015  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
232425262728
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Четверг, 16.05.2024, 08:15
    Приветствую Вас Гость | RSS
    Главная | Регистрация | Вход
    Блог
    Главная » 2015 » Февраль » 7 » восстановление информации регистратора DAHUA дополнено 07/02/2015
    21:35
    восстановление информации регистратора DAHUA дополнено 07/02/2015

                  Доброго дня,  наконец появилась свободная минутка, ответить на ваше письмо по поводу программы восстановления информации с регистратора. Постараюсь коротко описать, какая стояла задача и как мне удалось ее решить.  В  небольшой компании стоял регистратор  Dahua DVR0804LE, использовали по полной 8 камер, HDD 250 GB. Произошло событие связанное с безопасностью и необходимостью просмотреть события  трех дней и три дня назад.  По вине персонала мало того что толком ничего не посмотрели,  умудрились  сделать рестарт записи на диск, затем неделю варились в собственном соку продолжая запись поверх, пока   искали специалистов и в итоге обратились ко мне. До этого я не занимался данной тематикой, но имел определенный опыт в решении программных и аппаратных вопросов.  Диск был немедленно изъят,  заказчик приобрел два новых HDD, один на замену в регистратор, второй для копирования и создания рабочего диска восстановления информации. Затем  с сайта Dahua были скачаны все возможные мануалы и программные средства которые были доступны, а также произведен поиск  подсказок  в Интернете – напомню было необходимо восстановить информацию трех дней.  Я перечитал  документацию и работал со всем  ПО представленным на сайте  производителя, много пользы мне это не принесло, хотя одна из программ  play.exe  использовалась мной в дальнейшем но в основном не как плейер, а как как групповой конвертор  в формат AVI из исходного. Трудности начались буквально сразу и первая это то, что ни ОС  Windows и ни ОС Linux не хотели видеть Диск. Dahua  использует  потоковую запись видео  и на диске нет файловой системы. Но диск ножно просматривать например  программой WinHex.  Но на начальном этапе это дало возможность разобраться со структурой записи. Для облегчения этой работы был взят HDD полностью очищенный с записанными нулями по всей поверхности, установив его в регистратор на  10 минут, затем   сняв диск  и с его помощью удалось определить формат записи применяемый в данном устройстве.  Оказалось диск имеет следующий формат:  в начале диска обязательно присутствует маркер «DHFS4.1»,

               Далее после пропуска довольно приличного куска начинается сама запись, последовательно  пишется блок кадров, каждый кадр  начинается сигнатурой маркером «DHAV» и заканчивается  «dhav» соответственно,

    признаком окончания блока является серия кода «FFFFFF»,

    первый десяток байт в кадре содержит также номер камеры и закодированную  дату и время.  Этой информации уже в принципе достаточно для восстановления данных.  Итак  чтобы работать с данными с диска была создана его точная копия, но нарезанная в файлы размером в один гигабайт, файлы больших размеров с возможность последовательной обработки в QT мне не удалось приручить. Нарезка была выполнена с помощью программы «AccessData FTK Imager» 

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

     

    научилась считать количество кадров по dhav и DHAV,  окончания блоков по  FFFFF. Далее выбирать нужные камеры и даты, в моем случае соответствие было такое:

    код hex дата
    88 12.01.2014
    89 12.01.2014
    90 13.01.2014
    91 13.01.2014
    92 14.01.2014
    93 14.01.2014

    затем записывая найденное в файлы и давая им соответствующие названия.

    фрагмент кода:

             ....    {
    file_block_name[counter9DHAV] =block_name_str +   "- ["  + QString::number(count_p3out                   [counter9DHAV])+ "][" + QString::number(count_cam[counter9DHAV]) + "]-" + QString::number( im64p3+1)+"-"+QString::number(counter2ff)+ "-" +start_address_block_str+"-"+end_address_block_str+".dav";
             //    qDebug()<<file_block_name[count_file_m]<<count_file_m;
    qDebug()<<file_block_name[counter9DHAV]<<counter9DHAV;
                                 ...

     

    фрагмент результата  работы программы:

            Под конец пришлось побороться с дефектом  который я назвал артефактом, его суть в том,   что    некоторые  выходные видео блоки содержали информацию с нескольких  камер и с несколькими датами. Этот дефект возникает из за  того, запись на диск происходит циклично когда заканчивается один цикл прохода по диску регистратор начинает писать сверху и  происходит наложение,  к счастью разработчики стандарта применили хорошую математическую модель записи, запись блоков ведется через определенный промежуток байт, фактически равный блоку, и когда начинается  новый проход делается сдвиг это позволяет вытягивать информацию на которую уже сверху было записаны новые проходы. Так мне удавалось вытягивать единичные ролики дата которых была на четыре месяца ранее последней.  Правда при просмотре это напоминает не единую временную ленту, а очень похоже на движение вдоль деревянного забора с неплотно подогнанными досками и эти щели и есть нужная нам информация.  В моем случае я боролся с артефактами оставляя только нужные мне камеры и даты.  Далее я сортировал полученные ролики по камерам и датам и с помощью  уже упоминавшейся программы play.exe Player

     конвертировал в формат avi, затем собирая уже в фильмы с помощью еще одной программы  «Ultra Video Joiner.exe»

     

            Как  видно из выше сказанного  моя программа была  написана не как универсальная, а предназначалась для решения конкретной прикладной задачи и использовалась совместно с другими программными продуктами. Работа производилась в среде ОС win XP3  32, программа не планировалась как коммерческий продукт.  Еще раз подчеркну с помощью данного решения поставленная задача была решена.  Если все вышесказанное не убило у вас интерес к  моей работе жду вашего письма.

     

    Просмотров: 2724 | Добавил: avu2 | Рейтинг: 5.0/1
    Copyright MyCorp © 2024
    Бесплатный конструктор сайтов - uCoz