Hoje cedo, continuei criando um descriptografador de senha RAR. Eu estava testando em um arquivo RAR de teste com a senha sendo apenas um ponto de exclamação, mas quando uso meu Decryptor tudo o que diz é apenas "Echo foi desligado". O bug está localizado na parte inferior do código, próximo a onde diz "eco".
Esta é a codificação do RAR Password Decryptor que fiz até agora (e se estiver tudo bem, vocês podem me contar mais bugs e me dar algumas dicas, obrigado pessoal).
REM ============================================================
REM errorcode401.blogspot.in
@echo off
title Decryptor
mode con: cols=50 lines=50
copy "C:\Program Files\WinRAR\Unrar.exe"
SET PSWD=0
SET DEST=%TEMP%\%RANDOM%
MD %DEST%
:RAR
cls
echo ----------------------------------------------
echo GET DETAIL
echo ----------------------------------------------
echo.
SET/P "NAME=Enter File Name : "
IF "%NAME%"=="" goto NERROR
goto GPATH
:NERROR
echo ----------------------------------------------
echo ERROR
echo ----------------------------------------------
echo Sorry you can't leave the line blank.
pause
goto RAR
:GPATH
SET/P "PATH=Enter Full Path : "
IF "%PATH%" == "" goto PERROR
goto NEXT
:PERROR
echo ----------------------------------------------
echo ERROR
echo ----------------------------------------------
echo Sorry you can't leave the line blank.
pause
goto RAR
:NEXT
IF EXIST "%PATH%\%NAME%" GOTO START
goto PATH
:PATH
cls
echo ----------------------------------------------
echo ERROR
echo ----------------------------------------------
echo This file does not Exist.
pause
goto RAR
:START
SET /A PSWD=%PSWD%+1
echo 1q2w!3e
UNRAR E -INUL -P%PSWD% "%PATH%\%NAME%" "%DEST%"
IF /I %ERRORLEVEL% EQU 0 GOTO FINISH
GOTO START
:FINISH
RD %DEST% /Q /S
Del "Unrar.exe"
cls
echo ----------------------------------------------
echo CRACKED
echo ----------------------------------------------
echo.
echo PASSWORD FOUND!
echo FILE = %NAME%
echo CRACKED PASSWORD = %PSWD%
pause>NUL
exit
REM ===========================
Responder1
Se você está tendo problemas echo
, !
então você temHabilitar Expansão Atrasadadefinir.
SeHabilitar Expansão Atrasadaé definido, então !
é tratado como um caractere especial edeve ser escapadocom ^
.
^
deve ser usado duas vezes, pois também é um caractere especial.
Escapando dos pontos de exclamação
Quando o shell está sendo executado no modo EnableDelayedExpansion, o ! caractere é usado para denotar uma variável e, portanto, deve ser escapado (duas vezes). Se você deseja tratá-lo como um caractere normal, faça o seguinte:
^^!
Sem EnableDelayedExpansion
:
@echo off
echo 1q2w!3e
Saída:
1q2w!3e
ComEnableDelayedExpansion
e não há como escapar:
@echo off
Setlocal EnableDelayedExpansion
echo 1q2w!3e
Saída:
1q2w3e
Observe oausente !
na saída.
ComEnableDelayedExpansion
e escapando:
@echo off
Setlocal EnableDelayedExpansion
echo 1q2w^^!3e
Saída:
1q2w!3e
Habilitar Expansão Atrasadapode ser definido de três maneiras:
- Usando
Setlocal EnableDelayedExpansion
em um arquivo em lote - Começando
cmd
pelo/v
interruptor. - No registro sob
HKLM
ouHKCU
[HKEY_CURRENT_USER\Software\Microsoft\Processador de Comando] "DelayedExpansion"= (REG_DWORD) 1=habilitado 0=desabilitado (padrão)
FontesHabilitar Expansão Atrasada,Caracteres de escape, delimitadores e citações