Пароль Excel VBA через шестнадцатеричный редактор

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

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

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

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

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

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

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

редактировать Теперь, решив это (в некоторой степени), я подумал, что добавлю здесь резюме.

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

Я чтобы заставить это работать на старой машине windows (XP / Excel 2007), измените .xlsm имя файла .zip, редактирование значений DPB= и GC= в vbaproject.bin файл с шестнадцатеричным редактором, а затем сохранить это в.zip-файл до переименования .zip обратно в xlsm. Я использовал "тестовый" пример, приведенный Рико внизу, и он работал с одним предостережением - мне пришлось "заполнить" мое значение 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. открыть файл, который был извлечен с HEX-редактором.
  8. найдите и скопируйте значение из параметра DPB (значение в кавычках), пример: DPB= "282A84CBA1CBA1345FCCB154E20721DE77F7D2378D0EAC90427A22021A46E9CE6F17188A". (Это значение, сгенерированное для пароля' macro'. Вы можете использовать это значение DPB, чтобы пропустить шаги 1-8)

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

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

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

  11. сохранить ' vbaProject.bin ' файл и выход из hex редактор.

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

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

DPB= " DBD9775A4B774B77B4894C77DFE8FE6D2CCEB951E8045C2AB7CA507D8F3AC7E3A7F59012A2" GC= "BAB816BBF4BCF4BCF4"

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


  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/


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