Найти в Дзене

KAR файл каротажного комплекса КарСар

Текущая статья не является практическим руководством или руководством к действию. Представленный материал представлен исключительно в образовательных целях и несёт в себе концепцию «пища для размышления» не нарушая авторского и/или смежного права. Повторять описанные процессы не рекомендуется. Часть материала может быть полезна инженерам занимающихся различными вопросами и проблемами криптологии. Некоторые материалы, находящиеся в теле статьи, являются собственностью их многоуважаемых авторов. Статья не претендует на полноту. Некоторые значения и параметры были сознательно изменены. Подопытным кроликом в этой публикации будет файл каротажного комплекса КарСар, разрабатываемый ребятами из Саратова. Файл имеет расширение .KAR. Предполагаю, большинству известно, что такое расширение имеет MIDI (Musical Instrument Digital Interface) формат содержащий набор музыкальных инструментов с синхронизированным текстом. Однако это просто совпадение и не более. Просмотр начала сигнатуры файла показа
Оглавление
Текущая статья не является практическим руководством или руководством к действию. Представленный материал представлен исключительно в образовательных целях и несёт в себе концепцию «пища для размышления» не нарушая авторского и/или смежного права. Повторять описанные процессы не рекомендуется. Часть материала может быть полезна инженерам занимающихся различными вопросами и проблемами криптологии. Некоторые материалы, находящиеся в теле статьи, являются собственностью их многоуважаемых авторов. Статья не претендует на полноту. Некоторые значения и параметры были сознательно изменены.

Распаковка

Подопытным кроликом в этой публикации будет файл каротажного комплекса КарСар, разрабатываемый ребятами из Саратова. Файл имеет расширение .KAR. Предполагаю, большинству известно, что такое расширение имеет MIDI (Musical Instrument Digital Interface) формат содержащий набор музыкальных инструментов с синхронизированным текстом. Однако это просто совпадение и не более.

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

Рисунок 1. - Сигнатура начала KAR файла.
Рисунок 1. - Сигнатура начала KAR файла.

Начало файла 50 4b 03 04 показывает, что это классический .ZIP архив. Сигнатуры популярных файлов можно посмотреть тут. По факту это оказывается просто переименованный .ZIP архив.

Не все так просто.

Пробуем извлечь данные из архива. Если не изменять настройки системы по умолчанию, то получим следующую картину:

Рисунок 2. - Продукт распаковки.
Рисунок 2. - Продукт распаковки.

Оказывается используется кодировка отличная от кодировки W1251. Добавляем поддержку UNICODE в систему.

Рисунок 3. - Добавление поддержки Юникода в систему.
Рисунок 3. - Добавление поддержки Юникода в систему.

Перезагружаемся и повторяем процедуру распаковки.

Рисунок 4. - Продукт распаковки.
Рисунок 4. - Продукт распаковки.

Оказывается, это не ЮниКод. Детальное изучение формата показало, что это русская DOS кодировка. Вероятно ранее разработки велись для DOS, и как атавизм осталось в новых приложениях.

Задача распаковать архив так, чтоб его можно было прочитать. Для решения этой задачи подойдёт, например, архиватор поддерживающий старую DOS кодировку, с магазина Microsoft Store.

Рисунок 5. - Используемый архиватор.
Рисунок 5. - Используемый архиватор.

Для корректной распаковки в настройках архиватора необходимо указать тип кодировки ANSI - Кириллица.

Рисунок 6. - Настройка архиватора.
Рисунок 6. - Настройка архиватора.

Добавляем или меняем расширение на .ZIP и разжимаем архив.

Рисунок 7.  - Распакованный архив.
Рисунок 7. - Распакованный архив.

Вуаля. Это не один файл с данными, а целая структура. В которой находятся не только данные каротажа, но и настройки приборов и даже интерпретация.

Структура

Целевые данные каротажа находятся в файлах с расширением .CURVE, что в переводе означает - кривая. Сам по себе файл .CURVE является некоторым подобием частного случая .XML файла.

Шапка файла представляет именно .XML формат, при чем кириллица кодируется в ЮниКоде.:

Рисунок 8. - Шапка .CURVE файла.
Рисунок 8. - Шапка .CURVE файла.
Рисунок 9. - Шапка .CURVE файла.
Рисунок 9. - Шапка .CURVE файла.

За шапкой до конца файла идут данные представленные в виде пар восьмибайтных записей, в виде индекс - значение.

Рисунок 10. - Пример данных.
Рисунок 10. - Пример данных.

В данном примере F6 28 5C 8F C2 0B A4 40 это 2565,88, т.е. тут индекс это глубина 2565,88м. Фигурирующая в шапке на рисунке 9 как MinIndex="2565.88". А значение 00 00 00 00 00 00 56 40 это 88, т.е. значение параметра, а тут параметром выступает ток, равный 88мА. И так далее до конца файла.

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