Fehler in meinem Code "Excpected bytes got class str"

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
juvestar91
User
Beiträge: 2
Registriert: Donnerstag 29. September 2016, 09:32

Hallo liebe Community,

nach 3 Tagen traue ich mich hier meine Frage zu stellen. Ich bin noch an den Anfängen von Python und versuche meine ersten Programme/Scripte zu schreiben. Nun hänge ich an meinem Zip Brute Forcer. Ich kriege die Meldung: pwd: expected bytes, got <class 'str'>. Nach langer recherche und blick ins Manual finde ich keinen anderen Weg als hier die Frage zu stellen...

hier mein Code:

Code: Alles auswählen

import zipfile
zip= input("Deine Zip Datei: ")
zip_file = zipfile.ZipFile(zip)
output_verbose = 2  
password_list = input("Bitte geben Sie ihr Wörterbuch an: ")
print(type(password_list))
with open(password_list,'rb'):
    for index, line in enumerate(password_list):
        try:
            pwd = line.strip()
            zip_file.extractall(pwd=pwd)
        except RuntimeError:
            if index % output_verbose == 0:
                print('{}. Das {} Wort stimmt nicht.'.format(index + 1, pwd))
        else:
            print('{}. Super ! gefundens Passwort: {}'.format(index + 1, pwd))
            break

zip_file.close()
Ich hatte den Code vorher vereinfacht erstellt ohne das ein Benutzer die wörterbuch und die zip datei angeben kann und da funktioniert alles Problemlos:

Code: Alles auswählen

import zipfile

zip_file = zipfile.ZipFile('evil.zip')
output_verbose = 2  
with open('wörterbuch.txt', 'rb') as password_list:
    for index, line in enumerate(password_list):
        try:
			
            pwd = line.strip(b'\n')
            zip_file.extractall(pwd=pwd)
        except RuntimeError:
            if index % output_verbose == 0:
                print('{}. Das {} Passwort stimmt nicht.'.format(index + 1, pwd))
        else:
            print('{}. super ! Passwort lautet: {}'.format(index + 1, pwd))
            break

zip_file.close()
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@juvestar91: schau mal genau, wann "password_list" an was gebunden ist. Wenn man den Index ab 1 laufen lassen will, kennt enumerate einen zweiten Parameter: enumerate(password_list, 1)
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

Tipp Nr. 2: im 1. Code (mit fixer Passwort-Datei hast du korrekterweise `with open(...) as ...`. In der 2. Version hast du das _nicht_.

Gruß, noisefloor
juvestar91
User
Beiträge: 2
Registriert: Donnerstag 29. September 2016, 09:32

ha... manchmal sieht man den Wald vor lauter Bäumen nicht... " open ... as " hinzugefügt und nun funzt es... Danke vielmals
Antworten