Ошибка в LibreOffice портит парольную защиту в xls-файлах Microsoft Excel
ВерниДоступ.ру стал получать странные xls-файлы: пользователь вводит верный пароль, но Microsoft Excel его не принимает, а наш сервис не может найти ключ шифрования для таких файлов.
В чём причина?
Оказалось, что LibreOffice может портить защищённые паролем файлы Microsoft Excel.
Подробности и решение в нашей заметке.
Онлайн сервис ВерниДоступ.ру использует оригинальные радужные таблицы Пасковери, находит в них ключ шифрования ( только 40-ка битные ключи!), расшифровывает защищённый паролем документ Microsoft Excel/Word 97-2003 и удаляет Пароль открытия из файла.
Успех при этом настолько близок к абсолютному, что мы считаем его 100%-ым.
Для оставшихся единичных случаев в наших программах есть поиск ключа шифрования. Он требует больше времени, но обеспечивает по настоящему 100% гарантию успешного нахождения ключа.
И вот когда ни в радужных таблицах сервиса, ни при полном переборе, ключ шифрования не был найден мы заглянули под капот первого же такого странного файла.
Оказалось, что в месте хранения данных о ключе шифрования пусто, сами данные не зашифрованы, но в файле по прежнему включён флаг о использовании парольной защиты. И да, тут же рядом в файле Microsoft Excel хранится запись о вероятном виновнике: Calc…
Владелец одного из таких странных файлов прояснил ситуацию:
“Файл был создан в Office 2003 и защищен паролем, далее много раз редактировался и дополнялся в Office 2013.
В Office 2013 много раз добавлялась информация. Каждый раз файл принимал пароль и все было хорошо.
Вчера на новом компьютере я открыл файл в Libre Office Версия: 5.4.3.2 (x64) и внес изменения, далее сохранил. Он мне предложил сохранить в старом формате 97-2003 или создать новый файл, я выбрал сохранить в Office 97-2003. После этого ни сам Libre Office, ни 2003, ни 2007 не стали открывать эти файлы. То есть пароль известен но он не принимается.”
Эта история повторяется раз за разом у разных пользователей, кто присылает свои файлы для расшифровки на ВерниДоступ.ру: файл был создан и защищён в Microsoft Excel, но после его редактирования в LibreOffice что-то пошло не так и пароль не подходит.
Удаляем «парольную защиту» из файлов Excel, повреждённых в LibreOffice
Для работы потребуется HEX-редактор. Мы использовали Notepad++ с дополнительным плагином, но также рекомендуем редактор HxD.
ВНИМАНИЕ: Перед началом редактирования сделайте резервную копию файла на всякий случай. Если что-то пойдёт не так — вы не пожалеете об этом.
-
Откройте файл в HEX-редакторе и найдите заголовок потока данных. Он начинается с отпечатка 0x09081000 и обычно находится по адресу 0x600, но возможны варианты (начало заголовка всегда выровнено на 0x200).
-
Перейдите к заголовку шифрования. Он начинается с отпечатка 0x2F003600.
Начало потока данных и заголовка шифрования в Microsoft Excel -
Оцените подходит ли открытый файл под описанную проблему повреждения: если в блоке данных за отпечатком заголовка шифрования вместо «плотного» набора случайных чисел находятся нули и заканчивается он читаемой подписью Calc – это нужный случай:
Типичный вид заголовка шифрования файла Excel, повреждённого в LibreOfficeДля сравнения, вот как выглядит этот блок данных в зашифрованном и неповреждённом файле Excel:
Типичный вид заголовка шифрования в зашифрованном файле Excel -
Замените значение в отпечатке заголовка с 0x2F на 0x22, чтобы получилось 0x22003600:
Закройте заголовок шифрования в повреждённом файле от использованияНули в заголовке шифрования говорят о том, что для файла не заданы данные, необходимые для его расшифровки, то есть по сути файл и данные хранящиеся в нём не зашифрованы, но флаг о применении парольной защиты установлен.
Из-за какой-то внутренней ошибки LibreOffice сохранил защищённый паролем файл без защиты, но при этом оставил запись о том, что защита применяется.
Вы эту запись удалили простым изменением одного байта.
-
Сохраните изменения в HEX-редакторе и откройте файл в Microsoft Office или LibreOffice. Пароль для этого вам уже не потребуется. В файле нет защиты и пароль не установлен.
ВНИМАНИЕ: Этот метод не удаляет пароль из зашифрованного файла Excel! Этот метод исправляет ошибку сохранения файла Excel из LibreOffice, при которой документ оказывается незашифрован, но с активной записью о применении парольной защиты. Для поиска и удаления паролей в файлах Microsoft Excel/Word используйте Accent OFFICE Password Recovery с ускорением на GPU.