Восстанавливаем данные с ZOOM H6 Handy Recorder подручными средствами

    Введение


    Намедни попал в нашу лабораторию довольно любопытный заказ. Профессиональный диктофон ZOOM H6 Handy Recorder. Устройство и носитель в рабочем состоянии, проблема — носитель, на котором находились данные (карта памяти SDHC на 32 Гбайт) был отформатирован в фотоаппарате. Вопрос о том, каким образом флешка из диктофона попала в фотоаппарат, оставим для истории — нам ответ на него не интересен. Интересно восстановить записанные звуковые данные.

    Форматирование разделов FAT32 — это всегда потеря файловых записей; процесс сопровождается их заменой «чистыми». С одной стороны, это удобно, так как в структурах FAT32 не остается никаких «рудиментов» файловых записей. С другой — это крайне губительно для данных, так как в случае фрагментации файлов и необходимости их восстановить, простое RAW-сканирование становится недостаточным, на выходе получаются поврежденные или неработающие файлы.

    Не исключение и наш заказ. Попытки отсканировать карту памяти имеющимся ПО (Data Extractor, R-Studio, R.Explorer) структуру папок обнаружить не смогли. При черновом восстановлении аудиопотока (wav-файлы) получаются работающие файлы, но с перемешанным содержимым — то есть продолжительность звуковой дорожки верная, файл проигрывается, но звук идет кусками то из одной дорожки, то из другой.

    Владелец устройства сообщил, что запись велась на два микрофона в формате интервью, то есть аудиопоток должен быть идентичным, но громкость голосов в каждой записи — разной.

    image
    Поврежденный аудиофайл. Явно заметно, что области громкого звука и тихого звука имеют примерно одинаковую продолжительность и резкие, обрывающиеся, границы

    image
    Тот же аудиофайл после исправления.

    ТТХ устройства


    Начинаем, как водится, со знакомства с устройством. Идем на сайт производителя, и вдумчиво читаем, что там про него пишут. Особенно нам интересны поддерживаемые форматы файлов и количество независимых микрофонов. Устройство поддерживает подключение до 4 микрофонов и, соответственно, одновременную запись с них. Максимально может записываться одновременно 8 дорожек (оно и понятно: стерео с 4 микрофонов). С форматами файлов все тоже понятно. Ассортимент не велик, форматы широко распространенные, никаких «своих» форматов нет. И это хорошо.

    image
    Форматы аудиофайлов, поддерживаемые рекордером

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

    1. Какой использовался формат записи?


    Ответ на этот вопрос находится в заголовке аудиофайла:

    image

    Тут все просто, в пояснениях не нуждается. Поехали дальше.

    2. Как расположены данные на карте памяти?


    Здесь и дальше используем WinHex.

    Находим первый заголовок аудиопотока (берем пример заголовка из результатов предварительного RAW-восстановления). Выглядит он примерно так:

    image

    В каждом файле есть таймштамп:

    image

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

    Производим поиск от начала до первого таймштампа нужной нам аудиозаписи. Обозначаем начало сектора с таймштампом как начало блока. Теперь производим поиск последнего таймштампа нужной нам аудиозаписи (ищем, соответственно, с конца). Дальше нам нужно найти окончание данных, относящихся к нужной нам записи. Это просто: ищем следующий за последним таймштампом заголовок нового аудиопотока. На всякий случай нужно убедиться, что он не относится к тому, что мы ищем: смотрим в сектор, видим там другой таймштамп. Отлично. Последний байт перед найденным заголовком отмечаем как конец блока.

    Теперь у нас имеется выделенная область, содержащая данные нужного нам аудиопотока:

    image

    Копируем эту область в новый файл. Так, во-первых, удобнее работать. А во-вторых, другие-то данные нам не нужны — зачем нам их восстанавливать?

    Дальше работаем с полученным файлом.

    Из формата файла: WAV, 44k, mono. То есть при записи с двух микрофонов мы имеем дело с двумя звуковыми дорожками.

    Разбиваем файл на фрагменты по количеству таймштампов. Получаем четное количество фрагментов со следующими параметрами:

    Фрагмент 1 — 32 кбайт;
    Фрагмент 2 — кратно 32 кбайт;
    Заголовки фрагментов 1 и 2 идентичны.

    Фрагмент 3 — 32 кбайт;
    Фрагмент 4 — кратно 32 кбайт;
    Заголовки фрагментов 3 и 4 идентичны.

    И так далее, все имеющиеся аудиопотоки (восстановить требовалось 10).

    После несложных вычислений:

    1. Аудиопоток фрагментирован;
    2. Размер фрагментов составляет 32 кбайт;
    3. Фрагменты чередуются в порядке: четные относятся к первой дорожке, нечетные — ко второй.

    image
    Структура аудиопотока, записанного с двух микрофонов рекордером ZOOM H6 Handy recorder

    3. Пора собирать аудиофайлы


    Очевидно, что после того, как мы узнали, каким образом ZOOM H6 handy recorder пишет данные, собрать их в нормально проигрываемые аудиофайлы не составило никакого труда и заняло несколько минут машинного времени:

    1. Разбиваем весь выделенный аудиопоток на куски по 32 кбайт; мы использовали File Splitter & Cutter;
    2. Четные куски отправляем в одну папку, нечетные — в другую; использовался Total Commander, выделение по маске (кнопка "+" на цифровой клавиатуре) *.*1; *.*3; *.*5; *.*7; *.*9;
    3. Переименовываем файлы в обеих папках так, чтобы их расширения представляли собой номера по порядку; снова Total Commander, групповое переименование — и выбираем в расширении «счетчик», а в параметрах счетчика — не менее 5 цифр (так как фрагментов будет много);
    4. Объединяем файлы по порядку в каждой из папок; опять же, удобен Total Commander;
    5. Переименовываем результат в *.wav и наслаждаемся результатом.

    А что насчет других форматов файлов и другого количества микрофонов?


    Конечно, это был интересный вопрос. И мы не преминули воспользоваться возможностью это проверить. Использовали три микрофона (больше просто не было в наличии), формат записи — MP3, битрейт самый низкий и самый высокий из возможных.

    Результат абсолютно идентичен предыдущему, с той лишь разницей, что в начале аудиопотока не два куска с заголовками, а три. Размер блока при записи — те же 32 кбайт. Расположение кусков — также по порядку:

    image

    Собрать файлы можно так же (как описано выше), без напряжения, используя общеизвестный софт; единственное, что распределять куски по 32 кбайт придется по трем папкам. Делаем это с использованием скрипта для Total Commander. Ну а дальше — групповое переименование, сборка и результат.

    Заключение


    Радует, когда производитель не заморачивается сложными «собственными» форматами данных, нагромождением алгоритмов их записи и тому подобной мутью, в разы увеличивающей необходимое на восстановление информации время.
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 1

      0
      Шикарно!
      Наверное так Шерлок Холмс давал бы мастер-класс Ватсону, если бы их занесло в IT.

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое