Te he echo este script, No funciona como debería y le faltan cosas, Pero puedes probarlo, es solo un ejemplo para que veas lo que neecsitas hacer más o menos...
Lo he dejado a la mitad porque es un comecocos este tema,No quiero pensar más, tardaría dias en hacerlo bien, y bien echo, yo prefiero usar diccionarios de palabras para el método BruteForce xD
Saludos... y Suerte.
@echo off
Title Test
Mode con cols=110 lines=10
:Vars
:~~~~
set "Alphabet=abcdefghijklmn¤opqrstuvwxyzABCDEFGHIJKLMN¥OPQRSTUVWXYZ0123456789.,_+#?¨^=^<^>^(^)^/^%%"
Set Characters=
Set Passtemp=
Set Password=z
:Loop
:~~~~
FOR /f "tokens=*" %%a in ('"echo %Alphabet%"') do (
Set Characters=%%a
call :Verify
Call :Count_character
)
:Verify
:~~~~~~
If "%Characters%" EQU "%PASSWORD%" (
echo el pass es "%Characters%"
pause >nul
) ELSE (
Goto :EOF
)
:Count_character
:~~~~~~~~~~~~~~~
Cls
Set "Alphabet=%Alphabet:~1%"
Call :Count_BruteForce
echo.
echo El alfabeto es: "%alphabet%"
echo.
echo El caracter es: "%Characters:~,1%"
echo.
echo El passtemp es: %passtemp%
echo.
pause
Goto :LOOP
:Count_BruteForce
:~~~~~~~~~~~~~~~~
If not defined passtemp (Set passtemp="%Characters:~,1%") else (Set passtemp="a%Characters:~,1%")
Goto :EOF