Разграничение доступа уже давно стало неотъемлемой частью нашей жизни. Но иногда бывает так, что мы теряем ключи от квартиры или пароль от своих учетных записей или данных. Но далеко не всегда это является трагедией. Сейчас мы разберем способ снятия защиты с листа Excel, к которому забыли пароль.
Форматы файлов Excel
Для успешного снятия защиты необходимо знать внутренний формат файла. Звучит страшно, но это очень просто, потому что разница возникла в момент перехода от Office2003 к Office2007. Таким образом у нас две возможных структуры.
Читайте: расширение фейсит для браузера.
EXCEL 97-2003
Расширение .XLS. Бинарный файл. Его структура является сложной и чтобы нам работать с такими файлами, их нужно преобразовать ко второму формату. Благо это не составит труда, если у вас установлена версия Excel 2007 или более поздняя. Достаточно открыть книгу и сохранить ее в новом формате .XLSX. Такой формат используется уже крайне редко.
EXCEL 2007+
Расширение .XLSX. Даже многие опытные пользователи не знают, что данный формат есть не что иное, как обычный ZIP-архив, в котором хранится вся информация о книге, включая ресурсы, структуру и сведения о защите листов. Это нам и нужно.
Стратегия действий:
- Если имеем старый формат — преобразовываем его к новому
- Переименовываем книгу из .xlsx в .zip
- Извлекаем файл структуры листа для редактирования
- Находим и редактируем нужные данные
- Упаковываем измененный файл структуры обратно
- Переименовываем книгу обратно из .zip в .xlsx
Поле боя
Для начала создадим новую книгу и поставим на нее защиту паролем, который и «забудем». Использовать будем Excel2007 с которого и стало возможным справиться с защитой.
Создаем новую книгу:
Скрываем некоторые данные. Так часто делают некоторые продавцы в прайс-листах чтобы скрыть некоторые подробности расчета конечных цен, в том числе формулы. Ну или иную информацию «не для всех»
В итоге у нас изменилась структура листа, а именно скрылся столбец. Далее защитим лист от изменений и слишком любопытных:
Мы можем выбрать разные ограничения, обойти которые помешает произвольный пароль. Установим для примера пароль «lumpics.ru». Нам это понадобится для интереса чуть позже.
После установки защиты мы лишаемся возможности отобразить скрытый столбец, как и множество других вольностей с листом, что препятствует нам увидеть «очень нужные данные». Попытка снять защиту листа оканчивается весьма предсказуемо:
Теперь мы имеем материал для работы.
Снимаем защиту
Переименовываем книгу из .xlsx в .zip
Для начала необходимо убедиться, что расширения файлов в нашей системе отображаются. Затем меняем расширение у нашей любимой книги:
Обязательно убеждаемся, что расширение именно .xlsx это очень важно:
И меняем его на .zip:
Теперь перед нами архив, с которым мы будем работать любым архиватором, например 7-ZIP или WinRAR:
Как видно, архив действительно корректен и в нем видна структура папок. И нам нужна конкретная:
В ней мы можем обнаружить директорию с данными о листах в книге:
И в ней, закономерно, всего один наш защищенный лист, который и будем исправлять. Если бы в книге было несколько листов, то и таких файлов было по одному на каждый. Удобно!
Извлекаем файл структуры листа для редактирования
Из окна архиватора мышью перетаскиваем наш файл структуры в любую папку. Редактировать его в интерфейсе архиватора будет очень неудобно.
Находим и редактируем нужные данные
Для «лечения» файла структуры воспользуемся любым редактором текстовых файлов. Наиболее удобным является многозадачный Notepad++:
Так как книга у нас создана для примера и лист на ней почти пустой, то и данных мы видим немного. Важно отметить то, что в файле находятся не сами данные, а информация о структуре листа: ширина столбцов, данные о масштабировании, последней области выделения и данные о защите листа. То что нужно!
Ищем тэг вроде
<sheetProtection password="F947" sheet="1" objects="1" scenarios="1"/>
Обратите внимание на параметр «password» — он совсем не похож на наш установленный пароль! И это действительно одна из степеней защиты. Ни один сознательный разработчик защиты не будет хранить пароль в открытом виде. Иногда пароль, защищающий некоторые данные, представляет большую ценность, чем сами данные. Например номер кредитной карты в качестве пароля. Пользователь непредсказуем. Поэтому мы наблюдаем, так называемый хэш пароля. Примерно, как CRC или MD5 сумма для проверки целостности загруженных файлов.
Но интересно сейчас то, что не зависимо от того, что указано в этом тэге, именно своим присутствием он нам и мешает. Удаляем его полностью!
Упаковываем измененный файл структуры обратно
После этого просто сохраняем файл и перетаскиваем мышью обратно в архив, где он и лежал — это заменит старый файл отредактированным.
Архиватор попросит подтверждения операции — соглашаемся. После этого архив можно закрыть.
Переименовываем книгу обратно из .zip в .xlsx
Далее повторяем процедуру переименования только наоборот — из .zip в .xlsx. Теперь, если все сделано правильно, то Excel больше не будет просить пароль для изменения листа. Он даже не будет знать, что лист был когда-то защищен.
Послесловие
Это только один из механизмов защиты. Чем сильнее защита, тем сложнее потом «восстановить» доступ к своим данным, а к чужим данным так и вообще противозаконно. А чтобы не забывать пароли — пользуйтесь менеджерами паролей! Это современный метод защищать свои учетные записи и данные надежными и сложными паролями, и при этом не забывать их.
Как вам статья?