Обнаружение защищенных паролем файлов MS Office в C / C ++

0

Как я могу обнаружить защищенные паролем файлы Ms Office? Я использую C/C++ для Linux.

  • 2
    Из какой версии MS Office находятся файлы?
  • 0
    офис 2010, но хочу обнаружить все версии офиса
Теги:
ms-office

2 ответа

2
Лучший ответ

Если файлы находятся в формате Office 2007 (например,.docx), то их внутреннее хранилище:

1) Почтовый файл XML-документов (если он не защищен паролем)

2) Формат файла старого стиля (если он защищен паролем).

Поэтому вы, вероятно, могли бы сделать что-то вроде этого:

1) Проверьте первые несколько байтов файла

2) Если это zip файл (не защищенный паролем), он начнется с 0x50 0x4b 0x03 0x04.

3) Если это не zip файл, то он, вероятно, защищен паролем. Он начнется с другой бинарной подписи (например, документы Word 2007 начинаются с 0xd0 0xcf 0x11 0xe0 в этом случае)

В принципе, если это новый.docx или.xlsx, и он НЕ запускается с zip-сигнатурой 0x50 0x4b 0x03 0x04, он, вероятно, защищен паролем.

Для других версий MS Office это немного сложнее...

  • 0
    и я использовал для обнаружения зашифрованных архивных файлов с clamav. спасибо Болдрик
0

Подпись файла зашифрованного файла должна быть разной. для незашифрованного это 50 4B 03 04 Первые 4 байта зашифрованных D0 CF 11 E0 (по крайней мере для docx, могут отличаться для excel, ppt,...

  • 0
    Я проверил, используя слово 2013, сохранил документ в формате Office 2007, он же, в файле .doc, первые 4 байта - D0 CF 11 E0, и этот файл не зашифрован.
  • 0
    может быть старая тема: но для полноты: Word Version 14.07159.5000 (32 бита); сохранено в формате docx: первые 4 байта зашифрованного файла: D0 CF 11 E0; незашифрованный файл первых 4 байта: 50 4B 03 04; сохранено как документ: зашифрованный файл первые 4 байта: D0 CF 11 E0; незашифрованный файл первых 4 байта: D0 CF 11 E0; Вывод @ET Worker: да, вы правы, заголовки файлов между зашифрованными и незашифрованными отличаются только в том случае, если они сохранены в docx.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню