Wie Passwort-Schutz von Excel-VBA-code funktioniert?
Diese Frage ist in Bezug auf meine vorherigen.
Können Sie erklären oder ein link zu einer Erklärung, wie Sie Excel-VBA-code-Passwort-Schutz tatsächlich funktioniert in den Versionen vor 2007? Was ist der Unterschied zwischen Excel 2007 und früheren Versionen in Bezug auf Ihre Passwort-Schutz?
Tut auch dem Excel-Passwort-Schutz tatsächlich verschlüsseln den code? Wie funktioniert Excel den code auszuführen, wenn es verschlüsselt ist?
Schließlich, wie funktioniert password removal software für excel arbeiten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
VBA-Sicherheit wird allgemein als ziemlich schlecht. Der VBA-code wird nicht kompiliert, und die source ist erhältlich in der excel-Datei. Der Passwort-Schutz ist ziemlich leicht zu umgehen.
Wie ich es verstehe, Office 2003 und früheren Versionen speichert der vba-code als Teil der Binär-format des Arbeitsblattes (oder Dokument /Präsentation). Wenn Sie das Feuer bis die VBA-IDE, es sieht einfach um zu sehen, ob der VBA-code wurde "geschützt" ist oder nicht. Dies bedeutet nicht, dass es verschlüsselt ist - gerade nicht verfügbar für die Anzeige. Die Theorie ist, dass dies aufhört, Ihre Benutzer von der Einmischung in Ihre code -, sondern ein hard-core-coder in der Lage wäre, um das Passwort.
Also Excel muss nicht jeden code entschlüsseln - es braucht nur einen Menschen davon abhalten, es zu sehen.
Office 2007 hat verschlüsseln Makros (fragt mich nicht wie oder was-Algorithmus). Dies ist notwendig, vermutlich, weil XLSM-Dateien (oder einem beliebigen Office 2007-Datei) sind nur zip Dateien mit einer anderen Erweiterung. Jeder kann sich in diese Dateien und stöbern.
Zur Beantwortung Ihrer letzten Frage - wie funktioniert der Passwort-Entfernung mit älteren Office-Formaten bin ich mir nicht ganz sicher. Verschiedene Hersteller werden möglicherweise nähern sich dem problem anders, aber ich vermute, dass der häufigste Ansatz wird eine brute-force-Angriff auf die Passwörter, bis eine übereinstimmung gefunden wird.
Excel VBProject-Objekt hat eine Schutz-Eigenschaft wird wieder verschiedene Enumerationen, je nach Schutz-status des Makros (
vbext_pp_locked
wenn das makro ist geschützt, zum Beispiel). Wenn Sie zu halten Sie versuchen, Kennwörter programmgesteuert, bis dievbext_pp_locked
evaluiert zu false, Sie würden gefunden haben Ihr Passwort.Phil ist richtig, das Passwort verhindert, dass Sie aus der Betrachtung der Module, Sie sind nicht verschlüsselt sich selbst. Ich weiß, in excel 2007 eine Datei ist im Grunde eine gezippte Sammlung von XML-und anderen Dateien, aber ich weiß nicht, die details, wie die Verschlüsselung behandelt. Für frühere Versionen von excel 2, 3, 4, 5, 95, 97, 2000, XP & 2003, es ist die umfassende OpenOffice.org's-Dokumentation der Microsoft Excel-Datei Format:
Den Passwort-block speichert eine 16-bit-hash-Wert, errechnet aus dem Arbeitsblatt oder die Arbeitsmappe Passwort-Schutz.
Jemand einen funktionierenden vba-code, ändert das vba-Passwort-Schutz auf "makro", für alle excel-Dateien, einschließlich .xlsm (2007+ Versionen). Sie können sehen, wie es funktioniert durch das surfen seinen code.
Hier ist der Kerl blog: http://lbeliarl.blogspot.com/2014/03/excel-removing-password-from-vba.html
Hier ist die Datei, die die Arbeit macht: https://docs.google.com/file/d/0B6sFi5sSqEKbLUIwUTVhY3lWZE0/edit
Eingefügt von einem früheren post von seinem blog:
Für Excel 2007/2010 (.xlsm) - Dateien folgende Schritte aus:
Finden und kopieren Sie den Wert von parameter DPB (Wert in Anführungszeichen), Beispiel:
DPB="282A84CBA1CBA1345FCCB154E20721DE77F7D2378D0EAC90427A22021A46E9CE6F17188A". (Dieser Wert generiert, die für die "makro" - Passwort. Sie können diese DPB-Wert zu überspringen Sie die Schritte 1-8)
Führen Sie die Schritte 4-7 für die Datei mit unbekannten password (Datei, die Sie entsperren wollen).
Ändern DBP-Wert in dieser Datei auf den Wert, den Sie kopiert haben, der in Schritt 8.
Speichern Sie die 'vbaProject.bin " - Datei und verlassen von hex-editor.
einfach makro (wie in dem Beispiel, das ich hier zeige).