Seite 1 von 1

Fehler in meinem Code "Excpected bytes got class str"

Verfasst: Donnerstag 29. September 2016, 09:43
von juvestar91
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()

Re: Fehler in meinem Code "Excpected bytes got class str"

Verfasst: Donnerstag 29. September 2016, 10:06
von Sirius3
@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)

Re: Fehler in meinem Code "Excpected bytes got class str"

Verfasst: Donnerstag 29. September 2016, 11:49
von noisefloor
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

Re: Fehler in meinem Code "Excpected bytes got class str"

Verfasst: Donnerstag 29. September 2016, 12:29
von juvestar91
ha... manchmal sieht man den Wald vor lauter Bäumen nicht... " open ... as " hinzugefügt und nun funzt es... Danke vielmals