2016-08-02 19 views
0

Ich versuche, einen einfachen Bruteforcer für RAR-Dateien zu machen. Mein Code ist ...RarFile Python Modul

import rarfile 

file = input("Password List Directory: ") 
rarFile = input("Rar File: ") 

passwordList = open(file,"r") 


for i in passwordList: 

    try : 
     rarfile.read(rarFile, psw=i) 
     print('[+] Password Found: '+i) 

    except Exception as e: 
     print('[-] '+i+' is not a password ') 

passwordList.close() 

Ich denke, das hat mit meiner Verwendung des Moduls zu tun, denn wenn ich Eingabe eines Passwortliste, die ich bin 10000% sicher das Passwort an die rarFile enthält, wird die Ausnahme druckt .

Antwort

1

Das eigentliche Problem hier ist, dass Sie alle Ausnahmen abfangen, nicht nur die, die Sie wollen. Verwenden Sie also except rarfile.PasswordRequired: Das wird Ihnen zeigen, dass der Fehler kein fehlendes Passwort ist. Stattdessen gibt es im Rarfile-Modul keine Funktion read.

Werfen Sie einen Blick auf einige Documentation. Die Rar-Verschlüsselung erfolgt pro Datei, nicht pro Archiv.

Sie müssen ein Objekt aus der RarFile-Klasse erstellen und das Kennwort für jede Datei im Archiv versuchen. (Oder nur die ersten, wenn Sie wissen, dass verschlüsselt ist)

import rarfile 

file = input("Password List Directory: ") 
rarFilename = input("Rar File: ") 

rf = rarfile.RarFile(rarFilename) 
passwordList = open(file,"r") 
first_file = next(rf.infolist) 

for i in passwordList: 
    password = i.rstrip()   
    try: 
     rf.open(first_file, psw=password) 
     print(password, "found") 
    except rarfile.PasswordRequired: 
     print(password,"is not a password") 

Beim Öffnen und Zeilen aus einer Datei lesen, das „neue Zeile“ Zeichen am Ende der Leitung gehalten. Dies muss von jeder Zeile entfernt werden.

for i in passwordList: 
    password = i.rstrip() 
    try : 
     rarfile.read(rarFile, psw=password) 
     print('[+] Password Found: '+password) 
+0

Ich habe den Code entsprechend geändert, aber immer noch die gleiche Ausgabe wie zuvor erhalten. – OntologicalSin

+0

Der Catchall-Ausnahmehandler versteckt das eigentliche Problem. Es gibt keine rarfile.read-Funktion. –

+0

Nach dieser Änderung bekomme ich einen Fehler über das Objekt nicht subskribierbar – OntologicalSin