Пароль 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) выполните следующие действия:
- Создайте новый файл.xlsm.
- В части VBA установите простой пароль (например, "макрос").
- Сохраните файл и выйдите.
- Измените расширение файла на ".zip", откройте его любой программой-архиватором.
- Найдите файл: "vbaProject.bin" (в папке "xl").
- Извлеките его из архива.
- Откройте только что извлеченный файл с помощью шестнадцатеричного редактора.
Найдите и скопируйте значение из параметра DPB (значение в кавычке), например: DPB="282A84CBA1CBA1345FCCB154E20721DE77F7D2378D0EAC90427A22021A46E9CE6F17188A". (Это значение сгенерировано для пароля "macro". Вы можете использовать это значение DPB, чтобы пропустить шаги 1-8)
Выполните шаги 4-7 для файла с неизвестным паролем (файл, который вы хотите разблокировать).
Измените значение DBP в этом файле на значение, скопированное на шаге 8.
Если скопированное значение короче, чем в зашифрованном файле, вы должны заполнить отсутствующие символы 0 (ноль). Если значение длиннее - это не проблема (вставьте его как есть).
Сохраните файл vbaProject.bin и выйдите из шестнадцатеричного редактора.
- Замените существующий файл vbaProject.bin измененным.
- Измените расширение с.zip обратно на.xlsm
- Теперь откройте файл Excel, в котором нужно увидеть код VBA. Пароль для кода VBA будет просто макросом (как в примере, который я здесь показываю).
Новая версия, теперь у вас также есть GC= попробуйте заменить как DPB, так и GC
DPB="DBD9775A4B774B77B4894C77DFE8FE6D2CCEB951E8045C2AB7CA507D8F3AC7E3A7F59012A2" GC="BAB816BBF4BCF4BCF4"
пароль будет "тест"
- Откройте файл xls с помощью шестнадцатеричного редактора.
- Ищи
DPB
- замещать
DPB
вDPx
- Сохранить файл.
- Открыть файл в Excel.
- Нажмите "Да", если вы получаете какое-либо окно сообщения.
- Установите новый пароль из свойств проекта VBA.
- Закройте и снова откройте файл, затем введите новый пароль, чтобы снять защиту.
Проверьте 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
,