Как снять пароль с надстройки excel

Время на прочтение
2 мин

Количество просмотров 17K

Здравствуйте, друзья!
Последние дни бился над такой задачей:
Имеется файл .xls, в нем макрос на VBA, защищенный паролем. Файл создается путем экспортирования из программы ГрандСмета и содержит в себе смету, которая должна обрабатываться макросом.
На 32х разрядных версиях — отрабатывает без проблем.

На 64х столкнулся со следующей ошибкой:

Справка Microsoft дает однозначный ответ:

Связывался с Тех.Поддержкой, объяснял причину. Ответ был один:

У нас все работает. Проверяли на 64х разрядных версиях.

Тогда я решился самостоятельно править код макроса. Сложность, с которой столкнулся — модуль защищен паролем. О том, как сбросить/изменить пароль не используя специализированное ПО для взлома пароля
Итак, приступим. Заранее предупрежу — я не профессиональный программист, а скорее ЭниКейщик, так что возможны некорректные формулировки, а кому-то может и вовсе не понравиться выбранный мной путь.
Первым делом я стал бороздить просторы Сети в поисках решения. В основном полным-полно ссылок на ПО, из разряда PasswordCracker. Одно из решений опубликованное на Ru-Board’e полностью удаляло код модуля VBA.
В конце концов, мои старания вознаградились — предлагаю Вам вольный перевод найденного решения (к сожалению не могу указать первоисточник — не помню) + попытка понять суть выявленной «уязвимости».

Думаю, что ни для кого не секрет, что начиная с Excel 2007 использует Microsoft Office Open XML в качестве своего основного формата.

FarManager превосходно открывает xls файл с отображением всей структуры документа.
1. Запускаем FarManager.
2. Открываем файл для редактирования.
3. Ищем строку с определением ключа DPB, и изменяем имя ключа на DPW.
4. Сохраняем.
4. Открываем файл в Excel.
5. Подтверждаем загрузку проекта, не смотря на некорректный ключ (который мы сами и сделали некорректным в п.3):

6. В окнах с сообщениями об ошибке смело жмем ОК.
7. С помощью комбинации Alt+F11 — запускаем VBA Editor и, вуаля, код макроса доступен для редактирования.

Теперь причина возникавшей ошибки при запуске макроса в среде x64 — очевидна!

Компилятор подсказывает о том, что код в данном проекте должен быть обновлен для использования на 64х разрядных системах, конкретно указав, что надо было всего лишь добавить ключевое слово PtrSafe при объявлении функции.

Изменения внес, пересохранил, проверил. Все работает. Порадовал коллег решением наболевшей проблемы + приобрел опыт.

Пытаюсь решить последний вопрос, на котором я и застопорился:
Как вразумительно, и не обидев, объяснить Тех.Поддержке о решении возникшей проблемы с запуском макроса? Не должен же я самостоятельно перелапачивать все шаблоны (а их порядка 50), чтобы макрос корректно отрабатывал на x64 версиях Офиса. К тому же вопрос этики — пришлось «обходить» защиту кода макроса.

Благодарен за внимание. Надеюсь, что для некоторой части сообщества информация была полезна.

P.S. Вдохновленный решением возникшей проблемы, и оставшись только с одним вопросом, который задал чуть выше, я решился создать свой первый топик на Хабре, в надежде на профессиональный дружеский совет.

Как сбросить пароль в модуле VBA Excel

Как сбросить парольную защиту (пароль) модуля VBA в Excel 2010

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

Эти дополнения могут быть защищены паролем с целью, например, запрета
несанкционированных изменений

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

Рассмотрим как достаточно просто сбросить пароль в модуле VBA в таком случае. Для работы будет
необходим Far менеджер, скачать с официального сайта можно по
ссылке.
Желательно сделать резервную копию файла.

Имеется файл с расширением .xlsm – надстройка Excel 2010, в нем макрос на
VBA, защищенный паролем.

Меняем расширение файла на .zip, игнорируя предупреждающее сообщение:

Вот так должно получится:

Запускаем FarManager, ищем наш файл, заходим внутрь архива по Enter,
находим файл vbaProject.bin, нажимаем F4. Видим что-то подобное:

Ищем строку с определением ключа DPB. По клавише F7,
вводим «DPB» и жмем Enter. Изменяем имя ключа на DPW.

Сохраняем файл по F2, выходим по Esc. На вопрос о сохранении файла в архиве
жмем Ok

Переименовываем файл обратно в .xlsm и открываем.

Подтверждаем загрузку проекта, не смотря на некорректный ключ (который мы
сами и сделали некорректным):

В окнах с сообщениями об ошибке смело жмем ОК.

Запускается VBA Editor и код макроса доступен для редактирования!

Чтобы убрать ругань при открытии проекта, нужно или совсем сбросить пароль
или установить свой. Делается это через меню Tools
Project Properties
.

В открывшемся окне перейти на закладку Protection.

Чтобы сбросить пароль, нужно убрать галочку из окна Lock project for viewing.
Чтобы задать свой пароль, введите его и подтвердите в полях ниже это же окна.

Яндекс.Метрика

0 / 0 / 0

Регистрация: 25.07.2021

Сообщений: 39

1

Excel

25.01.2023, 20:57. Показов 616. Ответов 9


Студворк — интернет-сервис помощи студентам

Здравствуйте! Подскажите пожалуйста, есть ли возможность открыть доступ к модулям в надстройке Excel формата XLA если забыл пароль?



0



Ученик

87 / 69 / 16

Регистрация: 01.04.2020

Сообщений: 247

25.01.2023, 21:17

2

ИванМС, если ваша надстройка то вы сами должны были по заботиться о том чтоб не забыть пароль. А так взлом, подбор пароля Запрещён Правилами форума.
Вспоминайте свой пароль.



0



0 / 0 / 0

Регистрация: 25.07.2021

Сообщений: 39

25.01.2023, 21:23

 [ТС]

3

MikeVol, Выглядит странно мой вопрос. Но это нужно для моей надстройки. Понял. Спасибо. Буду вспоминать.



0



1234 / 671 / 239

Регистрация: 22.12.2015

Сообщений: 2,093

25.01.2023, 22:28

4

MikeVol, если вы про ОПК5.7, то нет, восстановление утраченного пароля этот пункт не запрещает.
ИванМС, есть большое количество программ, которые это делают.
Попробуйте также вариант открыть xla в архиваторе и отредактировать по аналогии с xlsm (у меня сейчас нет возможности попробовать, но — вдруг прокатит).



0



0 / 0 / 0

Регистрация: 25.07.2021

Сообщений: 39

25.01.2023, 22:35

 [ТС]

5

Dinoxromniy, Спасибо. Перебирал разные способы защиты проекта, сохраняя в разные форматы поддерживающие работу с макросами. Пробовал с XLAM, получилось убрать пароль, а вот с XLA нет. В архиваторе нет файла vbaProject.bin.Пароли вводил в хаотичном порядке. Думал что и формате XLA также можно через архиватор убрать пароль.



0



1234 / 671 / 239

Регистрация: 22.12.2015

Сообщений: 2,093

25.01.2023, 22:42

6

ИванМС, если формат xla, то через архиватор открываться не должен насколько я помню.



0



Ученик

87 / 69 / 16

Регистрация: 01.04.2020

Сообщений: 247

26.01.2023, 08:37

7

Dinoxromniy, Да я именно про тот пункт. Точнее про взлома лицензионного софта. ТС же никак не сможет доказать что это его надстройка. Ну раз вы говорите что не запрещено то, значит не запрещено.
ИванМС, Извините коль что не так.



0



1234 / 671 / 239

Регистрация: 22.12.2015

Сообщений: 2,093

26.01.2023, 09:15

8

MikeVol, ну тут разумеется есть некое поле для толкования, я исхожу из того, что произвольный макрос из надстройки не является именно лицензионным ПО, не уверен что на такого рода код в принципе можно получить лицензию, а также я в свое время находил пароль с помощью лицензионной же платной программы, поэтому предполагаю, что действие законное.
Собственно, вопрос к модераторам.



0



Ученик

87 / 69 / 16

Регистрация: 01.04.2020

Сообщений: 247

26.01.2023, 09:25

9

Dinoxromniy, это да. Есть же разработчики которые закрывают доступ к своим проектам. Я и подразумеваю это тоже как лицензионный софт.
Каждый зарабатывает как может.



0



0 / 0 / 0

Регистрация: 25.07.2021

Сообщений: 39

27.01.2023, 23:39

 [ТС]

10

Dinoxromniy, Оказалось легко и просто снять пароль с формата XLA. Но как можно защитить файл от любого открытия через WinRAR и Notepad++ или других программ для редактирования? Уже пересмотрел всё в интернете, а способа для защиты нет. Или есть способ для защиты и к нему же способ снять эту защиту. Неужели нет способа отредактировать например в Notepad++ файл excel и после этого,чтобы открывался файл только в excel без отображения проекта, но бесперебойной его работы и без возможности восстановления отредактированных данных через Notepad++.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

27.01.2023, 23:39

Помогаю со студенческими работами здесь

Забыл пароль
Добрый вечер. Необходимо сменить пароль на Gentoo. Гружусь под лайв сиди убунту, запускаю терминал,…

Забыл пароль
Ребята, есть у меня архивчик один с большой колоекцией исходников с очень многими нужными вещами,…

Забыл id и пароль
Ребята, один мой друг забыл id и пароль от своего телефона, все документы чек , коробка имеется ,…

Забыл пароль
Помогите, поставил код блокировки телефона на с3010 и забыл. что делать?

Забыл пароль :(
Всем привет,
очень люблю этот форум,
поэтому решил обратиться
за помощью, только не смог …

Забыл пароль?
Есть таблица юзеров (см. фото ниже):
Значит есть ссылочка — "Забыл пароль"
Имеется форма — куда…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

10

Как известно, снять пароль с офисного файла особого труда не представляет…
И пароль проекта VBA тут не исключение. Конечно, понимаю, что эта тема осуждалась не раз, и для реальной защиты проекта надо сохранять код не внутри офисного файла, но… возникла мысль :)
Насколько я понимаю, чтобы увидеть код проекта (возьмём к примеру надстройку XLA), надо запустить файл с кодом VBA в режиме, когда макросы не запрещены.
С установленной надстройкой XLA проще — код всё равно сработает при её запуске.

Хотелось бы услышать Ваше мнение по поводу такого способа защиты кода:
(будем считать, что пароль серьёзный и BruteForce не поможет):

1) при запуске надстройки она пытается удалить весь свой код.
Если проект запаролен, то это не удаётся, и всё работает как и должно , но в коде проекта поковыряться не удастся.
2) если же кто-то предваритель снял пароль с проекта при помощи специальных программ, то весь код проекта будет моментально удалён при его запуске (по событию Workbook_Open), после чего сразу сохраняемся (ThisWorkbook.Save).
В случае, если взломщик средствами ОС откроет доступ к этому файлу только на чтение (чтобы ThisWorkbook.Save не сработал), можно, к примеру, просто закрыть Excel.

На тестовой надстройке всё работает (пример в прикреплённом файле, пароль к VBA проекту 321).
Если её запустить без пароля, код сразу удаляется.

Возможно, я что-то упустил, или защищенную таким способом надстройку всё равно удастся сломать?

У вас нет необходимых прав для просмотра вложений в этом сообщении.

Можно ли взломать мой проект Excel VBA, если код защищен утерянным или забытым паролем? И если да, то как это можно сделать? Ответ положительный. Взлом пароля Excel VBA — не сложная задача, если у вас есть подходящие инструменты. Фактически, если у вас есть правильный инструмент и методология, взломать даже сложные пароли будет довольно легко.

В этой статье мы покажем вам, как взломать пароли VBA, используя несколько простых методов. Но сначала давайте посмотрим, что такое пароль VBA в Excel.

Пароль VBA — как это работает?

VBA (Visual Basic для приложений) — это язык программирования, используемый для создания приложений Microsoft Office, таких как Excel и О компании более мощный и простой в использовании. VBA также используется для создания пользовательских приложений.

A Проект VBA можно защитить паролем для предотвращения несанкционированного доступа. Когда вы открываете проект VBA в электронной таблице Excel, вам может быть предложено ввести пароль (как показано на рисунке ниже). Если вы не введете правильный пароль, вы не сможете просматривать или редактировать код VBA.

Необходимо указать пароль для просмотра кода VBA

Как взломать пароль Excel VBA

Есть несколько различных методов, которые можно использовать для взлома пароля Excel VBA. Мы подробно рассмотрим каждый из этих методов ниже.

Метод 1: использование Сброс пароля VBA

«VBA Password Reset a» — это мощный плагин для восстановления пароля Excel, который может быстро сбросить пароль на «a» из большинства проектов VBA. Этот инструмент совместим с Excel 2007 и более поздними версиями на компьютере с Windows, а также с Excel 2016 и более поздними версиями на Mac.

Excel Сброс пароля VBA После установки и включения надстройка будет доступна с ленты Excel. Чтобы удалить пароль макроса в Excel, нужно всего два действия.

Шаг 1. Откройте файл книги с запросом пароля — нажмите «Сбросить пароль VBA — a».

Включить сброс пароля VBA - a в Excel

Шаг 2. Выберите вариант сброса пароля — здесь мы можем выбрать в меню «Снять защиту со всех листов в активной книге».

Выберите Снять защиту со всех листов в активной книге в VBA. Сброс пароля.

Вам будет предоставлена ​​копия файла Excel в том же месте, где он был изначально создан, и с паролем VBA «a».

Метод 2: использование Средство удаления паролей SysTools VBA

SysTools представила приложение Windows под названием «SysTools VBA Password Remover» для Excel 97 и более поздних версий. Эта программа легко взломает пароли VBA в книгах Excel без каких-либо технических знаний.

Шаг 1. Нажмите кнопку ниже и загрузите эту программу.

Бесплатная загрузка

Шаг 2. После того, как вы запустили программу, вы увидите страницу с заголовком «Проверить наличие предварительных условий», на которой нам нужно нажать «ОК», чтобы продолжить.

SysTools VBA Password Remover Страница проверки предварительных требований

Шаг 3. Выберите книгу Excel с зашифрованным содержимым с помощью кнопки «Добавить файл (ы)». Затем нажмите «Сброс», чтобы разблокировать все коды VBA.

Добавить файл, защищенный паролем VBA, в SysTools VBA Password Remover

Шаг 4. Теперь вы можете видеть, что для этого файла был установлен новый пароль, а статус показывает «Пройдено», что означает, что это будет пароль для доступа к вашему проекту VBA.

Пароль VBA был сброшен с помощью SysTools VBA Password Remover

Метод 3: изменить расширение + шестнадцатеричный редактор

Чтобы сбросить или удалить пароль из книги Excel с помощью Hex Editor, нам сначала нужно создать резервную копию файла, который был защищен паролем VBA. После того, как вы создали резервную копию файла, выполните следующие действия:

Шаг 1. Измените расширение файла Excel с «xlsm» на «zip». Это сделает файл похожим на ZIP-архив.

Измените расширение файла Excel VBA с XLSM на ZIP

Для многих людей флажок «Скрыть расширения для известных типов файлов» в параметрах папки установлен по умолчанию. Если снять этот флажок, расширения будут отображаться в проводнике.

Снимите флажок "Скрыть расширения для известных типов файлов" в параметрах папок Windows.

Шаг 2. Извлеките ZIP-файл с помощью такого инструмента, как WinZip или 7-Zip.

Шаг 3. Откройте распакованную папку. Внутри этого есть подпапка «xl», в которой вы можете найти файл «vbaProject.bin».

Найдите файл vbaProject.bin в папке xl

Шаг 4. Откройте файл «vbaProject.bin» с помощью шестнадцатеричного редактора, например HxD.

Шаг 5. Найдите в файле «DPB».

Откройте vbaProject.bin и найдите DPB в HxD Hex Editor

Шаг 6. Теперь измените «DPB» на «DPx». Сохраните изменения и выйдите.

Только «B» следует заменить на «x», и не удаляйте знак равенства по ошибке.

Измените DPB на DPx с помощью HxD Hex Editor

Шаг 7. Сожмите все папки и файлы в ZIP-архив.

Сжатие измененных папок и файлов XLSM в ZIP-файл

Шаг 8. Измените расширение с «zip» на «xlsm», а затем откройте его.

Изменить расширение с ZIP на XLSM

Шаг 9. Итак, вы находитесь в файле xlsm. Первое, что может произойти, — это выскакивать много ошибок, но не волнуйтесь: просто нажмите «Да», чтобы закрыть их.

Откройте редактор VB, щелкнув «Разработчик», затем «Visual Basic». Затем в разделе «Инструменты»> «Свойства VBAProject» снимите флажок «Заблокировать проект для просмотра».

Снимите флажок «Заблокировать проект для просмотра» для просмотра взломанного кода VBA.

Шаг 10. Закройте редактор и сохраните файл Excel. Возможно, вам будет предложено сохранить в другом месте как новый файл.

Шаг 11. Откройте новый файл. Теперь ваш код VBA будет виден без ввода пароля!

* Мы протестировали этот метод на файле Excel 2007.

Заключение

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

В этой статье мы рассмотрели три способа получить доступ к своему проекту VBA без пароля. Если вы хотите использовать надстройка или скачать программа для удаления паролей от SysTools, это не займет много времени, прежде чем ваш файл снова откроется и станет доступен для редактирования.

Понравилась статья? Поделить с друзьями:
  • Как снять пароль с листа excel xls
  • Как снять пароль с книги excel если забыл пароль
  • Как снять пароль с книги excel 2019
  • Как снять пароль с защищенного файла excel
  • Как снять пароль с защиты листа excel не зная пароль