У меня есть скрипт для угадывания пароля тома TrueCrypt. Это должно работать, но TrueCrypt или VeraCrypt говорят, что он вызывается с неверными параметрами командной строки. Может кто-нибудь помочь с этим?

#!/bin/bash
working="working.txt"
tc=veracrypt
prefix="--text --keyfiles= --protect-hidden=no --non-interactive -p "
sufix="gentle.tc /mnt"
count=0

echo archive=gentle.tc

while read -r p; do

    echo -en "\033[2K\r$p"

    if $tc "$prefix\"$p\" $sufix"; then echo "$p" >>$working ; exit ; fi

    if $tc "$prefix\"$p\n\" $sufix"; then echo "$p" >>$working ; exit ; fi

    if $tc "$prefix\"$p\r\" $sufix"; then echo "$p" >>$working ; exit ; fi

    if $tc "$prefix\"$p\r\n\" $sufix"; then echo "$p" >>$working ; exit ; fi

    b64=$(echo -n "$p" | base64)
    md5=$(echo -n "$p" | md5sum | gawk '{print $1}')
    sha1=$(echo -n "$p" | sha1sum | gawk '{print $1}')
    sha256=$(echo -n "$p" | sha256sum | gawk '{print $1}')

    if $tc "$prefix\"$b64\" $sufix"; then echo "$p" >>$working ; exit ; fi

    if $tc "$prefix\"$md5\" $sufix"; then echo "$p" >>$working ; exit ; fi

    if $tc "$prefix\"$sha1\" $sufix"; then echo "$p" >>$working ; exit ; fi

    if $tc "$prefix\"$sha256\" $sufix"; then echo "$p" >>$working ; exit ; fi

    count=$((count+1))

done < list.txt
echo COUNT=$count

1 ответ1

0

Итак, я изменил скрипт, чтобы в нем не было переменных, теперь он работает нормально:

#!/bin/bash
working="working.txt"
count=0

echo archive=gentle.tc

while read -r p; do

    echo -en "\033[2K\r$p"
    echo "$p" >> tested.txt

    if truecrypt --text --keyfiles= --protect-hidden=no --non-interactive -p "$p" gentle.tc /mnt 2>>errors.txt; then echo "$p" >>$working ; exit ; fi

    if truecrypt --text --keyfiles= --protect-hidden=no --non-interactive -p "$p\n" gentle.tc /mnt 2>>errors.txt; then echo "$p" >>$working ; exit ; fi

    if truecrypt --text --keyfiles= --protect-hidden=no --non-interactive -p "$p\r" gentle.tc /mnt 2>>errors.txt; then echo "$p" >>$working ; exit ; fi

    if truecrypt --text --keyfiles= --protect-hidden=no --non-interactive -p "$p\r\n" gentle.tc /mnt 2>>errors.txt; then echo "$p" >>$working ; exit ; fi

    b64=$(echo -n "$p" | base64)
    md5=$(echo -n "$p" | md5sum | gawk '{print $1}')
    sha1=$(echo -n "$p" | sha1sum | gawk '{print $1}')
    sha256=$(echo -n "$p" | sha256sum | gawk '{print $1}')

    if truecrypt --text --keyfiles= --protect-hidden=no --non-interactive -p "$b64" gentle.tc /mnt 2>>errors.txt; then echo "$p" >>$working ; exit ; fi

    if truecrypt --text --keyfiles= --protect-hidden=no --non-interactive -p "$md5" gentle.tc /mnt 2>>errors.txt; then echo "$p" >>$working ; exit ; fi

    if truecrypt --text --keyfiles= --protect-hidden=no --non-interactive -p "$sha1" gentle.tc /mnt 2>>errors.txt; then echo "$p" >>$working ; exit ; fi

    if truecrypt --text --keyfiles= --protect-hidden=no --non-interactive -p "$sha256" gentle.tc /mnt 2>>errors.txt; then echo "$p" >>$working ; exit ; fi

    count=$((count+1))

done < list.txt
echo COUNT=$count

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .