找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: wxcute

[ 新手习题 8 ] 批处理密码破译

[复制链接]
发表于 2010-7-22 13:39:45 | 显示全部楼层
这题呢。。。首先变量
set x=%systemroot:~-7%  截取变量%x%为windows


 if /i "!x:~%%i,1!"=="D" set d=%%i
 if /i "!x:~%%i,1!"=="S" set s=%%i
 if /i "!x:~%%i,1!"=="N" set n=%%i
set "!d!=!d!!n!!s!" 2>nul         这里由于当%%i为2,3,6时 ,变量d s n 才全部被定义 此时!d!才可以有意义。不难看出,%d%=3 %n%=2 %s%=6
此时set "!d!=!d!!n!!s!" 这句相当于 set "3=326"   所以变量%3%的值为326


if "!%d:~,1%!"=="!pwd!"  这句中%d:~,1%的值是3,所以!%d:~,1%!即为!3!,当输入密码326时,即可

密码326
发表于 2010-7-24 00:29:14 | 显示全部楼层

再做一个吧?

@echo off
echo      这里是国家国防部机密室
setlocal enableDelayedExpansion
set x=%username:~-13%
for /l %%i in (0 1 13) do (
 if /i "!x:~%%i,1!"=="s" set s=%%i
 if /i "!x:~%%i,1!"=="m" set m=%%i
 if /i "!x:~%%i,1!"=="d" set d=%%i
set "!s!=!m!!d!!s!" 2>nul
)
:a
set/p pwd=请输入密码:
if "!%s:~,1%!"=="!pwd!" (
 echo 这里是 BATHOME 最高机密处——欢迎进入!
) else (echo 非法输入,举起手来 ^^_^^)&pause&goto :a
pause>nul
发表于 2010-7-24 00:31:08 | 显示全部楼层

回复 17楼 的帖子

这个密码恐怕只有你自己知道。。。%username%。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 00:56 , Processed in 0.015416 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表