Как извлечь документы Word из данных, восстановленных с USB-устройства?

Мне удалось скопировать необработанные данные с USB-накопителя, который иначе был бы недоступен, в монолитный файл размером около 250 МБ. Где-то в этом блоке байтов находится около 40 документов Word.

  1. Где я могу найти документацию о внутренней структуре документов Word, чтобы я мог анализировать поток байтов, распознавать, где начинается и заканчивается документ Word, и извлекать копию?

  2. Существуют ли какие-либо библиотеки на каком-либо языке программирования, специфичные для этой задачи?

  3. Может ли кто-нибудь предложить уже существующее программное решение этой проблемы?


person bugmagnet    schedule 10.12.2008    source источник


Ответы (2)


Два подхода:

Вы можете монтировать файлы как тома в Linux. Если ваш двоичный объект не слишком поврежден, вы, вероятно, сможете разбить файловую систему, чтобы узнать, где находятся ваши файлы. Это (был) раздел FAT или NTFS?

Если это не сработает, я буду искать эту строку байтов:

D0 CF 11 E0 A1 B1 1A E1

Это «волшебные байты» подписей файлов офисных документов. Они могут случайным образом встречаться в других данных, но это только начало. Вы столкнетесь с ОСНОВНЫМИ проблемами, если файлы будут фрагментированы.

Кроме того, попробуйте воссоздать фрагменты документа (документов) в Word как есть, сохраните его в файл и извлеките фрагменты для поиска в большом двоичном объекте (используя двоичный файл grep или что-то еще). Если у вас есть информация из всех частей файла, вы сможете декодировать, ГДЕ они находятся в большом двоичном объекте. Вставить его обратно в работающий двоичный файл DOC кажется надуманным, но восстановление остального текста не должно быть невозможным.

person Stefan Mai    schedule 10.12.2008

В проекте Apache POI есть библиотека для чтения и записи всех видов документов MS Office. Если файлы находятся в новом формате XML OOXML, вы будете искать начало ZIP-файла при сжатии XML.

person sblundy    schedule 10.12.2008
comment
У меня были проблемы с чтением файлов .docx в виде zip-файла, поэтому не рассчитывайте на это. OTOH У меня было много других проблем, так что, 64 мг NaCl - person BCS; 10.12.2008