дома нескучно
Как весело и с пользой пережить самоизоляцию

Убрать пароль в проекте Excel VBA. Мини-хакер

17 August 2018

Мне нужно было изменить некоторые макросы в Excel, но проект VBA был защищен паролем, который я к сожалению не знал. Пришлось вскрывать защиту от Microsoft для офисных программ.

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

Пароли на проект VBA для документов Word, Excel, Access и Powerpoint (с 2007 с расширениями .ACCDB .XLSM .XLTM .DOCM .DOTM .POTM .PPSM) могут быть легко удалены.

Нужно просто вопрос изменения расширения имени файла на .ZIP, разархивировать и используя любой базовый редактор Hex (например XVI32) "снимем" существующий пароль, после чего Office запросит новый пароль при открытии файла.

Алгоритм снятия пароля:

  • Нужно изменить расширение нашего файла, чтобы он был .ZIP
  • Откройте получившийся архив ZIP и перейдите в папку XL.
  • Откройте vbaProject.bin при помощью редактора шестнадцатиричный файлов (Hex редактор).
  • В редакторе нужно найти DPB и заменить на DPX.
  • Сохраните изменения
  • Поместите файл vbaProject.bin обратно в архив ZIP
  • Замените расширение ZIP обратно на прежнее.
  • Запускаем Excel
  • Нажимаем ALT + F11 для входа в редактор VB
  • Переходим в меню Tools -> VBA Project Properties
  • На вкладке Protection установите новый пароль.
  • Нажмите OK, закройте файл, откройте его, нажмите ALT + F11.
  • Введите новый пароль, который вы установили.

Если вам надо, то можете полностью удалить пароль.

Это шокирует, что это обходное решение существует уже много лет, и Microsoft не исправила проблему.

Мораль
Пакеты Microsoft Office VBA Project не должны полагаться на штатное обеспечение безопасности. Если вам важна безопасность, используйте стороннее программное обеспечение для шифрования.