Как определить код ошибки для извлечения с неверным паролем в начале

Я работаю над атакой грубой силы, такой как программное обеспечение (файл .bat), которое попытается извлечь файл с некоторыми предопределенными паролями. Мой алгоритм примерно такой: -

"C:\Program Files\WinRAR\WinRAR.exe" x -inul -ppassword1 "path to my rar file" 
if %ERRORLEVEL% GEQ 1 GOTO try2
GOTO exit

:try2
"C:\Program Files\WinRAR\WinRAR.exe" x -inul -ppassword2 "path to my rar file" 
if %ERRORLEVEL% GEQ 1 GOTO try3
GOTO exit

:try3
"C:\Program Files\WinRAR\WinRAR.exe" x -inul -ppassword3 "path to my rar file" 
if %ERRORLEVEL% GEQ 1 GOTO try4
GOTO exit

как это. Все работает согласно моим ожиданиям с проблемой в 10% случаев.

В обычном случае, то есть для ручного извлечения (не с помощью моего программного обеспечения), я обнаружил: есть определенные файлы rar, которые начинают извлекаться даже с неправильным паролем, и когда извлечение близится к завершению, отображается сообщение об ошибке «Файл поврежден или неверный пароль». " . Мое программное обеспечение в таких случаях сталкивается с большой проблемой => оно извлекает один и тот же файл несколько раз, потому что ERRORLEVEL равен 0 (пока извлечение не закончится). Есть ли способ изменить такие файлы rar, чтобы они не начинали распаковку с неправильными паролями. Или любой способ обнаружить код ошибки в начале извлечения (не ближе к концу извлечения).


person Deb    schedule 14.01.2014    source источник


Ответы (1)


Я не могу помочь вам с проблемой WinRAR, но я могу помочь вам с пакетным методом:

@echo off
setlocal EnableDelayedExpansion

for %%p in (password1 password2 ... passwordEtc
            passwordN passwordM) do (
   "C:\Program Files\WinRAR\WinRAR.exe" x -inul -p%%p "path to my rar file" 
   if !ERRORLEVEL! EQU 0 GOTO exit
)
echo Unable to extract after tried all paswords...
person Aacini    schedule 14.01.2014
comment
Это было действительно полезно. Не могли бы вы помочь мне в этом http://stackoverflow.com/questions/21118929/how-to-hide-error-messages-in-7zip-command-line ? - person Deb; 14.01.2014