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

The truth is that the code files for most macro-enabled Office documents are not encrypted and the password only prevents opening the project with Office programs.
This means that, as other answers suggested, you can usually use an Office alternative to access and edit the file.

However, if you just need access to the code, you can use a tool like oledump.py to extract the Macro code. This is useful for malware analysis, as well as getting most of the code from the file so that you don’t have to start from scratch if you forget the password.

In addition, many excel files dynamically set the password when the file is opened. This means that if you can read the code, you can usually find the password in plaintext or de-obfuscate it.

oledump.py Examples:

List all «streams» (embedded binary or code files) within an office document:

python oledump.py -v yourExcelFile.xlsm

Output:

A: xl/vbaProject.bin
 A1:      2000 'PROJECT'
 A2:      1500 'PROJECTwm'
 A3: M    1224 'VBA/Module1'
 A4: M   18694 'VBA/Module2'
 A5: M   11877 'VBA/Module3'
...

Streams with an M next to them are macros, which is unencrypted VBA code

Extract a stream

python oledump.py -s A3 -v yourExcelFile.xlsm > Module1.vba

This will output the code contained in the A3 stream to Module1.vba.

I usually combine this with a loop to extract all files to a folder. This quick PowerShell script will extract all streams in most files:

New-Item -ItemType Directory "Output"

# just hardcode the highest stream outputted by oledump.py -v
$max = 5 
for ($i = 1; $i -le $max; $i++) {
    python oledump.py -s "A$i" -v yourExcelFile.xlsm > ".OutputA$i"
}

Note that this will only extract human-readable files.

Установка пароля на VBA-проект и снятие защиты с него. Отключение забытого пароля с проекта VBA, созданного в книге Excel с расширением .xlsm.

Защита проекта 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» — пустые.

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

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

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

Это очень просто и быстро чтобы понять, заблокирован ли проект VBA. Узнать можно двумя способами:

  1. В Excel найдите вкладку «Разработчик», нажмите « Макрос ». На вашем экране появится окно с несколькими опциями. Если кнопки под кнопкой «Выполнить» неактивны, то есть вы нажимаете на них и не можете их выбрать, это означает, что ячейки заблокированы или защищены паролем, поэтому их нельзя изменить .
  2. Щелкните раздел «Visual Basic» в том же разделе «Разработчик», в котором вы были ранее. Вы увидите, что почти все, что появляется в окно редактора Visual Basic затенен. В этом окне рядом с проектом, который нужно открыть или изменить, появится символ ¨ + ¨. Когда вы нажмете на него, появится небольшое окно с запросом пароля, ясно указывающее, что он заблокирован.

Вам следует выполнить следующие шаги:

  1. Найдите в папке нужный файл разблокировать . Щелкните, чтобы изменить имя и удалить расширение, которое отображается по умолчанию. Вы должны поставить слово «zip» вместо текущего расширения. Например, если имя вашего макроса «Project01.xlsm», вам нужно будет изменить расширение с «xlsm» на «zip». Это выглядело бы так: «Proyecto01.zip ». Нажмите кнопку «Enter» на клавиатуре.
  2. Нажмите «Да», когда откроется окно «Переименовать». На этом шаге вы только что создали zip-файл.
  3. Перейдите к только что созданному файлу и щелкните правой кнопкой мыши, выберите опцию «Проверить здесь».
  4. Откройте папку «xl». Там вы найдете файл «vbaproject», к которому хотите получить доступ.
  5. открытый программа HxD HEX Editor, которую вы должны были предварительно загрузить , и перетащите туда заблокированный файл. Они будут открывать различные коды.
  6.  В меню программы выберите «Поиск».
  7. Введите буквы «PB». Щелкните «ОК». Он отправит вас в раздел, где находится именно тот код, который вам нужен.
  8. Выберите букву «B» в конце кода и замените ее на «x».
  9. Сохраните и закройте программу.
  10. Вернуться к домашний файл . Удалите zip-файл, выберите все оставшиеся файлы и, щелкнув его правой кнопкой мыши, нажмите «Добавить в архив».
  11. Откроется окно «Имя файла и настройки». Замените имеющееся у вас расширение на «zip». Щелкните по кнопке «ОК».
  12. ZIP-файл будет создан снова, и вам нужно будет изменить расширение для исходного «xlsm». Нажмите Ввод». В открывшемся окне нажмите кнопку «Да».
  13. Убедитесь, что ваш файл уже разблокирована .

Если вы получили сообщение об ошибке после всего, что вы сделали, вам следует перейти в VBAProject Tools / Properties. Разблокируйте поле «Заблокировать проект для просмотра». и принимаю. Если ошибка не исчезнет, ​​вернитесь в «Свойства VBAProject», активируйте блокировку и введите новый пароль. Проверять.

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

Процедура, если вы не можете заменить расширение «xlsm» на «zip»

Если это не дает вам возможности изменить расширение как показано на шаге 1, вы можете решить эту проблему следующим образом: Следуйте по следующему пути: View / Options / Change folder and search options. Откроется окно, в котором следует перейти на вкладку «Просмотр». Вы должны Снимите отметку «Скрыть расширения для известных типов файлов». С этой процедурой у вас больше не должно возникнуть проблем.

У вас уже есть вся информация, необходимая для разблокировки или удаления макросов паролей VBA в Excel. Откройте для себя все другие решения, которые miracomosehace.com вы présente чтобы облегчить тебе жизнь.

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

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии