Как снять защиту пароль на vba проекте в excel
Перейти к содержимому

Как снять защиту пароль на vba проекте в excel

  • автор:

Защита проекта VBA в MS Excel

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

Дисклеймер:

В данной статье рассмотрены виды защиты проектов VBA, от несанкционированного доступа. Их сильные и слабые стороны – ранжирование.

Цель статьи показать слабые и сильные стороны каждого вида защиты проекта VBA в MS Office.

Демонстрация разработанных инструментов, в надстройке Macro Tools VBA, для снятия и установки той или иной защиты.

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

Главная панель Надстройки Macro Tools VBA

Первый вид защиты — Обычный пароль

Время на снятие: мгновенно

Недостаток: быстрый доступ к запароленному модулю VBA

Стандартный инструмент (В среде VBE: панель Tools -> VBAProject Properties -> Protection).

Самая легко снимающаяся защита. В интернете легко находится код, для снятия данной защиты.

Данную защиту можно снять следующим инструментом:

Второй вид защиты — Project is Unviewable

Время на снятие: от 10 до 15 мин (в ручную)

Недостаток: доступ к исходному коду модуля VBA

Один из самых распространённых видов защит. Встречается в 95% файлах с защитой модуля VBA. При попытке открыть проект, открывается диалоговое окно, с сообщением: Project is Unviewable.


Большинство пользователей Excel, не могут снять данную защиту, так как она имеет множество вариации и нюансов, для ее снятие нужно иметь представление о внутренней структуре файла Excel.

Основан, данный вид защиты, на изменение ключей:

CMG=«4A488FCC54D054D054D054D0» DPB=«0B09CE0F8E108E108E» GC=«CCCE09520B120C120CED»

в файле vbaProject.bin .

Кратко, как создается данная защита

Для создания данной защиты нужно, разархивировать файл Excel. Перейти в архиве в папку xl, открыть файл vbaProject.bin, в конце файла находятся наши ключи, редактируем значения ключей на пусто, сохраняем файл. Переводим наш архив, обратно в файл Excel. Готово!

Это самый простой вариант данной защиты, но существует множество модификаций.

Алгоритм снятия защиты Project is Unviewable.

1) Разархивируем подопытный файл, переходим в файл …\xl\_rels\workbook.xml.rels

2) В файле workbook.xml.rels ищем строку, содержащую слово vbaProject, обычно имеет следующий вид: />. В этой строке нас интересует ключ Target,иего значение. Значение является название файла, в котором находится проект VBA. Иногда, защищающий меняет значения ключа на printerSettings.bin.Получается маскировка файла с проектом VBA под другой файл.

3) Открываем на редактирование файл, указанный в ключе Target, ищем в файле ключи CMG, DPB, GC. И меняем в их названиях любую букву на любую другую, например: CMC, DPC, CC. При поиске нужно быть аккуратным, так как защищающий может поместить в проект форму, подписью повторяющую один из ключей, например такую: DPB=«0B09CE0F8E108E108E». При ее изменении проект VBA, будет удален из книги Excel. Сохраняем и закрываем файл.

4) Переводим архив обратно в файл Excel.

5) Запускаем приложение Excel, выполняем следующее: в Центре управления безопасностью -> Параметры макросов -> Отключить все макросы без уведомления. Перезапускаем Excel. Данная операция нужна, для блокировки защиты, которую иногда ставят авторы макросов. Данная защита реализована следующим образом. В модуле VBA «ЭтаКнига», создается процедуры, реагирующие на события открытия книги или закрытия книги. Эти события обычно проверяют, наличие пароля на проект VBA, запрет сохранения и прочее.

6) Открываем файл. Если все правильно сделано то, Excel, будет ругаться на не правильные ключи, которые мы отредактировали, в пункте 3. Жмем, да, пока данные сообщения не закончатся и диалоговое окно закроется.

Если данное сообщение не появляется то, вы отредактировали не файл который содержит проект VBA.

7) Открываем проект VBA. После всего, проект VBA должен быть доступен.

8) Но иногда защита не снимается, тогда нужно сохранить файл, проверить, что он действительно сохранился! И проделать повторно операции с 1 по 7. Обычно так происходит когда в файле workbook.xml.rels в ключе Target установлено printerSettings.bin.При сохранение, Excel исправляет это на значение на vbaProject.bin

Данную защиту можно установить и снять следующим инструментом:

Третий вид защиты — Hidden Module, скрытые модули VBA

Время на снятие: от 15 до 20 мин (нужен редактор OLE — объектов, Structured Storage Viewer, например.

Недостаток: доступ к коду модуля VBA

Менее распространенный вид защиты обычно встречается в комбинации с защитой Project is Unviewable. При установке данной защиты модуль VBA не отображается в проекте книги Excel. О его существовании можно узнать, проанализировав код VBA (что требует время!) или открыть файл Excel в программе OpenOffice или LibreOffice (так же можно смотреть код при защите Project is Unviewable, но данный способ не дает возможность получить рабочий файл, без пароля).

Просмотр кода VBA в LibreOffice

Кратко, как создается данная защита

Для создания данной защиты нужно отредактировать файл с проектом VBA — vbaProject.bin или printerSettings.bin,в зависимости от настроек в файле …\xl\_rels\workbook.xml.rels. В конце файла удаляются строки вида: Module1=32, 32, 635, 330, Z. С нужными названиями модулей.

Для снятия данной защиты нужно в файле vbaProject.bin — восстановить удаленные записи модулей.

Данную защиту можно установить следующим инструментом.

Четвертый вид защиты — Обфускация кода

Время на снятие: неизвестно, зависит от объема кода и пере использования частей кода

Обфусцированный код VBA

Недостаток: необходимость тестирование файла после обфускации, на работоспособность

Крайне редкий вид защиты, основанный на изменении исходного кода VBA, в не удобочитаемый вид для человека. Удаляются все комментарии, форматирование кода, переименовываются названия всех переменных, процедур, функций, модулей и прочего. Злоумышленнику никогда не удастся восстановить первоначальный вид кода, и потребует достаточно много времени для, его восстановления в удобно читаемый вид для человека.

Для де-обфускации кода нужно иметь время, специализированное ПО.

Данную защиту можно установить следующим инструментом.

Пятый вид защиты — Перенос кода в dll

Время на снятие: неизвестно, зависит от языка программирования и квалификации

Недостаток: необходимости в дополнительном файле dll

Один из самых редких видов защиты. Основная идея перенос основного кода в отдельную библиотеку dll, написанную на любом другом языке программирования. Не распространённость данный вид защиты получил по следующей причине, необходимости за файлом Excel, «таскать» дополнительный файл, dll.

Для получения доступа к коду dll, нужно обладать специальными знаниями.

Заключение

В заключении хочу выделить бесполезность защит: Project is Unviewable и Hidden Module которые, по существу ни отчего не защищают. Позволяют просматривать код VBA, без изменения исходного файла, в таких программах как OpenOffice или LibreOffice. Так и снимаются без особых проблем.

  • VBA
  • защита проекта VBA
  • Project is Unviewable
  • Hidden Module
  • Информационная безопасность
  • Visual Basic for Applications

VBA Excel. Защита паролем проекта VBA и снятие защиты

Защита проекта VBA паролем помогает от случайного или намеренного изменения кода обычным пользователем. От злоумышленников простая установка пароля не спасет.

Защита проекта VBA стандартными средствами:

  1. Перейдите в окно «VBAProject — Project Properties» через пункты меню: «Tools» >> «VBAProject Properties».
  2. В открывшемся окне выберите вкладку «Protection» и установите галочку в чек-боксе «Lock project for viewing».
  3. Введите пароль в поле «Password» и повторите пароль в поле «Confirm password».

Окно «VBAProject - Project Properties»

  1. Нажмите кнопку «OK» и закройте книгу Excel.

При следующем открытии этой книги проект VBA будет защищен.

Снятие защиты с VBA-проекта

Снятие защиты с проекта VBA стандартными средствами:

  1. Перейдите в окно «VBAProject — Project Properties» через пункты меню: «Tools» >> «VBAProject Properties».
  2. В открывшемся окне выберите вкладку «Protection» и уберите галочку из чек-бокса «Lock project for viewing».
  3. Очистите поля «Password» и «Confirm password».
  4. Нажмите кнопку «OK» и закройте книгу Excel.

При следующем открытии этой книги проект VBA будет доступен.

Отключение забытого пароля

Этот способ отключения забытого пароля применим к файлам Excel с расширением .xlsm. Чтобы не забывать пароли, используйте менеджер KeePass.

  1. Сделайте копию книги Excel, чтобы случайно не потерять ее при вмешательстве в код.
  2. Откройте файл .xlsm любым архиватором (я использую бесплатный 7-Zip). Иногда рекомендуют заменить расширение .xlsm на .zip или добавить одно к другому (.xlsm.zip), но делать этого совершенно не обязательно.

  1. Откройте в архиве папку «xl», найдите файл «vbaProject.bin» и перетащите его в папку с книгой Excel (по умолчанию происходит копирование).

  1. Откройте файл «vbaProject.bin» программой «Notepad++», обычный блокнот не подойдет.
  2. С помощью поиска (Ctrl+F) найдите фразу DPB= , замените в ней букву «B» на любую другую, например на «z» и сохраните файл.

  1. Перетащите файл «vbaProject.bin» обратно в архив, подтвердив копирование. Архив можно закрыть.
  2. Откройте книгу Excel и на запрос о продолжении загрузки с невалидным ключом «DPz» ответьте «Да».

  1. Откройте редактор VBA, дважды или трижды нажав «OK» в сообщении о неизвестной ошибке (у меня такое предупреждение появляется трижды).

  1. Сохраните книгу Excel и закройте.
  2. Откройте файл Excel, перейдите в редактор VBA, откройте окно «VBAProject — Project Properties» («Tools» >> «VBAProject Properties») и убедитесь, что галочка у чек-бокса «Lock project for viewing» снята, поля «Password» и «Confirm password» — пустые.

Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

4 комментария для “VBA Excel. Защита паролем проекта VBA и снятие защиты”

Здравствуйте Евгений.
Имеется ли способ на 100% защитить код от просмотра/копирования?
Просмотрел в сети много мануалов, и везде пишут, что все пароли с проекта снимаются за 5-20 минут не зависимо от вида блокировки.
В планах написать программу, аналогов которой не существует, и которая будет содержать коммерческую тайну нашей фирмы. Возможность использования софта, путем снятия пароля третьими лицами отбивает все желание.

Здравствуйте, Тамир!
Когда я интересовался защитой VBA-проекта паролем, не нашел надежного способа.

Провел мониторинг.
Что скажете касаемо обфускации кода и переноса кода в dll, как методов защиты кода?
В сети пишут, что это действенные методы, или они так же имеют недочеты?

Сбитый Лётчик Небосводов 06.02.2023 в 06:42

Здравствуйте, Тамир!
Здравствуйте, Евгений!
Здравствуйте, коллеги!
dll – хорошо и надёжно, вот только таскать с xls ещё и dll не удобно, и большинству это не понравится.
Обфускация как надёжная защита с моей т.зр. вообще смешно: от копирования никак вообще не защищает, читаемость быстро восстанавливается Relace All’ом.
Коллеги, поделитесь мыслями.

Как защитить проект VBA паролем

Для тех кто уже освоился более-менее в программировании на Visual Basic for Application рано или поздно непременно встает вопрос: как защитить свой код от изменений или даже от просмотра? Как правило это делается в файлах, которые в дальнейшем «гуляют по рукам». Т.е. автор создал и потом файл отсылается или другим пользователям, или клиентам, поставщикам и т.п. Чтобы у тех, кто будет в дальнейшем работать с этим файлом, не было возможности подсмотреть проект и тем более что-то в нем изменить. В каких-то случаях цель такой защиты это защита «от дурака»: чтобы по незнанию не изменили так, что файл просто откажется работать. Так же есть и другая причина — код является «коммерческим» и в нем присутствует некая защита от использования функционала по истечению ДЕМО-периода и надо закрыть код, чтобы эту защиту не «сломали».
По сути защитить проект VBA стандартными средствами совсем не сложно. Переходим в проект VBA (вкладка Разработчик (Developer)Visual Basic или сочетание клавиш Alt + F11 ), далее:

  1. ToolsVBAProject Properties -вкладка Protection
  2. устанавливаем галочку Lock project for viewing . Если галочка не установлена, то весь код можно будет просматривать и изменять, но изменить или просмотреть свойства самого проекта будет уже невозможно без снятия пароля.
  3. вписываем пароль в полях Password и Confirm password

Чтобы снять пароль с проекта VBA необходимо перейти в проект VBA файла(вкладка Разработчик (Developer)Visual Basic или сочетание клавиш Alt + F11 ) и:

  1. ToolsVBAProject Properties -вкладка Protection
  2. снимаем галочку Lock project for viewing
  3. удаляем пароль в полях Password и Confirm password

Для чего вообще может быть нужна отдельно галочка Lock project for viewing ? Ведь как я написал выше — если её не поставить, весь код проекта становится доступен. Смысл такой защиты? Я применяю так: в коммерческой разработке устанавливаю пароль на проект. Но на само время разработки галочку не ставлю, чтобы у меня был доступ к коду без постоянного ввода пароля. Как только разработка завершена, перед тем как выслать файл заказчику мне остается только установить эту галочку и все — проект защищен(ведь пароль уже установлен). Если потом нужны доработки — то схема такая же: на время доработки снимаю галочку и ставлю обратно перед тем как выслать. Пароль при этом какой был, тот и остается — постоянно его вводить не требуется.

Хочу так же отметить, что пароль от проекта VBA ломается на ура(программ для этого достаточно в сети, перечислять не буду — кому надо сможет найти, а кто не сможет — значит не так уж и надо). Корпорацией Microsoft данный пароль точно не разрабатывался для защиты проекта от несанкционированного взлома и скорее был направлен больше на защиту от дурака. А может дело в том, что сам VBE практически не дорабатывался чуть ли не с самого его создания.
В любом случае, для тех, кто хочет чуть надежнее защитить свой проект VBA лучше использовать для этого сторонние утилиты. Например, очень хорошая программа для рядовых пользователей Protect VBA от eliansoft (http://www.eliansoft.com). Данная программа делает недоступным проект VBA. Никаких паролей вводить не надо — проект просто недоступен даже для ввода пароля. Последняя бесплатная версия была 1.6. Сейчас в сети её уже практически не найти в бесплатном варианте, т.к. разработчики убрали её с офф.сайта и постарались убрать отовсюду, видимо. Но т.к. у меня эта программа есть — выкладываю здесь, но скачать можно только после регистрации на сайте (чтобы тот же eliansoft не смог добраться).
Скачать Protect VBA

Protect_VBA.zip (287,1 KiB, 591 скачиваний)
У Вас нет прав для скачивания этого файла. Возможно, Вы не зарегистрированы на сайте. Зарегистрируйтесь и попробуйте скачать снова.

  • создаете файл с кодом, сохраняете, закрываете
  • запускаете Protect VBA
  • выбираете файл, проект VBA которого надо защитить
  • нажимаете Protect
  • будет предложено выбрать папку для сохранения защищенного файла. Здесь лучше заранее создать папку для сохранения файла, т.к. программа делает копию оригинального файла и не даст сохранить непосредственно тот же файл. Что к лучшему — ведь должен же у нас остаться файл с открытыми кодами 🙂

Как удалить и восстановить пароль из Excel 2019 / 2016 / 2013 / 2010

Установив пароль Excel, вы можете защитить важные рабочие листы от несанкционированного изменения или удаления. Следовательно, вы не можете открыть защищенные паролем файлы Excel, если вы забыли пароль Excel. Чтобы восстановить доступ к вашему рабочему листу Excel, вам нужно удалить или восстановить пароль из Excel вручную.

Что делать, чтобы снять защиту листа Excel без пароля? В этом руководстве показаны различные способы восстановления пароля Excel в 3. Вы можете выполнить следующие действия, чтобы легко разблокировать пароль Excel. Теперь давайте вместе прочитаем, чтобы увидеть, как удалить пароль Excel из Windows 10 и Mac.

Часть 1: Как удалить пароль из Excel 2007 и 2010 с помощью 7-ZIP

Вы можете удалить пароль из Excel 2016 и более ранних версий с помощью инструментов сжатия, поддерживаемых ZIP. В этом разделе в качестве примера используется 7-Zip. 7-Zip — это бесплатный архиватор с открытым исходным кодом, которому вы можете доверять, который впервые был выпущен в 1999.

Откройте зашифрованный файл Excel с помощью 7-Zip. Вы можете увидеть несколько файлов и папок.

Откройте папку с именем «xl». Выберите «Редактировать» в меню «workbook.xml» правой кнопкой мыши. Файл Excel будет открыт Блокнотом.

Найдите и удалите следующую команду. Ну, вы можете найти «пароль», чтобы быстро найти тег. Затем нажмите «Да», чтобы сохранить изменения.

Если у вас есть защита паролем на определенном листе, вы можете перейти к файлу через «xl \ worksheets \ sheet 1.xml». Позже удалите тег «sheetProtection», чтобы удалить пароль из листа Excel.

Для файлов, заархивированных с помощью WinRAR, необходимо использовать WinRAR программа для удаления паролей чтобы разблокировать это.

Часть 2: Как восстановить пароль из Excel 2016 и более ранних версий с помощью кода VBA

Если вы используете Microsoft Excel 2016, Excel 2007 и более ранние версии, вы можете удалить и восстановить забытый пароль из Excel 2016 с кодом VBA. Ваша таблица и сохраненные данные Excel не пострадают. Что касается более новых версий Excel, вам нужно использовать методы грубой силы, чтобы разблокировать зашифрованные файлы Excel.

Получите доступ к онлайн-конвертеру в своем браузере или введите online-convert.com в адресную строку и нажмите Enter ключ.

Удерживайте клавиши «Alt» и «F11» или нажмите «View Code» в разделе «Developer».

В окне Microsoft Visual Basic для приложений дважды щелкните на листе, защищенном паролем.

Нажмите «F5» на клавиатуре, чтобы выполнить код. Когда вы увидите окно с подсказкой, нажмите «ОК» для подтверждения и восстановления пароля из Excel 2016. Когда процесс завершится, вы увидите всплывающее окно с надписью «Один используемый пароль — ******».

Часть 3: наиболее вероятный способ удаления пароля из Excel 2019 / 2016 / 2013 / 2010 / 2007

Основные возможности программы Excel Password Remover

Как удалить защиту паролем из файла Microsoft Excel на ПК

Бесплатно скачать Excel для удаления паролей на ПК. В окончательной версии вы можете создать как CD / DDVD для сброса пароля, так и флэш-накопитель USB. Просто вставьте свой диск или диск в доступный компьютер. Затем нажмите «Записать CD / DVD» или «Записать USB», чтобы начать прожиг.

Интерфейс

Извлеките дисковод CD / DVD или флэш-накопитель USB. Позже поместите его в целевой компьютер Windows. Следуйте инструкциям на экране для загрузки с CD-ROM или USB. Выберите учетную запись пользователя и начните восстанавливать пароль из Excel.

Сброс

Съемник паролей Excel напомнит вам извлечь загрузочный диск и перезагрузить компьютер.

Перезагрузить

Заключение

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

Не удается найти ключ продукта Microsoft Office? Вот несколько способов найти ключи продуктов Microsoft Office и легко установить Microsoft Office.

В этом уроке мы покажем вам, как создать загрузочный диск Windows 7 на диске или отформатированный USB-накопитель, вы также можете использовать его для Windows 8 и Windows 10.

Если вы забыли пароль, который вы используете для входа в службы, такие как Hotmail, Skype и OneDrive, вам может потребоваться сброс пароля Hotmail прямо сейчас.

Мнение эксперта
Знайка, самый умный эксперт в Цветочном городе
Если у вас есть вопросы, задавайте их мне!
Задать вопрос эксперту

Этот способ годится для взлома пароля открытия, но только к файлам с коротким 40 бит ключом шифрования для документов Excel 97-2003 условно говоря для xls-файлов. Если же вы хотите что-то уточнить, я с радостью помогу!

Как Узнать Пароль от Vba Проекта Excel • Способ 2 использование zip

Защита — это простое сравнение текста в Excel. Загрузите Excel в ваш любимый отладчик ( Ollydbg являющийся моим инструментом выбора), найдите код, который выполняет сравнение, и исправьте его, чтобы всегда возвращать true, это должно позволить вам получить доступ к макросам.

Снять — как узнать пароль защиты листа excel — Code Examples

Добрый день, несколько лет работало отлично и вот пришли очередные файлы на разбор — и программа зависает на несколько часов и в конце «Не удалось снять защиту книги». Один проход цикла занимает 10 секунд! Эксель 2016, форматы не менялись, вообще вроде бы ничего не изменилось — но больше не работает.

Как защитить код VBA

wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали, в том числе анонимно, 12 человек(а).

Количество источников, использованных в этой статье: 11. Вы найдете их список внизу страницы.

Изображение с названием Protect VBA Code Step 1

Изображение с названием Protect VBA Code Step 1Bullet1

Изображение с названием Protect VBA Code Step 2

Изображение с названием Protect VBA Code Step 3

Установите флажок у «Lock Project for Viewing» (Заблокировать проект от просмотра). В противном случае код смогут просматривать посторонние пользователи.

Изображение с названием Protect VBA Code Step 4

Изображение с названием Protect VBA Code Step 5

Сохраните внесенные изменения, а затем перезапустите программу. Возможно, в Microsoft Excel 2007 (и более новых версиях) вам придется сохранить файл в формате XLSM, чтобы код работал.

Изображение с названием Protect VBA Code Step 6

Изображение с названием Protect VBA Code Step 7

Изображение с названием Protect VBA Code Step 8

Изображение с названием Protect VBA Code Step 9

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

Изображение с названием Protect VBA Code Step 10

Создайте новый файл того же формата, как у исходного файла. Например, если исходным файлом является файл Excel, создайте новый Excel-файл.

Изображение с названием Protect VBA Code Step 11

Изображение с названием Protect VBA Code Step 12

Изображение с названием Protect VBA Code Step 13

Изображение с названием Protect VBA Code Step 14

Изображение с названием Protect VBA Code Step 15

Введите описание макроса, который будет запускаться в расширении. Возможно, вам придется нажать «Options» (Параметры), чтобы добавить описание макроса.

Изображение с названием Protect VBA Code Step 16

Скомпилируйте код. Для этого в окне редактора Visual Basic нажмите «Debug» (Отладка) > «Compile VBA Project» (Компилировать).

Мнение эксперта
Знайка, самый умный эксперт в Цветочном городе
Если у вас есть вопросы, задавайте их мне!
Задать вопрос эксперту

Категорически рекомендую использовать данные способы для разблокировки и снятия защиты только со своих собственных файлов, когда забыли запамятовали пароль и ни в коем случае не применять данные способы для взлома паролей защиты на чужих файлах не принадлежащих Вам. Если же вы хотите что-то уточнить, я с радостью помогу!

У многих из нас есть важные данные в Excel, которые должны быть защищены от враждебного взломщика паролей или несанкционированного изменения. Вот почему мы используем различную парольную защиту. Особенно в корпоративной среде, где конфиденциальность и целостность данных исключительно важны. Всё это здорово и отлично работает, пока не возникает проблема:

Как написать простой макрос в программе Excel

Для Excel 2007 вам необходимо изменить расширение файла .zip. В архиве есть подпапка xl, там вы найдете vbaProject.bin. Следуйте приведенному выше шагу с помощью vbaProject.bin, затем сохраните его в архиве. Измените свое расширение и вуаля! (что означает следующие шаги выше)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *