Ich habe den "Hex-Editor zum Ändern von DPB in DPx" viele Male in der Vergangenheit verwendet, um die VBA-Projektsicherheit bei meinen alten Excel-VBA-Projekten (.xls) zu umgehen, also weiß ich definitiv, wie es geht, und weiß, dass ich es tun kann.
Allerdings habe ich gestern versucht, es zu tun und festgestellt, dass es nicht mehr zu funktionieren scheint. Ich habe es sowohl mit Excel 2011 (Mac) als auch mit Excel 2003 (Windows) versucht, und in beiden Fällen hatte ich das gleiche Verhalten;
Beim Öffnen des VBA-Editors wird eine Meldung angezeigt, dass das Projekt beschädigt ist und entfernt wird. Der VBA-Editor wird dann geöffnet, und tatsächlich ist die gesamte VBA aus den Modulen und Arbeitsblättern entfernt worden.
Ich habe diese Methode ausprobiert: https://stackoverflow.com/questions/1026483/is-there-a-way-to-crack-the-password-on-an-excel-vba-project/1038783#1038783 (d. h. Erstellen eines Arbeitsblatts mit einem bekannten Kennwort und anschließendes Kopieren der relevanten Felder)
Ich stelle jedoch fest, dass die Länge des Schlüssels, der auf meinem Dummy-Arbeitsblatt erstellt wurde, kürzer ist als der Schlüssel auf dem Arbeitsblatt, auf das ich zugreifen möchte (das Zielarbeitsblatt). Ich hatte an anderer Stelle gelesen, dass man in Fällen, in denen die "Ziel" -Schlüssel länger sind, die "Dummy" -Schlüssel auf dieselbe Länge auffüllen kann, aber ich kann nichts finden, was im umgekehrten Fall zu tun wäre.
Also - meine Fragen (s);
EDIT Nachdem ich das Problem nun (bis zu einem gewissen Grad) gelöst habe, dachte ich, dass ich hier eine Zusammenfassung hinzufügen würde.
Ich konnte dies nicht auf Mac Excel 2011 zum Laufen bringen. Etwas über die Änderung der Datei von filname.xlsm zu fielname.zip und wieder zurück führt zu einer beschädigten Excel-Datei, die Excel 2011 weigert sich, zu erkennen.
Auf einem alten Windows-Rechner (XP/Excel 2007) habe ich es geschafft, die Datei .xlsm in .zip umzubenennen, die Werte DPB= und GC= in der Datei vbaproject.bin mit einem Hex-Editor zu bearbeiten und in der .zip-Datei zu speichern, bevor ich die .zip-Datei wieder in xlsm umbenannte. Ich habe das "Test" Beispiel von Ricko unten verwendet und es hat mit EINEM CAVEAT funktioniert - ich musste meinen GC-Wert auffüllen, damit er die gleiche Länge wie der Originalwert in meiner Datei hat.
ORIGINAL: GC="0F0DA36FAF938494849484"
NEW: (TEST) GC="BAB816BBF4BCF4BCF4" (from Ricko below)
NEW: (TEST) GC="BAB816BBF4BCF4BCF40000" (what i used and what worked)
Ich habe Ihre Antwort, denn ich hatte gerade heute das gleiche Problem:
Jemand hat einen funktionierenden VBA-Code erstellt, der das VBA-Schutzpasswort in "Makro" ändert, und zwar für alle Excel-Dateien, einschließlich .xlsm (2007+ Versionen). Sie können sehen, wie es funktioniert, indem Sie sich seinen Code ansehen.
Dies ist der Blog des Autors: http://lbeliarl.blogspot.com/2014/03/excel-removing-password-from-vba.html Hier's die Datei, die die Arbeit macht: https://docs.google.com/file/d/0B6sFi5sSqEKbLUIwUTVhY3lWZE0/edit
Eingefügt aus einem früheren Beitrag aus seinem Blog:
Für Excel 2007/2010 (.xlsm) Dateien führen Sie folgende Schritte aus:
Erstellen Sie eine neue .xlsm-Datei.
Legen Sie im VBA-Teil ein einfaches Kennwort fest (z. B. 'Makro').
Speichern Sie die Datei und beenden Sie sie.
Ändern Sie die Dateierweiterung in '.zip' und öffnen Sie die Datei mit einem beliebigen Archivierungsprogramm.
Suchen Sie die Datei: 'vbaProject.bin' (im 'xl' Ordner).
Extrahieren Sie sie aus dem Archiv.
Öffnen Sie die entpackte Datei mit einem Hex-Editor.
Suchen und kopieren Sie den Wert des Parameters DPB (Wert in Anführungszeichen), Beispiel: DPB="282A84CBA1CBA1345FCCB154E20721DE77F7D2378D0EAC90427A22021A46E9CE6F17188A" (Dieser Wert wurde für 'Makro' Passwort generiert. Sie können diesen DPB-Wert verwenden, um die Schritte 1-8 zu überspringen)
Führen Sie die Schritte 4-7 für die Datei mit dem unbekannten Kennwort aus (Datei, die Sie entsperren möchten).
Ändern Sie den DBP-Wert in dieser Datei auf den Wert, den Sie in Schritt 8 kopiert haben. Wenn der kopierte Wert kürzer ist als der in der verschlüsselten Datei, sollten Sie die fehlenden Zeichen mit 0 (Null) auffüllen. Wenn der Wert länger ist, ist das kein Problem (fügen Sie ihn so ein, wie er ist).
Speichern Sie die Datei 'vbaProject.bin' und verlassen Sie den Hex-Editor.
Ersetzen Sie die bestehende Datei 'vbaProject.bin' durch die geänderte Datei.
Ändern Sie die Dateierweiterung von '.zip' zurück zu '.xlsm'
Öffnen Sie nun die Excel-Datei, in der Sie den VBA-Code sehen möchten. Das Kennwort für den VBA-Code lautet einfach Makro (wie in dem Beispiel, das ich hier zeige).
DPB
.DPB
durch DPx
.Prüfen Sie http://blog.getspool.com/396/best-vba-password-recovery-cracker-tool-remove/
Wenn Sie mit der Datei .xlsm
anstelle von .xls
arbeiten, können Sie die alte Methode verwenden. Ich habe versucht, vbaProject.bin
in .xlsm
mehrere Male mit der Methode DBP->DBx
zu ändern, aber es hat nicht funktioniert, auch das Ändern des Wertes von DBP
hat nicht funktioniert. Daher war ich sehr überrascht, dass folgendes funktionierte:
.xlsm
als .xls
. DBP->DBx
auf .xls
. .xls
-Datei einige Fehler auftreten. Ich musste .xls
als .xlsx
speichern und Module hinzufügen, dann als .xlsm
speichern.