오늘 초에는 RAR 비밀번호 해독기를 계속 만들고 있었습니다. 암호가 느낌표인 테스트 RAR 파일에서 테스트 중이었지만 Decryptor를 사용하면 "Echo가 꺼졌습니다"라고만 표시됩니다. 버그는 코딩 하단의 "에코" 옆에 있습니다.
이것은 제가 지금까지 수행한 RAR 암호 해독기의 코딩입니다. (괜찮다면 더 많은 버그를 알려주시고 몇 가지 팁을 제공해 주실 수 있나요? 감사합니다.)
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 ===========================
답변1
문제가 echo
있는 !
경우EnableDelayedExpansion세트.
만약에EnableDelayedExpansion설정되면 !
특수 문자로 처리되며탈출해야 한다와 함께 ^
.
^
특수문자이므로 두 번 사용해야 합니다.
느낌표 탈출
쉘이 EnableDelayedExpansion 모드에서 실행 중이면 ! 문자는 변수를 나타내는 데 사용되므로 일반 문자로 처리하려면 다음과 같이 이스케이프 처리해야 합니다(두 번).
^^!
없이 EnableDelayedExpansion
:
@echo off
echo 1q2w!3e
산출:
1q2w!3e
와 함께EnableDelayedExpansion
그리고 탈출도 없어:
@echo off
Setlocal EnableDelayedExpansion
echo 1q2w!3e
산출:
1q2w3e
주목하세요없어진 !
출력에서.
와 함께EnableDelayedExpansion
그리고 탈출:
@echo off
Setlocal EnableDelayedExpansion
echo 1q2w^^!3e
산출:
1q2w!3e
EnableDelayedExpansion세 가지 방법으로 설정할 수 있습니다:
Setlocal EnableDelayedExpansion
배치 파일에서 사용cmd
스위치 부터 시작합니다/v
.HKLM
또는 아래의 레지스트리에서HKCU
[HKEY_CURRENT_USER\Software\Microsoft\명령 프로세서] "지연된 확장"= (REG_DWORD) 1=활성화 0=비활성화(기본값)