|
|
发表于 2010-7-5 15:23:29
|
显示全部楼层
还是在cn-dos时写下的
反暴力破解(密码乱序+复制后不可用):- @rem dmndso-cmw
- @echo off
- rem 原始密码为wdmmcn-dos
- set /p pass=<%~nx0
- set pass=%pass:~5%
- call :Return %%pass%%
- for /f "tokens=1" %%i in (%~nx0) do if "%%i"=="::" goto Judges
- for /f "delims=" %%i in ('cd') do echo.:: %%i\%~nx0>>%~nx0
- :Judges
- for /f "tokens=1* delims= " %%i in (%~nx0) do set puth=%%j
- for /f "delims=" %%i in ('cd') do if "%%i\%~nx0"=="%puth%" goto pass
- echo 错误!不是原文件。&del /q 复件>nul 2>nul&ping /n 2 127.1>nul&goto :eof
- :pass
- set /a n+=1
- set /a m=4-%n%
- if %m% equ 0 cls&echo 对不起,因没正确输入密码,本程序将自动结束。&ping /n 3 127.1>nul&goto :eof
- cls&set /p pwd=请正确输入密码,你还有%m%次机会:
- if not "%pwd%"=="%password%" goto pass
- set password=&set a=&set b=&set n=0&set new=1
- cls&echo 密码正确,直接回车继续使用原密码,如要更改请输入新密码。
- set /p new=输入新密码:
- if "%new%"=="1" goto run
- call :change %%new%%
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('type %~nx0') do (
- set /a n+=1
- if !n! equ 1 (
- echo @rem %password%>%~nx0
- ) else (
- endlocal&echo %%i>>%~nx0
- )
- )
- :run
- cls&echo 程序开始运行...
- pause>nul&goto :eof
- :Return
- set a=%pass:~-1,1%
- if not "%pass:~1%"=="" (
- set b=%pass:~,1%
- ) else (
- set b=
- )
- set password=%password%%a%%b%&set pass=%pass:~1,-1%
- if defined pass goto Return
- goto :eof
- :change
- set a=%new:~,1%%a%&set b=%b%%new:~1,1%&set new=%new:~2%
- if defined new goto change
- set password=%b%%a%
复制代码 |
|