Excels Blattschutz aufheben

Sie haben von einem Kollegen eine Excel-Arbeitsmappe mit einem geschützten Arbeitsblatt erhalten, die Sie zwar ansehen, aber nicht bearbeiten können. Jetzt müssen Sie Änderungen an der Datei vornehmen - doch der Kollege ist in Urlaub. Das Passwort, mit dem Sie über "Extras, Schutz“ den Blattschutz aufheben könnten, kennen Sie nicht. Auf diese Schutzfunktion sollte man sich besser nicht verlassen. Sie ist nicht besonders sicher - Ihr Problem lässt sich deshalb mit einem Makro lösen.
Anforderung:
Fortgeschrittener
Zeitaufwand
Mittel
Problem:

Sie haben von einem Kollegen eine Excel-Arbeitsmappe mit einem geschützten Arbeitsblatt erhalten, die Sie zwar ansehen, aber nicht bearbeiten können. Jetzt müssen Sie Änderungen an der Datei vornehmen - doch der Kollege ist in Urlaub. Das Passwort, mit dem Sie über "Extras, Schutz“ den Blattschutz aufheben könnten, kennen Sie nicht.

Lösung:

Auf diese Schutzfunktion sollte man sich besser nicht verlassen. Sie ist nicht besonders sicher - Ihr Problem lässt sich deshalb mit einem Makro lösen. Kopieren Sie dazu einfach das Script :pcwBreaker.BAS auf Ihr System, und binden Sie es in Excel ein. Dazu starten Sie Excel, wählen "Extras, Makros, Visual Basic Editor“ und importieren das Script über "Datei, Datei importieren“ in ein neues Modul.

Laden Sie nun die Arbeitsmappe, öffnen Sie das geschützte Blatt, und starten Sie das Script über "Extras, Makro, Makros“. Nach einigen Minuten haben Sie vollen Zugriff auf das Tabellenblatt.

Zum Entschlüsseln muss das Makro gar nicht das Original-, sondern ein alternatives Passwort ermitteln. Dazu generiert das Script aus zwölf Zeichen bestehende mögliche Passwörter über ineinander verschachtelte "For…Next“- Schleifen und testet jedes auf Gültigkeit. Sobald es ein Passwort findet, das funktioniert, wird das Arbeitsblatt freigeschaltet.

Info für Profis:

Die Blattschutz-Verschlüsselung von Excel 2000 und XP ist relativ simpel. Jedem Zeichen des Passworts entspricht ein achtstelliger Binärwert (8 Bit). Dieser wird für die Verschlüsselung um seine Position im Passwort Bit-weise nach links verschoben (Left-Shift). Das Verschieben einer binären Zahl um ein Bit nach links entspricht im dezimalen Raum einer Multiplikation mit 2. Beim ersten Zeichen wird der Wert also um ein Bit verschoben, die Binärzahl verlängert sich auf neun Stellen. Beim zweiten Zeichen verschiebt sich der Wert um zwei Bit, die Binärzahl erweitert sich so auf zehn Stellen und so weiter.

Da die Länge der Binärzahl bei Excel auf 16 Bit begrenzt ist, erfolgt bei Kennwörtern, die länger als acht Zeichen sind, ab dem neunten Zeichen zusätzlich zum Left-Shift eine Bit-Rotation um die jeweils überzähligen Stellen. Somit verkürzt sich der binäre String immer um eine Stelle und bleibt ab dem neunten Zeichen 16-stellig. Alle einzelnen Werte, der Binärwert der Kennwortlänge und die hexadezimale Konstante 0xCE4B werden dann über "exklusives Oder“ (XOR) miteinander verknüpft. Daraus errechnet sich der Wert, der in der Tabellendatei gespeichert wird.

Eine Binärzahl mit 16 Stellen (16 Bit) liefert maximal zwei hoch sechzehn unterschiedliche Hash-Werte, also insgesamt "nur“ 65.536 Möglichkeiten. Aufgrund dieser Begrenzung kann nicht jedes mögliche Kennwort einen eindeutigen Hash-Wert erhalten. Genau diese Tatsache nutzt das Makro aus und findet in einem kleineren Werteraum immer ein alternatives Kennwort, über das sich der Schutz des Arbeitsblatts deaktivieren lässt.

Kommentieren Kommentare zu diesem Artikel (0)
686991