Пакетный скрипт не работает правильно - PullRequest
0 голосов
/ 27 июня 2011

Я создал пакетный скрипт для взлома тома TC, учитывая текстовый список известных паролей, разделенных новой строкой. К сожалению, это не работает правильно. Когда он идет по каждой строке, он не читает пробелы. Если у меня есть запись «HelloWorld», она будет читать «Helloworld», но если запись «Hello World», то она будет читать только «Hello». Код:

@echo off
echo "--- Starting ---"

set drive=V
set tcexe="C:\Program Files\TrueCrypt\TrueCrypt.exe"
set tcvol="C:\Users\Ryan\Desktop\rawr.tar.gz"

:Start
for /f %%i in (passlist.txt) do call :Crack %%i

:Crack
set pass=%1
echo Trying %pass%...
%tcexe% /q /l %drive% /v %tcvol% /p %pass% /s /e /b
if exist %drive%: goto :End
goto :eof

:End
echo "TC volume cracked!"
echo The password is %pass%
pause

Может кто-нибудь решить эту проблему для меня? Благодарю.

1 Ответ

1 голос
/ 27 июня 2011

Используйте

for /f "delims=" %%i in (passlist.txt) do call :Crack "%%i"

и

:Crack
set pass=%1

for /f выполняет токенизацию на входе и по умолчанию разделяет токены с пробелами. И если вы передаете их подпрограммам, вам нужно процитировать аргумент.

Другой вариант - заключать в кавычки не строку for, а set pass="%*". В любом случае, вам нужны кавычки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...