579 Stimmen

Gibt es eine Möglichkeit, das Kennwort für ein Excel-VBA-Projekt zu knacken?

Ich wurde gebeten, einige Excel 2003-Makros zu aktualisieren, aber die VBA-Projekte sind passwortgeschützt, und es scheint, dass es an Dokumentation mangelt... niemand kennt die Passwörter.

Gibt es eine Möglichkeit, das Kennwort für ein VBA-Projekt zu entfernen oder zu knacken?

6voto

Charles Duffy Punkte 255246

ElcomSoft macht Advanced Office Password Breaker y Erweiterte Office-Kennwort-Wiederherstellung Produkte, die für diesen Fall in Frage kommen, sofern das Dokument in Office 2007 oder früher erstellt wurde.

6voto

Scoob Punkte 61

Tom - ich habe anfangs einen Anfängerfehler gemacht, da ich nicht auf die Bytegröße geachtet habe und stattdessen den Text aus der "CMG"-Einrichtung in den nachfolgenden Eintrag kopiert und eingefügt habe. Das waren aber zwei verschiedene Textgrößen zwischen den beiden Dateien, und ich habe das VBA-Projekt verloren, wie Stewbob gewarnt hat.

In HxD gibt es einen Zähler, der anzeigt, wie viele Dateien Sie auswählen. Kopieren Sie von CMG aus, bis der Zähler 8F (hexadezimal für 143) anzeigt, und fügen Sie die Datei in die gesperrte Datei ein - ich hatte am Ende die doppelte Anzahl von "..." am Ende des Einfügens, was irgendwie seltsam aussah und sich fast unnatürlich anfühlte, aber es funktionierte.

Ich weiß nicht, ob das entscheidend ist, aber ich habe sichergestellt, dass ich sowohl den Hex-Editor als auch Excel geschlossen habe, bevor ich die Datei in Excel erneut geöffnet habe. Dann musste ich durch die Menüs gehen, um den VB-Editor und die VB-Projekteigenschaften zu öffnen, und das "neue" Kennwort eingeben, um den Code zu entsperren.

Ich hoffe, das hilft.

6voto

kunal Vyas Punkte 51

Die akzeptierte Antwort hat in Excel 2019 unter Windows 10 nicht funktioniert. Ich habe die zusätzlichen Schritte herausgefunden, die wir unternehmen müssen, um das gesperrte Makro zu sehen. Ich fasse die Schritte zusammen.

  1. Fügen Sie am Ende des Excel-Dateinamens ein .zip hinzu und drücken Sie die Eingabetaste.

  2. Sobald die Datei in eine ZIP-Datei umgewandelt wurde, öffnen Sie sie mit einem Doppelklick auf die Datei

  3. Darin sehen Sie einen Ordner mit dem Namen xl wie folgt

  4. In xl finden Sie eine Datei namens vbaProject.bin, die Sie auf den Desktop kopieren und einfügen können

  5. Gehen Sie zum Online-Hexadezimal-Editor HexEd.it

  6. Suchen Sie nach den folgenden Texten DPB=... und ändern Sie diese in DPx=...

  7. Speichern Sie die Datei und schließen Sie HexEd.it

  8. Kopieren Sie die aktualisierte Datei von Ihrem Desktop in die ZIP-Datei (Sie müssen sie überschreiben)

  9. Entfernen Sie die .zip-Erweiterung am Ende des Dateinamens und fügen Sie die Excel-Erweiterung wieder hinzu.

  10. Öffnen Sie die Datei in Excel. Möglicherweise erhalten Sie eine Reihe von Fehlermeldungen, klicken Sie diese einfach durch.

\==== ZUSÄTZLICHE SCHRITTE ÜBER DIE AKZEPTIERTE ANTWORT HINAUS =====

  1. Öffnen Sie das Visual Basic-Fenster (normalerweise ALT+F11, wenn ich mich richtig erinnere) und öffnen Sie die VBAProject-Eigenschaften (Menü Extras).
  2. Klicken Sie auf die Registerkarte "Schutz" und ändern Sie das Kennwort in ein kurzes und leicht zu merkendes Kennwort (nicht entfernen) (wir werden im nächsten Schritt entfernen).
  3. Speichern Sie die Arbeitsmappe, schließen Sie sie und öffnen Sie sie erneut.
  4. Öffnen Sie erneut das Visual Basic-Fenster und geben Sie das soeben eingegebene Passwort ein. Wiederholen Sie den vorherigen Schritt, aber dieses Mal können Sie das das Kennwort.
  5. Speichern Sie die Arbeitsmappe und Sie haben das Kennwort entfernt.

Zusätzliche Schritte werden von folgender Seite aus unternommen https://confluence.jaytaala.com/display/TKB/Remove+Excel+VBA+Kennwort

4voto

Treb Punkte 19459

Der Schutz ist ein einfacher Textvergleich in Excel. Laden Sie Excel in Ihrem bevorzugten Debugger ( Ollydbg wobei mein Werkzeug der Wahl), finden Sie den Code, der den Vergleich tut und beheben Sie es immer true zurückgeben, sollte dies lassen Sie die Makros zugreifen.

4voto

Chris Spicer Punkte 2084

Mein Werkzeug, VbaDiff liest VBA direkt aus der Datei, so dass Sie damit geschützten VBA-Code aus den meisten Office-Dokumenten wiederherstellen können, ohne auf einen Hex-Editor zurückgreifen zu müssen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X