Когда-то в 2005 году iChat от Apple переключился на запись своих журналов в виде двоичных списков. Но до этого это был другой формат, который я не знаю, как читать.

> file some-early-2005-log.chat
some-early-2005-log.chat: NeXT/Apple typedstream data, big endian, version 4, system 1000

Какие-либо предложения?

1 ответ1

2

Похоже, что такого рода файл был создан, когда приложения использовали API-интерфейсы NSArchiver для сериализации объектов в файл на диске. Это означает, что он очень тесно связан с классами объектов в приложении, которое его создало. Это не хороший способ создать переносимый файл, который можно было бы использовать совместно с другими приложениями, поэтому, вероятно, он и был заброшен и перешел к чему-то более переносимому, например спискам.

Я думаю, что в основном вам не повезло без c. 2004-2005 iChat AV codebase. Вы можете использовать команду strings(1) для извлечения строк из этих файлов, но вы, вероятно, пропустите даты, которые, вероятно, имеют двоичное кодирование.

Взглянув на один из моих старых файлов .chat из той эпохи в шестнадцатеричном редакторе, кажется, что есть 32-битная отметка времени "секунд с начала эпохи Unix" за несколько байтов перед каждой строкой сообщения чата, и значение длины 2 байта сразу перед каждой строкой сообщения чата. В начале файла есть кое-что, что говорит, кто в чате и какие настройки шрифта они используют.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .