Heute habe ich weiter an einem RAR-Passwort-Entschlüsseler gearbeitet. Ich habe ihn an einer Test-RAR-Datei getestet, bei der das Passwort nur ein Ausrufezeichen war, aber wenn ich meinen Entschlüsseler verwende, sagt er nur „Echo wurde ausgeschaltet“. Der Fehler befindet sich am Ende des Codes neben der Stelle, an der „Echo“ steht.
Dies ist der Code für den RAR-Passwort-Entschlüsseler, den ich bisher erstellt habe (und wenn es okay ist, könnt ihr mir noch weitere Fehler nennen und mir ein paar Tipps geben, danke Leute).
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 ===========================
Antwort1
Wenn Sie Probleme haben echo
, !
dann haben SieEnableDelayedExpansionSatz.
WennEnableDelayedExpansiongesetzt ist, dann !
wird es als Sonderzeichen behandelt undmuss entkommenmit ^
.
^
muss zweimal verwendet werden, da es auch ein Sonderzeichen ist.
Ausrufezeichen maskieren
Wenn die Shell im EnableDelayedExpansion-Modus ausgeführt wird, wird das Zeichen ! verwendet, um eine Variable zu kennzeichnen und muss daher (zweimal) maskiert werden, wenn Sie es als normales Zeichen behandeln möchten. Gehen Sie wie folgt vor:
^^!
Ohne EnableDelayedExpansion
:
@echo off
echo 1q2w!3e
Ausgabe:
1q2w!3e
MitEnableDelayedExpansion
und kein Entkommen:
@echo off
Setlocal EnableDelayedExpansion
echo 1q2w!3e
Ausgabe:
1q2w3e
Beachten Sie diefehlen !
in der Ausgabe.
MitEnableDelayedExpansion
und entkommen:
@echo off
Setlocal EnableDelayedExpansion
echo 1q2w^^!3e
Ausgabe:
1q2w!3e
EnableDelayedExpansionkann auf drei Arten eingestellt werden:
- Verwendung
Setlocal EnableDelayedExpansion
in einer Batchdatei - Angefangen
cmd
beim/v
Schalter. - In der Registry unter
HKLM
oderHKCU
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor] "DelayedExpansion"= (REG_DWORD) 1=aktiviert 0=deaktiviert (Standard)
QuellenEnableDelayedExpansion,Escape-Zeichen, Trennzeichen und Anführungszeichen