Пароль Excel VBA через Hex-редактор
Я использовал "Hex Editor для изменения DPB в DPx" много раз в прошлом, чтобы обойти безопасность проекта VBA в моих старых проектах Excel VBA (.xls), поэтому я определенно знаю, как это сделать и знаю, что могу сделайте это.
Однако я только что попытался сделать это вчера и обнаружил, что он больше не работает. Я попытался использовать Excel 2011 (Mac) и Excel 2003 (Windows), и в обоих случаях я получил такое же поведение;
Открытие редактора VBA дало сообщение о том, что проект поврежден и проект будет удален. Затем открывается редактор VBA и, конечно же, все VBA удаляются из модулей и рабочих листов.
Я пробовал этот метод:
Есть ли способ взломать пароль в проекте Excel VBA? (т.е. создание электронной таблицы с известным паролем, а затем копирование по соответствующим полям)
Но найдите, что длина ключа "GC", созданного в моей электронной таблице 'dummy', короче, чем ключ "GC" в электронной таблице, которую я желаю получить ( "цель" ). Я читал в другом месте, что в тех случаях, когда "целевые" ключи были длиннее, вы могли накладывать клавиши "dummy" на ту же длину, но я ничего не могу найти, чтобы сказать, что делать в обратном случае.
Итак - мои вопросы (вопросы);
- Кто-нибудь знает, был ли применен патч, который делает подход "шестнадцатеричного редактора" недействительным?
- Может ли кто-нибудь помочь с тем, что делать, если фиктивные ключи длиннее целевых ключей?
- Может ли кто-нибудь еще предоставить обновленную информацию на этой странице?
ИЗМЕНИТЬ
Теперь, решив это (в некоторой степени), я подумал, что добавлю здесь резюме.
Я НЕОБХОДИМО смог заставить это работать в 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)
Ответы
Ответ 1
У меня есть ваш ответ, так как сегодня у меня была такая же проблема:
Кто-то сделал рабочий код 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) выполните следующие действия:
- Создайте новый .xlsm файл.
- В части VBA установите простой пароль (например, "макрос" ).
- Сохраните файл и выйдите.
- Измените расширение файла на ".zip", откройте его любой программой архивирования.
- Найдите файл: 'vbaProject.bin' (в папке 'xl').
- Извлеките его из архива.
- Откройте файл, который вы только что извлекли, с помощью шестнадцатеричного редактора.
-
Найдите и скопируйте значение из параметра DPB (значение в кавычке), например: РОП = "282A84CBA1CBA1345FCCB154E20721DE77F7D2378D0EAC90427A22021A46E9CE6F17188A". (Это значение генерируется для пароля "macro". Вы можете использовать это значение DPB, чтобы пропустить шаги 1-8)
-
Сделайте шаги 4-7 для файла с неизвестным паролем (файл, который вы хотите разблокировать).
-
Измените значение DBP в этом файле на значение, которое вы скопировали на шаге 8.
Если скопированное значение короче, чем в зашифрованном файле, вы должны заполнить отсутствующие символы с помощью 0 (ноль). Если значение больше - это не проблема (вставьте его как есть).
-
Сохраните файл vbaProject.bin и выйдите из шестнадцатеричного редактора.
- Замените существующий файл 'vbaProject.bin' на измененный.
- Измените расширение с .zip на '.xlsm'
- Теперь откройте файл excel, который вам нужен, чтобы увидеть код VBA. Пароль для кода VBA
будет просто макросом (как в примере, который я показываю здесь).
Ответ 2
Новая версия, теперь у вас также есть GC =
попробуйте заменить DPB и GC теми
РОП = "DBD9775A4B774B77B4894C77DFE8FE6D2CCEB951E8045C2AB7CA507D8F3AC7E3A7F59012A2"
GC = "BAB816BBF4BCF4BCF4"
пароль будет "проверяться"
Ответ 3
- Откройте файл xls с шестнадцатеричным редактором.
- Искать
DPB
- Заменить
DPB
на DPx
- Сохранить файл.
- Откройте файл в Excel.
- Нажмите "Да", если появится окно с сообщениями.
- Установить новый пароль из VBA Project Properties.
- Закройте и снова откройте файл, затем введите новый пароль для снятия защиты.
Проверить http://blog.getspool.com/396/best-vba-password-recovery-cracker-tool-remove/
Ответ 4
Если вы используете файл .xlsm
вместо .xls
, вы можете использовать старый метод. Я пытался несколько раз изменить vbaProject.bin
в .xlsm
, используя метод DBP->DBx
, но не изменился, а изменение значения DBP
- нет. Поэтому я был очень удивлен, что после работы:
1. Сохраните .xlsm
как .xls
.
2. Используйте метод DBP->DBx
на .xls
.
3. К сожалению, некоторые ошибки могут возникать при использовании модифицированного файла .xls
, мне нужно было сохранить .xls
как .xlsx
и добавить модули, а затем сохранить как .xlsm
.