Archivmanager mit Passwortspeicher

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Archivmanager mit Passwortspeicher

Beitrag von Richard » 14.03.2018 16:19:53

Hallo,

gibt es unter Linux einen Entpacker der Passwörter in eine Datei schrieben oder aus dieser lesen kann? Unter Windows hatte ich mal so ein Programm im Einsatz. Das wäre speziell bei Downloads aus dem Netz die immer wieder mit dem gleichen Passwort geschützt sind sinnvoll. Oder vielleicht einen universellen Entpacker (d.h. der mit vielen Formaten klar kommt) für das Terminal der aus einer solchen Passwortdatei lesen kann und dann die dort gespeicherten durchprobiert.

Benutzeravatar
hikaru
Moderator
Beiträge: 13559
Registriert: 09.04.2008 12:48:59

Re: Archivmanager mit Passwortspeicher

Beitrag von hikaru » 14.03.2018 16:51:22

CLI-Entpacker die Archive mit Passwörtern unterstützen, haben dafür einen entsprechenden Schalter (meist -p).
So einen Entpacker könntest du über ein Wrapperscript aufrufen, das den Passwortstring aus einer Textdatei ausliest und an den Entpacker weitergibt.

Pa D.
Beiträge: 285
Registriert: 17.04.2004 19:56:09

Re: Archivmanager mit Passwortspeicher

Beitrag von Pa D. » 14.03.2018 17:43:49

Richard hat geschrieben: ↑ zum Beitrag ↑
14.03.2018 16:19:53
Das wäre speziell bei Downloads aus dem Netz die immer wieder mit dem gleichen Passwort geschützt sind sinnvoll.
Der JDownloader hat so eine Funktion mit hinterlegbaren Passwörterm, die dann durchprobiert werden.

http://jdownloader.org/jdownloader2

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: Archivmanager mit Passwortspeicher

Beitrag von Richard » 15.03.2018 06:49:56

hikaru hat geschrieben: ↑ zum Beitrag ↑
14.03.2018 16:51:22
CLI-Entpacker die Archive mit Passwörtern unterstützen, haben dafür einen entsprechenden Schalter (meist -p).
So einen Entpacker könntest du über ein Wrapperscript aufrufen, das den Passwortstring aus einer Textdatei ausliest und an den Entpacker weitergibt.
Ich kenne bisher nur format-spezifische Tools, kein universelles.

Die Idee kam mir auch schon. Müsste ja dann so gehen, dass PW 1 versucht wird, bei Erfolg entpackt und sobst PW 2 versuchen. Wenn ich hier if verwende, wonach müsste ich denn prüfen lassen um den Misserfolg der PW-Prüfung heraus zu bekommen?

Benutzeravatar
hikaru
Moderator
Beiträge: 13559
Registriert: 09.04.2008 12:48:59

Re: Archivmanager mit Passwortspeicher

Beitrag von hikaru » 15.03.2018 08:18:45

Richard hat geschrieben: ↑ zum Beitrag ↑
15.03.2018 06:49:56
Ich kenne bisher nur format-spezifische Tools, kein universelles.
Du könntest in deinem Wrapperscript mit Debianfile den Archivtyp abfragen und dementsprechend das passende CLI-Programm aufrufen. Was anderes machen die grafischen Frontends auch nicht.
Richard hat geschrieben: ↑ zum Beitrag ↑
15.03.2018 06:49:56
Wenn ich hier if verwende, wonach müsste ich denn prüfen lassen um den Misserfolg der PW-Prüfung heraus zu bekommen?
Jedes Kommando gibt einen Status zurück. Dieser wird in der Shell-Variable $? gespeichert und ist im Erfolgsfall 0. Ein Entpackversuch mit einem falschen Passwort wird einen Status ungleich 0 zurückgeben.

breakthewall
Beiträge: 507
Registriert: 30.12.2016 23:48:51

Re: Archivmanager mit Passwortspeicher

Beitrag von breakthewall » 15.03.2018 09:18:07

Richard hat geschrieben: ↑ zum Beitrag ↑
15.03.2018 06:49:56
Wenn ich hier if verwende, wonach müsste ich denn prüfen lassen um den Misserfolg der PW-Prüfung heraus zu bekommen?
Einfach den Exitcode abprüfen.

Beispiel:

Code: Alles auswählen

#!/bin/bash
shopt -s extglob

source="/home/user/Downloads"
pwlist=(pass1 pass2 pass3 pass4)

for pass in "${pwlist[@]}"
   do
     for file in "$source"/+(*.zip|*.rar)
        do
          if packer .... -p "$pass" "$file"
            then
                printf '%s\n' "Datei $file wird entpackt .... (Passwort: $pass)"
            else
                printf '%s\n' "Datei $file konnte nicht entpackt werden. (Passwort: falsch)"
          fi
     done
done

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: Archivmanager mit Passwortspeicher

Beitrag von Richard » 15.03.2018 20:40:47

Wie würde das denn aussehen wenn die Passwörter jedes in einer neuen Zeile stehen, nicht hintereinander?

Benutzeravatar
hikaru
Moderator
Beiträge: 13559
Registriert: 09.04.2008 12:48:59

Re: Archivmanager mit Passwortspeicher

Beitrag von hikaru » 15.03.2018 22:04:41

Das ist ein Fall von "Datei auf Array lesen", wofür es einen ganzen Sack voller Möglichkeiten mit unterschiedlichen Vor- und Nachteilen gibt.
Wegen der Klarheit des Befehls und des geringen Schreibaufwands scheint mir das readarray-Builtin eine gute Option zu sein:

Code: Alles auswählen

readarray -t pwlist < PASSWORTDATEI

Richard
Beiträge: 639
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: Archivmanager mit Passwortspeicher

Beitrag von Richard » 30.03.2018 17:36:08

Hab das jetzt so gelöst.

Code: Alles auswählen

#!/bin/bash
file="$1"
readarray -t pwlist < passwortdatei

for i in "$1" ; do
 if [[ "$i"  == *.[zZ][iI][pP] ]] ; then
  for pass in "${pwlist[@]}" ; do
   unzip -P $pass "$i"
    if [ $? -eq 0 ]
     then
      exit 0
    fi
  done
 elif [[ "$i"  == *.7[zZ] ]] ; then
  for pass in "${pwlist[@]}" ; do
   7z e -p$pass "$i"
    if [ $? -eq 0 ]
     then
      exit 0
    fi
  done
 elif [[ "$i"  == *.[rR][aA][rR] ]] ; then
  for pass in "${pwlist[@]}" ; do
   unrar e -p$pass "$i"
    if [ $? -eq 0 ]
     then
      exit 0
    fi
  done
 fi
done
Soll mal als Kontextmenü erstellt werden, das habe ich noch nicht getestet. Ein Problem ist aber 7z, auch wenn ich da eher wenig passwortgeschützt Archive habe. Hier wird leider immer eien Ausgabedatei erstellt, auch wenn das Passwort falsch war (ich weiß nicht was passiert wenn auch der Dateiname verschlüsselt ist). Dann halt eine 0 Byte große Datei. Das ist laut Entwickler so, dass das Passwort erst gecheckt wird nachdem das Archiv schon geöffnet wurde. Dadurch wird natürlich schon beim zweiten Durchlauf eine Fehlermeldung ausgegeben, dass die Datei schon existiert. Ich will aber auf keinen Fall die Option benutzen Dateien ohne Rückfrage zu überschreiben.

Meine Idee war nun hier noch eine Prüfung reinzubringen, die 0 Byte große Ausgabedateien löscht. Dazu müsste man aber vorher erst eine Liste der Dateien im Archiv auslesen, dann prüfen ob diese Dateien im Zielordner vorhanden sind und ob diese 0 Byte groß sind? Falls es keinen einfacheres Weg gibt verzichte ich hier darauf 7z mit reinzunehmen. Außer jemand kennt ein anderes Tool das 7z entpacken kann und Passwörter im Terminal entgegennehmen kann. atool, Unpack und dtrx können das leider nicht. Auch kann unrar und zip kein 7z entpacken.

Antworten