Мне нужно было изменить некоторые макросы в 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 не должны полагаться на штатное обеспечение безопасности. Если вам важна безопасность, используйте стороннее программное обеспечение для шифрования.