Загрузка данных


#!/usr/bin/env bash

DEVICE="/dev/sdX"

KNOWN="xavVRxk{kD%X13"

CHARS=('W' 'w' '2' '@' '3' '#' '4' '$' 'Z' 'z' 'X' 'x' 'M' 'm')

COUNT=0

try_pass() {
    local pass="$1"

    COUNT=$((COUNT + 1))

    # Показываем текущий пароль
    printf "\r[%6d] Проверяется: %-18s" "$COUNT" "$pass"

    if printf '%s' "$pass" |
        cryptsetup open "$DEVICE" luks-test --test-passphrase >/dev/null 2>&1
    then
        echo
        echo "================================="
        echo "Пароль найден!"
        echo "$pass"
        echo "================================="
        exit 0
    fi
}

echo "Пробую варианты с 3 символами..."

for a in "${CHARS[@]}"; do
for b in "${CHARS[@]}"; do
for c in "${CHARS[@]}"; do
    try_pass "${a}${b}${c}${KNOWN}"
done
done
done

echo
echo "Пробую варианты с 4 символами..."

for a in "${CHARS[@]}"; do
for b in "${CHARS[@]}"; do
for c in "${CHARS[@]}"; do
for d in "${CHARS[@]}"; do
    try_pass "${a}${b}${c}${d}${KNOWN}"
done
done
done
done

echo
echo "Пароль не найден."