Hallo Leute!
Ich möchte mir einen rar Passwortknacker basteln, der Wortlisten Wort für Wort
abarbeitet bis das entsprechende Passwort gefunden ist.
Ich hatte versucht die Wörterbuch Textdatei einzulesen, in eine for i in ... Schleife zu packen und eine codierte rar Datei zu öffnen (öffnen wird das Passwort ja normalerweise abgefragt). Das vergebene Passwort war inim Wörterbuch vorhanden. Funktioniert nur leider nicht.
Bin noch ein ziemlicher Anfänger - meine Fragen:
1)wie öffne ich von Python aus Winrar - und wie kann ich ein Passwort einlesen?
2)ist der Ansatz mit der for Schleife überhaupt richtig, oder bin ich hier voll auf dem Holzweg?
rar passwort knacker
Ich würde nicht `WinRAR` sondern das Kommandozeilenprogramm benutzen. Das kann man zum Beispiel mit dem `subprocess`-Modul starten und das Passwort als Argument übergeben.
``for``-Schleife ist schon richtig. Wenn man über die Zeilen einer Datei iteriert, dann ist das Zeilenende-Zeichen am Ende jeder Zeile. Das wird aber wahrscheinlich nicht zu Deinem Passwort gehören, also musst Du es vorher entfernen. Zum Beispiel mit der `rstrip()`-Methode auf Zeichenketten.
``for``-Schleife ist schon richtig. Wenn man über die Zeilen einer Datei iteriert, dann ist das Zeilenende-Zeichen am Ende jeder Zeile. Das wird aber wahrscheinlich nicht zu Deinem Passwort gehören, also musst Du es vorher entfernen. Zum Beispiel mit der `rstrip()`-Methode auf Zeichenketten.
Wie macht man das? ... ich bin wirklich noch ganz am Anfang...BlackJack hat geschrieben:Ich würde nicht `WinRAR` sondern das Kommandozeilenprogramm benutzen. Das kann man zum Beispiel mit dem `subprocess`-Modul starten und das Passwort als Argument übergeben.
Vielen Dank!
Am einfachsten mit `subprocess.call()`. Ich habe mal ein `test.rar` angelegt, mit 'geheim' als Passwort.
`subprocess.call()` gibt den Rückgabewert des Programms zurück, der per Konvention 0 ist, wenn das Programm problemlos lief. Wie man sieht hält sich `unrar` daran.
Code: Alles auswählen
In [43]: import subprocess
In [44]: subprocess.call(['unrar', 't', '-pfalsch', 'test.rar'])
UNRAR 3.70 beta 3 freeware Copyright (c) 1993-2007 Alexander Roshal
Testing archive test.rar
Testing test.py 99%
Encrypted file: CRC failed in test.py (password incorrect ?)
Total errors: 1
Out[44]: 3
In [45]: subprocess.call(['unrar', 't', '-pgeheim', 'test.rar'])
UNRAR 3.70 beta 3 freeware Copyright (c) 1993-2007 Alexander Roshal
Testing archive test.rar
Testing test.py OK
All OK
Out[45]: 0