비밀번호 목록을 7zip에 전달

비밀번호 목록을 7zip에 전달

7zip, rar 등에 대한 추출 작업을 자동화하는 쉘스크립트를 작성 중입니다. 일반적으로 JDownloader2를 통해 파일을 다운로드할 때 JDownloader2가 이 작업을 수행하지만, 파일을 수동으로 다운로드할 때는 여전히 직접 압축을 풀어야 합니다. 아카이브가 비밀번호로 보호되지 않은 경우 스크립트는 백그라운드에서 정상적으로 실행될 수 있습니다. 그러나 아카이브가 비밀번호로 보호되어 있으면 비밀번호를 수동으로 입력할 수 없기 때문에 추출이 실패합니다. 그래서 비밀번호 목록을 스크립트에서 7zip 또는 unrar로 전달하여 비밀번호를 한 줄씩 읽어 올바른 비밀번호를 얻을 수 있는 쉬운 방법이 있는지 궁금합니다.

답변1

다음은 비밀번호 목록을 가져와 각 줄을 테스트하고 비밀번호가 올바른지 추출하는 쉘 스크립트입니다.

#!/bin/bash
passwordlist="/path/to/password-list"
outdir="/wherever"
cat "$passwordlist" | tr -d '\r' | while IFS= read -r PW 
do 
    if [[ $(7z l -p"$PW" "$1" 2>&1 | grep --count "ERROR") == 0 ]] 
    then
        echo "$PW" 
        7z x -p"$PW" -o"$outdir" -y "$1" 
        exit 0
    fi
done

관련 정보