Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
268to272
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
268to272
268to272
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Dateischutz knacken - so hat's bei mir geklappt!

Dateischutz knacken - so hat's bei mir geklappt!
13.06.2003 18:31:30
Moritz
Hallo Interessierte,
hatte auch - wie so viele User - dass Problem, dass ich den Leseschutz einer Excel-Datei nicht mehr wußte, und doch dringend an die Daten ran wollte. Nachdem ich festgestellt habe - u.a. auch durch Beiträge hier im Forum - dass es ein entsprechendes "Knack"-Programm als Freeware nicht gibt, habe ich ein bischen rumprobiert, und folgenden Weg gefunden, der für viele Fälle funktionieren dürfte:

Bevor ihr euch aber durch meine "Schilderung" quält ein Hinweis: Die beschriebene Methode funktioniert nur dann halbwegs aussichtsreich, wenn das Passwort wirklich ein "Wort" oder maximal mit einer Zahl am Anfang ist. Ein Passwort wie "Jahr2002Wechsel" wird nicht ermittelbar sein, jedoch "JahresWechsel" oder ähnliches. Und außerdem basiert die Methode auf vorgegebenen Wörterbüchern, ist also auch durch deren Wortumfang begrenzt...allerdings stehen insgesamt über 19MByte Wörterbücher als TXT-Datei zur Verfügung. also eine ganze Menge... ;-))
Wie gesagt, bei mir hat die beschriebene Methode innerhalb von ca. 60 Minuten zum Erfolg geführt, "mein" Lese-Schreibschutz ist eine Sache der Vergangenheit!

a) Die Demoversion von ExcelKey von http://www.lostpassword.com/excel.htm runterladen, installieren und starten.
Das Programm arbeitet u.a. mit einem Wörterbuch -> das ist der Ansatz für den erfolgreichen "Freeware"-Einsatz!

b) Im Programm ExcelKey auf "Settings" gehen und unter "General" nur "Dictionary" anhackeln, die beiden "Brute-force" Methoden deaktivieren!

c) Jetzt auf die Mappe "Dictionary" gehen und bei "run for password from XX to YY characters long" für XX = 1 und YY = 15 oder 20 eingeben, also erst einmal die volle Bandbreite. Dazu noch alle Optionen für Mutations anhackeln! Mit [OK] beenden.

d)Jetzt im Hauptmenu mit "Recover" die zu knackende Datei auswählen. Das Programm startet automatisch mit den gewählten Einstellungen. Dabei werden alle Einträge des mitgelieferten Wörterbuches ausgetestet und "mutiert", also die unterschiedliche GROSS/klein-Schreibung ausprobiert sowie die Wörter rückwärts getestet.

e) Als Ergebnis können zwei Situationen eintreten:
e1) Ein Password wurde gefunden (allerdings werden dann nur die ersten zwei Zeichen angezeigt, der Rest ist verdeckt, ist ja schließlich Demo-Version)
e2) Das Password wurde nicht gefunden.

Jetzt geht es weiter für den Fall, dass das Passwort im Schritt e1) gefunden wurde:

f1) Solange in "Settings"-"Dictionary" die werte für die Wortlänge und den Umfang der Mutation ändern, bis die genaue Wortlänge und der Umfang der Mutation identifiziert wurde. Also, langsam die maximale Wortlänge runternehmen (15 - 14 - 13 - usw) bis kein Passwort mehr gefunden wurde. Dann wisst Ihr die genaue Länge des Wortes (und ja auch schon die ersten zwei Buchstaben!). Dann nach und nach die Mutation ausschalten, um einen Hinweis zu erhalten, ob eine solche Mutation verwendet wurde [Beispiel: Das gefundene Passwort ist "te*****", das Ergebnis kommt aber nur, wenn die Mutation "Capitalize the first letter" angeschaltet ist, so weiß man, dass im Wörterbuch das Wort in Wirklichkeit mit "T" beginnt]

Nach diesem Schritt sind also die ersten zwei Buchstaben sowie die genaue Länge des Passworts bekannt, und die eventuellen Abweichungen von dem Eintrag im Wörterbuch.

g1) Dann das Wörterbuch ("dict.txt", liegt im Programmverzeichnis)- am besten in Excel - öffnen und in Spalte B die Funktion =Länge(a1) bis zum letzten Eintrag nach unten kopieren, anschließend Spalte A+B mit "Daten" "Sortieren" nach "Spalte B" sortieren und anschließend alle Zeilen löschen, die NICHT die exakte Länge des Password haben. Wurde also als exakte Länge des Passwort "6" ermittelt, dann können alle Worte kürzer oder länger als 6 Buchstaben rausfliegen. Mit dem verbleibenden Rest muss noch getestet werden (falls die Mutation "Reverse the word" angeschlagen hat), ob das Wort in umgedrehter Zeichenfolge gültig ist. Dazu die Funktion "=VERKETTEN(TEIL(A1;x;1);TEIL(A1;x-1;1))wobei X = Länge Passwort ist. Das ergibt als Ergebnis die beiden letzten Zeichen des Wortes in Umgedrehter Reihenfolge. Jetzt alle Worte aussortieren (=löschen), die nicht mit den gefundenen zwei Anfangsbuchstaben des vom Programm ermittelten Password entweder am Anfang oder in umgedrehter Reihenfolge am Ende übereinstimmen.

h1) Jetzt dürften in Eurer Liste nur noch die Worte übrig sein, die genau die richtige Länge haben und mit den richtigen zwei Zwichen beginnen oder enden.... und ab hier ist die manuelle Suche gefragt, allerdings jetzt schon mit einer deutlich reduzierten Auswahl ( in meinem Fall waren es nur noch ca. 60 Passwörter), und meistens dürfte einem beim Anblick der Möglichkeiten das "vergessene" Passwort siedend heiß wieder einfallen

i1) => Problem gelöst

Hier geht es weiter, falls bei e2) das Passwort im ersten Anlauf nicht ermittelt werden konnte.

f2) Das Passwort wurde nicht gefunden, ist also im Wörterbuch nicht vorhanden. Also nächster Versuch, und zwar mit einem größeren oder besseren Wörterbuch. Geht nach "Settings" "Dictionary" und mit [F1] in die Hilfefunktion. Hier werden vier Links für weitere Wörterbücher angezeigt, u.a. für ein rein "Deutsches", aber auch "Französisch" und "Spanisch", sowie das "Große Wörterbuch", dass auch massenweise deutsche Wörter enthält, sowie Kombinationen von Wörtern und Zahlen. Diese Wörterbücher runterladen und in das Verzeichnis entpacken, in dem auch schon das mitgelieferte "dict.txt" liegt.

g2) Jetzt jedes dieser Wörterbücher ausprobieren (zu benutzendes Wörterbuch kann unter "Settings" "Dictionary" ausgewählt werden, und weitermachen wie bei c)

h2) Entweder habt ihr jetzt mit einem der Wörterbücher einen Treffer gelandet -> Glückwunsch, dann geht es weiter wie oben erklärt unter g1) oder keines der Wörterbücher hat einen Treffer gelandet, dann -> Schade, dann hat diese Methode doch nicht geklappt, denn sie funktioniert nur, wenn das Passwort wirklich ein Wort ist und nicht eine zu komplexe Zusammenstellung von Buchstaben und Zahlen. Z.B. "Jahr2002Wechsel" würde nicht gefunden werden...

So ich hoffe, irgendjemand ließt überhaupt bis hierhin, und noch besser, es hat etwas genützt!

P.S. Natürlich kann man auch die anderen "Knack"-Methoden des Programms ausprobieren, allerdings bekommt man dann wirklich nur die ersten zwei Zeichen des Passworts und der Versuch der Eingrenzung der Passwortlänge funktioniert auch nicht.

P.P.S Falls der Treffer im großen Wörterbuch "bigdict.txt" glückte, gibt es ein kleines Problem mit dem Einlesen dieser Datei zum Sortieren nach Excel, denn "bigdict.txt" enthält über eine Millionen Wörter und sprengt damit die Grenze von Excel. "bigdict.txt" muss im Editior geöffnet werden und dann der benötigte Wortbereich markiert und mit "kopieren" "einfügen" nach Excel gebracht werden! Damit ist es dann leider nicht möglich auf "umgedrehte" Worte, d.h. Treffer der Mutation "Reverse the word" zu analysieren ;-((

Viele Grüße aus Hamburg

Moritz


1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Hier ein kleines Hilfsprogramm :-))
13.06.2003 23:01:24
Ramses

Hallo,

Um die Datei "bigDict.txt" zu lesen und zu schreiben :-)
Damit du es ein wenig einfacher hast :-))

Das einlesen erfordert bei meinem 1.8 GHz Laptop ca 30 Sekunden pro Worksheet ( 65536 Zellen ) also ca. 8 Minuten.
Die Funktion "StrReverse" steht erst ab Excel 2000 zur Verfügung


Option Explicit

Sub Read_Bigdicttxt_File()
'Hilfsvariable für Anzahl Datensätze
Dim Text1 As String
'Variablen für den Array nötig
Dim TxtLines As Long, i As Long, n As Long
'Neue Mappe und Variables Tabellenblatt deklarieren
Dim tWkb As Workbook, tWks As String
'Für Office97 muss das Array TextArr als String definiert werden
'Entdeckt duch Gerd Z aus dem Herber Forum
Dim TextArr As Variant
Dim ReadFile As String
Dim OldStatusbar
'Dialog öffnen auf Basis von *.dat Files
ReadFile = Application.GetOpenFilename("DAT Files (*.txt;*.dat),")
'Schliessen einer geöffneten Datei
Close #1
'1. Öffnen der Datei
'Den Namen und Pfad bitte anpassen
Open ReadFile For Input As #1
'Die anzahl ist nötig um die Grösse des Arrays zu deklarieren
'Zähler auf 0 setzen
TxtLines = 0
Do While Not EOF(1)    ' Schleife bis Dateiende.
    Input #1, Text1    ' Hilfsvariable zum einlesen verwenden
    'Zähler hochzählen
    TxtLines = TxtLines + 1
Loop
'Schliessen der Datei weil Dateiende erreicht wurde
Close #1
'Erneutes Öffnen um zum Dateianfang zu kommen
Open ReadFile For Input As #1    ' Datei zum Einlesen öffnen.
'Array neu auf die Anzahl der Linien initialisieren
ReDim TextArr(TxtLines)
'Einlesen der Dateien in das Array
For i = 1 To TxtLines
    Input #1, TextArr(i)
Next i
Close #1
'Arbeitsmappe erstellen und zuweisen
Workbooks.Add
Set tWkb = ActiveWorkbook
'Alles löschen bis auf eine Tabelle
'>> Kosmetik :-)
For i = 2 To Worksheets.Count
    Application.DisplayAlerts = False
    Worksheets(i).Delete
    Application.DisplayAlerts = True
Next
OldStatusbar = Application.DisplayStatusBar
'Namen vergeben
Worksheets(1).Name = "Data1"
tWks = tWkb.Worksheets(1).Name
'Daten in aktuelles Sheet schreiben
n = 1
For i = 1 To TxtLines
    Application.StatusBar = "Datensatz " & i & " von " & TxtLines & " wird eingelesen"
    'Neue Tabelle anlegen wenn Zelle 65536 erreicht wurde
    If i Mod 65536 = 0 Then
        tWkb.Worksheets.Add after:=ActiveSheet
        ActiveSheet.Name = "Data" & i
        tWks = ActiveSheet.Name
        n = 1
    End If
    'Richtes Wort
    tWkb.Worksheets(tWks).Cells(n, 1) = TextArr(i)
    'Wort umgedreht
    tWkb.Worksheets(tWks).Cells(n, 2) = StrReverse(TextArr(i))
    n = n + 1
Next i
MsgBox "BigDict.txt vollständig eingelesen"
Application.DisplayStatusBar = OldStatusbar
End Sub

Sub Write_Rev_BigDictText()
Dim i As Long, n As Long, fData As Long
Dim tWks As String, cWks As Integer
Dim fName As String
Dim OldStatusbar
fName = "C:\bigDict.txt"
OldStatusbar = Application.DisplayStatusBar
'Zum Schreiben muss die Datei aus dem vorherigen Makro aktiv sein
For i = 1 To Worksheets.Count
    If Worksheets(i).Cells(65536) = "" Then
        cWks = i
        'Datensätze bestimmen >> Kosmetik
        fData = i * 65536
        fData = fData + Worksheets(i).Cells(65536, 1).End(xlUp).Row
    End If
Next i
'Sicherungsdatei anlegen
Name fName As fName & "_orig"
'eventuell offene Datei schliessen
Close #1
'Erneut anlegen udn öffnen
Open fName For Append As #1
tWks = Worksheets(m).Name
n = 1
For i = 1 To Worksheets.Count
    For n = 1 To 65536
        Application.StatusBar = "Datensatz " & i & " von " & fData & " wird geschrieben"
        If IsEmpty(Worksheets(i).Cells(n, 2)) Then Exit For
        'Schreibt die Reverse Daten aus Spalte 2 in das externe File
        Write #1, Worksheets(i).Cells(n, 2)
    Next n
Next i
Close #1
MsgBox "Reverse File geschrieben mit " & fData & " Datensätzen geschrieben!"
Application.DisplayStatusBar = OldStatusbar
End Sub 

     Code eingefügt mit Syntaxhighlighter 1.16

Gruss Rainer


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige