我有一小段代码用于使用单词列表文件破解WinRAR存档密码。
title RAR Crack v_2.0
echo off
color f0
set dest=%temp%\%random%
md %dest%
cls
echo.
echo -----------------------------------------
echo ^| RAR CRACK v_2.0 - BY NOOR (#NullByte) ^|
echo -----------------------------------------
echo.
echo Drag and drop the archive to this window and press ENTER
set /p arch=
echo.
echo Drag and drop the wordlist to this window and press ENTER
set /p word=
cls
echo.
echo Starting Process . .
timeout /t 2 /nobreak>nul
color f5
cls
echo.
echo Starting Process . . .
timeout /t 1 /nobreak>nul
:start
for /F %%A in (%word%) do call :process %%A
color 0c
cls
echo.
echo -----------------------------------------
echo ^| RAR CRACK v_2.0 - BY NOOR (#NullByte) ^|
echo -----------------------------------------
echo.
echo.
echo PASSWORD NOT FOUND!
echo.
echo.
echo Author: Hussain Noor Mohamed (#NullByte)
echo E-mail: noor.xbyte@mail.com
echo.
echo Your suggestions are of great value!
pause>nul
exit
:process
cls
echo.
echo Current Password: %1
unrar e -inul -p%1 "%arch%" "%dest%"
if /i %errorlevel% equ 10 goto error
if /i %errorlevel% equ 0 goto finish %1
exit /b
:finish
color 0a
cls
echo.
echo -----------------------------------------
echo ^| RAR CRACK v_2.0 - BY NOOR (#NullByte) ^|
echo -----------------------------------------
echo.
echo.
echo PASSWORD FOUND!
echo.
echo ARCHIVE : %arch%
echo WORDLIST : %word%
echo PASSWORD : %1
echo.
echo.
echo Author: Hussain Noor Mohamed (#NullByte)
echo E-mail: noor.xbyte@mail.com
echo.
echo Your suggestions are of great value!
pause>nul
exit
:error
color ce
cls
echo.
echo "%arch%" is not a valid rar file!
pause>nul
exit
问题在于它并不那么快。 (这很快,但不符合我的期望。)如果你们有人能提出一种让程序更快的方法,那真的很感激。
请注意,请不要复制我的源代码!!
答案 0 :(得分:0)
正如斯蒂芬所说,你的大部分CPU时间都进入了unrar运行状态。以下是我认为可以帮助你的一些事情。
您在所有文件上运行unrar。如果您的存档包含大/多个文件并且您知道它们都具有相同的密码(这是通常的情况),那么您可以通过这样做节省一些时间:获取存档中第一个文件的名称(unrar lb .. ..)并且只测试那个(unrar t ... FILE)。在开始测试密码之前,您应该只获取一次文件名。
您正在按顺序运行unrar,这意味着您不会利用现代CPU功能(如多核/线程)。大多数密码破解程序启动多个并行进程/线程以同时测试更多密码,从而提高吞吐量。但是这对批处理文件来说更难处理。
您在提取模式下运行unrar,它假定某些磁盘活动(至少打开和关闭文件)。如果你在测试模式(unrar t)中运行它,你可以节省一些额外的CPU滴答,但这将是最小的。
由于文件不会更改并且您密切使用它们,因此Windows会将unrar和您的存档(如果可能)缓存在RAM中,因此RAM磁盘对您几乎没有任何好处(另请参阅#3)。
我相信1和2是最重要的问题,可以让你获得一些速度。在任何情况下,破解密码本身都是一项耗时的任务。