Seite 1 von 1
Zip Problem
Verfasst: Donnerstag 21. Dezember 2017, 11:36
von Jaily
Hallo erst mal,
ich bin hier neu und versuche mich in den Anfängen der Pythonprogrammierung.
Nachdem ich schon viele Themen in Python durch habe und letzter Zeit nur noch das Gelernte wiederholen wollte, dachte ich mir, ich schreibe ein Skript womit ich meine dateien "zippen" kann. Erst ohne, dann mit Password.
Nun dachte ich mir, ich könnte die Passwortgeschützte Zip Datei auch mal versuchen zu entschlüsseln mit einer Art Bruteforce.
Die ersten paar Male klappten ganz super, aber nun habe ich das Problem, dass er immer das falsche Passwort ausgibt.
(statt z.B. aaa soll es dann arx oder sowas sein)
Ich bitte um Hilfe und ein bisschen Nachsicht, zumal ich hier heute das erste Mal einen Beitrag kommentiere

Re: Zip Problem
Verfasst: Donnerstag 21. Dezember 2017, 11:40
von Sirius3
@Jaily: kann man denn die Daten auch mit dem falschen Passwort fehlerfrei entpacken? Ansonsten kann man nix sagen, weil Du nicht verrätst, was Du genau machst, also keinen Code zeigst.
Re: Zip Problem
Verfasst: Donnerstag 21. Dezember 2017, 11:49
von Jaily
extrahiert wird zwar nichts, aber ich kann dann nach der "falschen Passwordeingabe " normal auf den Inhalt zugreifen
hier der code:
#!/usr/bin/python
import zipfile
from threading import Thread
def extractFile(File, password):
try:
zFile.extractall(pwd=password)
print "found: ",password
except:
pass
def main():
File = zipfile.ZipFile("test.zip")
passFile = open("lower.txt")
for line in passFile.readlines():
password = line.strip("\n")
t = Thread(target = extractFile, args=(zFile, password))
t.start()
if __name__ == "__main__":
main()
der output:
found: ga
found: ky
found: aaa
found: abc
found: agm
found: amq
found: aqg
found: ask
found: axl
found: azf
Re: Zip Problem
Verfasst: Donnerstag 21. Dezember 2017, 12:07
von noisefloor
Hallo,
bitte den Code in einen Code-Block setzen, weil a) ist er sonst schlecht lesbar, b) sind die essentiell wichigen Einrückungen nicht sichtbar.
Ansonsten:
* Variablennamen schreibt man in Python per Konvetion klein_mit_unterstrich.
* Nie nackte `try... except` benutzen, weil damit _alle_ Fehler abgefangen werden, inkl. Programmierfehler. Was zu unerwarteten Nebeneffekten und einem unerwartetem Programmverhalten führen kann.
* Warum entpackst du in einem Thread?
* `lower.txt`wird geöffnet, aber nicht geschlossen. Besser ist so wie so, mit dem `with`Statement zu öffnen
* Der gezeigte Code kann so eigentlich nicht funktionieren, weil `zFile` beim Aufruf des Threads nicht definiert ist.
* Bist sicher, dass bei der ZIP-Datei das Passwort korrekt hinterlegt ist?
Gruß, noisefloor
Re: Zip Problem
Verfasst: Donnerstag 21. Dezember 2017, 12:14
von Jaily
ok
also das nächste Mal mit Einrückungen zwecks Code gut lesbar
hmmmmm, erst mal gute Informationen, mit denen ich besser arbeiten kann
danke dafür
ja das Passwort ist hinterlegt und kann die Datei auch nur öffnen, wenn das richtige Passwort eingegeben wird.
ich schreibe den Code nochmal um, versuche auch keine Liste als Password, sondern versuche es mit "string.lowercase" + for schleife
versuch das anzuwenden was gerade bemängelt wurde und melde und poste dann wieder
danke für die nützlichen Informationen
Re: Zip Problem
Verfasst: Donnerstag 21. Dezember 2017, 12:53
von noisefloor
Hallo,
Python kann keine verschlüsselten ZIP-Dateien erzeugen, jedenfalls nicht das zipfile-Modul. Steht in der Doku in der Einleitung, habe ich aber auch gerade erst gesehen. Von daher "passen" wohl auch alle Passwörter...
Gruß, noisefloor
Re: Zip Problem
Verfasst: Dienstag 2. Januar 2018, 11:24
von Jaily
Nach langem hin und her, hier die Lösung meines Problems, klappt wunderbar:
import zipfile
def main():
zipfilename = "datei.zip"
dictionary = "wordlist.txt"
password = None
zip_file = zipfile.ZipFile(zipfilename)
with open(dictionary, 'r') as f:
for line in f.readlines():
password = line.strip('\n')
print line
try:
zip_file.extractall(pwd=password)
password = "Found Password%s" % password
except:
pass
print password
if __name__ == '__main__':
main()
Re: Zip Problem
Verfasst: Dienstag 2. Januar 2018, 11:38
von Sirius3
@Jaily: Du hast wieder vergessen, den Code in eine CodeBox zu packen. Eingrückt wird immer mit 4 Leerzeichen pro Ebene, nicht mal 2 und mal 4. Die Zeile mit `print line` ist zu weit eingerückt. Nackte except nie benutzen, da damit wirklich alles abgefangen wird (auch manche Programmierfehler).
Das readlines ist überflüssig, da man direkt über das Fileobjekt iterieren sollte.
Das Programm funktioniert auch nicht, da immer das letzte in der Wortliste ausgegeben wird.
Re: Zip Problem
Verfasst: Dienstag 2. Januar 2018, 17:11
von Jaily
hey,
jetzt wo du es sagst..........
;(
gibt's doch nicht!!!!
dann auf ein weiteres, anscheinend sitzen die anderen Sachen auch noch nicht so ganz.
Muss ja irgendwie möglich sein

Re: Zip Problem
Verfasst: Dienstag 2. Januar 2018, 19:35
von Sirius3
@Jaily: Du bist ja nah dran. Was muß passieren, wenn Du das richtige Passwort gefunden hast?
Re: Zip Problem
Verfasst: Donnerstag 4. Januar 2018, 08:55
von Jaily
Hey,
Das Programm soll einfach nur das richtige Passwort ausgeben und die Datei dann extrahieren.
Danke für den Tipp, dass es langsam "warm" wird

Muss nur einige Fehler korrigieren und alte gelernte Sachen wiederholen, mir fehlt einfach manchmal die Zeit und somit vergisst man vieles wieder

Re: Zip Problem
Verfasst: Dienstag 9. Januar 2018, 15:34
von Jaily
Hey
egal, wie ich das Programm jetzt geschrieben habe, es hat einfach entweder wieder mehrere richtige Passwörter gefunden, oder es ging gar nicht.
Mitlerweile verwende ich die Archivverwaltung in Linux um verschlüsselte zip Dateien zu erstellen.
mit ist klar, dass ich wahrscheinlich einen Katzensprung davon entfernt bin, aber ich komm einfach nicht drauf ;(
ich bitte um Hilfe