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?

103voto

Matt Punkte 13957

Für eine .xlsm o .dotm Dateityp müssen Sie etwas anders vorgehen.

  1. Ändern Sie die Erweiterung der .xlsm Datei zu .zip .
  2. Öffnen Sie die .zip-Datei (mit WinZip oder WinRar usw.) und gehen Sie in den Ordner xl.
  3. Extrahieren Sie die vbaProject.bin Datei und öffnen Sie sie in einem Hex-Editor (ich verwende HxD ist völlig kostenlos und leichtgewichtig).
  4. Suche nach DPB und ersetzen durch DPx und speichern Sie die Datei.
  5. Ersetzen Sie die alte vbaProject.bin Datei mit diesem neuen Eintrag in der gezippten Datei.
  6. Ändern Sie die Dateierweiterung wieder in .xlsm .
  7. Arbeitsmappe öffnen: Überspringen Sie die Warnmeldungen.
  8. Öffnen Sie Visual Basic in Excel.
  9. Gehen Sie zu Extras > VBAProject Eigenschaften > Registerkarte Schutz.
  10. Geben Sie ein neues Passwort ein und speichern Sie die .xlsm Datei.
  11. Schließen Sie das Programm und öffnen Sie es erneut, damit Ihr neues Passwort funktioniert.

70voto

Stewbob Punkte 16520

Colin Pickard hat eine ausgezeichnete Antwort, aber es gibt ein "Vorsicht" bei dieser Frage. Es gibt Fälle (ich habe die Ursache noch nicht herausgefunden), in denen die Gesamtlänge des Eintrags "CMG=........GC=...." in der Datei von einer Excel-Datei zur nächsten unterschiedlich ist. In einigen Fällen ist dieser Eintrag 137 Byte lang, in anderen 143 Byte. Die Länge von 137 Byte ist die ungerade, und wenn das passiert, wenn Sie Ihre Datei mit dem Kennwort "1234" erstellen, erstellen Sie einfach eine andere Datei, und sie sollte auf die Länge von 143 Byte springen.

Wenn Sie versuchen, die falsche Anzahl von Bytes in die Datei einzufügen, verlieren Sie Ihr VBA-Projekt, wenn Sie versuchen, die Datei mit Excel zu öffnen.

EDITAR

Dies gilt nicht für Excel 2007/2010-Dateien. Das standardmäßige .xlsx-Dateiformat ist eigentlich eine .zip-Datei mit zahlreichen Unterordnern, in denen Formatierung, Layout, Inhalt usw. als Xml-Daten gespeichert sind. Bei einer ungeschützten Excel 2007-Datei können Sie einfach die .xlsx-Erweiterung in .zip ändern, dann die Zip-Datei öffnen und alle Xml-Daten durchsuchen. Das ist sehr einfach.

Wenn Sie jedoch eine Excel 2007-Datei mit einem Kennwort schützen, wird die gesamte .zip-Datei (.xlsx) mit RSA-Verschlüsselung verschlüsselt. Es ist nicht mehr möglich, die Erweiterung in .zip zu ändern und den Inhalt der Datei zu durchsuchen.

34voto

Andy Punkte 385

Wenn Sie eine Excel 2007 (xlsm)-Datei haben, können Sie sie einfach als Excel 2003 (xls)-Datei speichern und die in anderen Antworten beschriebenen Methoden anwenden.

21voto

ashleedawg Punkte 18497

VBA-Projektkennwörter für Access-, Excel-, Powerpoint- oder Word-Dokumente ( 2007, 2010, 2013 or 2016 Versionen mit Erweiterungen .ACCDB .XLSM .XLTM .DOCM .DOTM .POTM .PPSM ) können sein leicht zu entfernen .

Sie müssen lediglich die Dateinamenerweiterung in .ZIP , entpacken Sie die Datei, und verwenden Sie einen einfachen Hex-Editor (wie XVI32 ), um das bestehende Kennwort zu "brechen", was Office "verwirrt", so dass es beim nächsten Öffnen der Datei ein neues Kennwort verlangt.

Eine Zusammenfassung der Schritte:

  • die Datei umbenennen, so dass sie ein .ZIP Erweiterung.
  • öffnen Sie die ZIP und gehen Sie zum XL Ordner.
  • Auszug vbaProject.bin und öffnen Sie es mit einem Hex-Editor
  • "Suchen & Ersetzen" in "Alles ersetzen" ändern DPB a DPX .
  • Speichern Sie die Änderungen, setzen Sie die .bin zurück in die Zip-Datei, geben Sie ihr die normale Erweiterung und öffnen Sie die Datei wie gewohnt.
  • ALT+F11, um den VB-Editor aufzurufen, und klicken Sie mit der rechten Maustaste in den Projekt-Explorer und wählen Sie VBA Project Properties .
  • Auf der Protection Registerkarte, Neues Passwort festlegen.
  • Klicken Sie auf OK Schließen Sie die Datei, öffnen Sie sie erneut und drücken Sie ALT+F11.
  • Geben Sie das neue Passwort ein, das Sie festgelegt haben.

An dieser Stelle können Sie das Kennwort vollständig entfernen, wenn Sie dies wünschen.

Vollständige Anweisungen mit einem Schritt-für-Schritt-Video, das ich gemacht habe "vor langer Zeit" sind auf YouTube aquí .

Es ist irgendwie schockierend, dass es diese Umgehung schon seit Jahren gibt und Microsoft das Problem noch nicht behoben hat.


Die Moral von der Geschicht?

Microsoft Büro VBA-Projektkennwörter sind unzuverlässig zur Sicherheit von cualquier sensible Informationen . Wenn Sie Wert auf Sicherheit legen, verwenden Sie Verschlüsselungssoftware von Drittanbietern.

17voto

greg Punkte 229

Haben Sie versucht, sie einfach in OpenOffice.org zu öffnen?

Ich hatte vor einiger Zeit ein ähnliches Problem und musste feststellen, dass Excel und Calc die Verschlüsselung des jeweils anderen nicht verstanden und daher direkten Zugriff auf so ziemlich alles erlaubten.

Das ist schon eine Weile her, und wenn das nicht nur ein Zufall war, kann es auch schon gepatcht worden sein.

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