Из-за изменения процедуры мне нужно обновить код в макросе excel. Человек, который его разработал, покинул компанию два года назад. При попытке оживить его, я узнал, что макропроект защищен паролем. Я искал обходной путь около двух часов, лучше всего было обсуждение на этой доске: Есть ли способ взломать пароль в проекте Excel VBA?
Каждый человек, который цитирует пример, использует этот формат:
CMG="..."
DPB="..."
GC="..."
Теперь вот моя проблема. Когда я загружаю файл (это .xla) в шестнадцатеричном редакторе, я вижу, что DPB-строка разрезается на две, а не равные части. Между этими двумя частями у меня есть огромное количество другого кода и классического смеха. Поэтому, если я хочу заменить исходную строку на строки из моего другого легко защищенного паролем фиктивного макроса, я понятия не имею, какую часть строки поставить перед, а какая часть после.
Вот как это выглядит:
VersionCompatible32="393222000"
CMG="B9BB1563196319671D671D"
DPB="3C3E906990F1ADF1AD0E53F2ADA57F5232827697A774ECD098BDyNone<bh:9f>y<bh:10><bh:00>
[затем появляется огромное количество нерелевантных данных] (обратите внимание на "DyNone", не знаю, является ли это "D" частью строки или частью "DyNone" )
<bh:00>uf_GetSQL<bh:03><bh:00><bh:00><bh:02><bh:09><bh:00><bh:00><bh:00>uf_VarSQL<bh:05><bh:00><bh:00><bh:02>86B8588665A975BB5916D296"
GC="BFBD13EA15EE99EF99EF99"
[Host Extender Info]
&H00000001={3832D640-CF90-11CF-8E43-00A0C911005A};VBE;&H00000000
Обе части находятся примерно на полпути к файлу, но все еще находятся на большом расстоянии друг от друга.
Я попытался переместить вторую часть после первого, как это:
VersionCompatible32="393222000"
CMG="B9BB1563196319671D671D"
DPB="3C3E906990F1ADF1AD0E53F2ADA57F5232827697A774ECD098B86B8588665A975BB5916D296"
GC="BFBD13EA15EE99EF99EF99"
DyNone<bh:9f>
Но затем я получаю ошибку "нечитаемый контент", и проект ушел. Кроме того, в вышеупомянутой теме упоминается решение, когда ваша строка замены короче оригинала. В моей ситуации длина cmg-строки длиннее, а dpb-строка длиннее, а не короче... Так что вторая проблема.
Я понимаю, что в основном прошу помочь мне "взломать" файл. Я пойму, если такие вопросы не будут разрешены. В этом случае я знаю свой новый осенний проект.