Защита паролем файла Excel


Как снять пароль VBA с файла Excel

Буквально на днях, у меня возникла острая необходимость доработать Vba код одного Excel файла.

Как снять пароль Vba

Да вот только при открытии VBAProject на экране внезапно прорисовалось не очень то дружелюбное окно. :)Да так неожиданно оно прорисовалось, что на секунду я вспомнил сына, боксёрские перчатки, ангела хранителя мануал по Microsoft Office в котором описывались новые алгоритмы шифрования офисных документов (Word, Excel, Access).

Признаюсь честно, на мгновение, мне стало даже немного не по себе. 😉

Защита паролем Word и Excel файлов

Существует несколько видов защиты офисных документов Word и Excel. Если стоит защита от редактирования, то хэш-функция пароля сохраняется в заголовке рабочего документа, но если стоит пароль на открытие документа, то это провал в приложениях Microsoft Office 2007 может использоваться пароль не ограниченной длинны, а для шифрования самого документа применяется алгоритм AES и алгоритм хэширования SHA-1.

Говоря простым языком, если длина пароля составляет более 8 символов, то использовать (brute force) грубый перебор вообще не имеет смысла. Если, конечно, у вас нет под рукой сетки из сверхмощных серверов, а есть только скромный, рабочий декстопчик.

В данном случае остается надеяться только на невнимательность разработчика, который в качестве пароля мог использовать простое человеческое слово.

Но в моем случае, пароль стоял только на открытие проекта VBAProject и редактирование документа Excel.

Как сбросить пароль VBA в Excel

Как всем известно, любой Excel файл является базой данных в котором хранятся таблицы формата XML и прочие настройки. Чтобы это проверить, вы можете распаковать любой Excel файл с помощью архиватора. Но распаковать это одно, а вот запаковать обратно — совсем другое.

Снимаем пароль VBA

Поэтому оптимальным будет просто изменить расширение файла, в  моем случае это был .xlsm (эксель  файл с поддержкой макросов) который я быстренько переименовал в .zip архив и открыл в Total Commander.

Взлом пароля ExcelВ принципе .zip архив можно открыть в любом архиваторе. Меня интересовал файл vbaProject.bin, который находился  в папке xl моего zip архива.

Открыв файл vbaProject.bin на редактирование (F4) я нашел ключ DPB и изменил в нем последний символ на L, в итоге ключ был переименован в DPL.

Сброс пароля VBA

Потом я сохранил измененный файл vbaProject.bin, (т. е. он был закачен обратно в архив) и переименовал свой zip архив cat.zip в cat.xlsm.

После чего открыл измененный Excel файл, и получил следующее сообщение:

'C:\cat.xlsm' contains invalid key 'DPL'. --Continue Loading Project?

На что я утвердительно (без доли сомнения) ответил: Да.

Как снять пароль VBA Excel

В открывшейся книге Excel мне оставалось только перейти в VBA редактор и отключить пароль.

Для этого необходимо зайти в VBAProject Properties… и снять галочку во вкладке Protection с параметра  Lock Project for Viewing. После чего все модули VBA были благополучно открыты. :)

Поставить пароль в VBA

Ах, да, чуть не забыл 😀 , в файле Excel еще стоял пароль на защиту от редактирования листа, который пользуясь случаем я просто удалил, открыв файл  sheet1.xml из папки cat.zip\xl\worksheets\ на редактирование и удалив тег <sheetProtection> со всем его содержимым.

В следствии чего Excel успокоился, и перестал требовать ввод пароля.

Правильная защита паролем файлов Excel

Как правильно поставить пароль на файл Excel?

Как вы поняли из статьи, победить слабую защиту не так уж и сложно. Однако, если правильно поставить пароль на файл эксель версии 2007 и старше, то взлом будет практически не возможен.

Для этого необходимо сделать следующее:

После создания файла нужно нажать на кнопочку (в верхнем левом углу) и выбрать функцию Подготовить => Зашифровать документ.

Далее нужно придумать такой пассворд, которого нет ни в одном словаре, например X74!md78Qp:(

Все! После того, как файл зашифрован, трюки с архивом уже не актуальны. Только не забудьте где нибудь записать свой пассворд, иначе ….. :(

P.S. Использование брут форсов для подбора паролей имеет смысл, только при условии, что документы созданы в Microsoft Office 2003 и более ранних версиях офиса. Для более поздних версий Microsoft Office 2007 и старше, возможен только подбор пароля по словарю. Одной из наиболее оптимальных утилит для снятия паролей к документам Word и Excel, является  Advanced Office Password Recovery 5.05.

Весь материал излагаемый в статье, представлен исключительно в ознакомительных целях, и рекомендуется к использованию для улучшения и повышения уровня безопасности  документом Microsoft Office.