Пароль Excel VBA через Hex Editor

В прошлом я неоднократно использовал "Hex Editor для преобразования DPB в DPx", чтобы обойти защиту проекта VBA в моих старых проектах Excel VBA (.xls), поэтому я точно знаю, как это сделать, и знаю, что могу это сделать.

Однако я только что попытался сделать это вчера и обнаружил, что это больше не работает. Я пытался использовать Excel 2011 (Mac) и Excel 2003 (Windows), и в обоих случаях у меня было одинаковое поведение;

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

Я попробовал этот метод: есть ли способ взломать пароль в проекте Excel VBA? (т.е. создание электронной таблицы с известным паролем и последующее копирование в соответствующие поля)

Но обнаружите, что длина ключа "GC", созданного в моей "фиктивной" электронной таблице, короче, чем длина ключа "GC" в электронной таблице, к которой я хочу получить доступ ("цель"). Я читал в другом месте, что в тех случаях, когда "целевые" ключи были длиннее, вы могли бы дополнить "фиктивные" ключи той же длиной, но я ничего не могу найти, чтобы сказать, что делать в обратном случае.

Итак - мои вопросы

  • Кто-нибудь знает, если был применен патч, который делает "шестнадцатеричный редактор" недействительным?
  • Может кто-нибудь помочь с тем, что делать, когда фиктивные ключи длиннее, чем целевые ключи?
  • Может ли кто-нибудь еще предоставить какой-либо обновленный сайт по этому вопросу?

РЕДАКТИРОВАТЬ Теперь, решив это (до некоторой степени), я подумал, что я хотел бы добавить резюме здесь.

Я НЕ смог заставить это работать на Mac Excel 2011. Что-то об изменении файла с filname.xlsm на fielname.zip и обратно приводит к поврежденному файлу Excel, который Excel 2011 отказывается распознавать.

Мне удалось заставить это работать на старой машине с Windows (XP/Excel 2007), изменив имя файла.xlsm на.zip, отредактировав значения DPB= AND GC= в файле vbaproject.bin с помощью шестнадцатеричного редактора, затем сохранив это в файле.zip перед переименованием.zip обратно в xlsm. Я использовал "тестовый" пример, приведенный Рикко внизу, и он работал с ONE CAVEAT - мне пришлось "дописать" мое значение GC, чтобы сделать его такой же длины, как оригинальное в моем файле.

ORIGINAL:       GC="0F0DA36FAF938494849484"
NEW:  (TEST)    GC="BAB816BBF4BCF4BCF4"  (from Ricko below)
NEW:  (TEST)    GC="BAB816BBF4BCF4BCF40000"  (what i used and what worked)

4 ответа

Решение

У меня есть ваш ответ, так как у меня сегодня была такая же проблема:

Кто-то создал рабочий код vba, который изменяет пароль защиты vba на "макрос" для всех файлов Excel, включая.xlsm (версии 2007+). Вы можете увидеть, как это работает, просмотрев его код.

Это блог этого парня: http://lbeliarl.blogspot.com/2014/03/excel-removing-password-from-vba.html Вот файл, который выполняет свою работу: https://docs.google.com/file/d/0B6sFi5sSqEKbLUIwUTVhY3lWZE0/edit

Вставлено из предыдущего поста из его блога:

Для файлов Excel 2007/2010 (.xlsm) выполните следующие действия:

  1. Создайте новый файл.xlsm.
  2. В части VBA установите простой пароль (например, "макрос").
  3. Сохраните файл и выйдите.
  4. Измените расширение файла на ".zip", откройте его любой программой-архиватором.
  5. Найдите файл: "vbaProject.bin" (в папке "xl").
  6. Извлеките его из архива.
  7. Откройте только что извлеченный файл с помощью шестнадцатеричного редактора.
  8. Найдите и скопируйте значение из параметра DPB (значение в кавычке), например: DPB="282A84CBA1CBA1345FCCB154E20721DE77F7D2378D0EAC90427A22021A46E9CE6F17188A". (Это значение сгенерировано для пароля "macro". Вы можете использовать это значение DPB, чтобы пропустить шаги 1-8)

  9. Выполните шаги 4-7 для файла с неизвестным паролем (файл, который вы хотите разблокировать).

  10. Измените значение DBP в этом файле на значение, скопированное на шаге 8.

    Если скопированное значение короче, чем в зашифрованном файле, вы должны заполнить отсутствующие символы 0 (ноль). Если значение длиннее - это не проблема (вставьте его как есть).

  11. Сохраните файл vbaProject.bin и выйдите из шестнадцатеричного редактора.

  12. Замените существующий файл vbaProject.bin измененным.
  13. Измените расширение с.zip обратно на.xlsm
  14. Теперь откройте файл Excel, в котором нужно увидеть код VBA. Пароль для кода VBA будет просто макросом (как в примере, который я здесь показываю).

Новая версия, теперь у вас также есть GC= попробуйте заменить как DPB, так и GC

DPB="DBD9775A4B774B77B4894C77DFE8FE6D2CCEB951E8045C2AB7CA507D8F3AC7E3A7F59012A2" GC="BAB816BBF4BCF4BCF4"

пароль будет "тест"

  1. Откройте файл xls с помощью шестнадцатеричного редактора.
  2. Ищи DPB
  3. замещать DPB в DPx
  4. Сохранить файл.
  5. Открыть файл в Excel.
  6. Нажмите "Да", если вы получаете какое-либо окно сообщения.
  7. Установите новый пароль из свойств проекта VBA.
  8. Закройте и снова откройте файл, затем введите новый пароль, чтобы снять защиту.

Проверьте http://blog.getspool.com/396/best-vba-password-recovery-cracker-tool-remove/

Если вы имеете дело с .xlsm файл вместо .xls Вы можете использовать старый метод. Я пытался изменить vbaProject.bin в .xlsm несколько раз, используя DBP->DBx метод по нему не сработал, тоже меняя значение DBP не сделал. Поэтому я был очень удивлен, что следующее сработало:
1. Сохранить .xlsm как .xls,
2. Используйте DBP->DBx метод на .xls,
3. К сожалению, некоторые ошибки могут возникнуть при использовании модифицированного .xls файл, я должен был сохранить .xls как .xlsx и добавить модули, затем сохранить как .xlsm,

Другие вопросы по тегам