[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
无语。竟然还在用%的形式,再怎么加密都是白搭。。。
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

为什么一定要 IF 对比呢?
感觉,用findstr /x 就可以啊..
比如:
  1. set/p =请输入密码:<nul&findstr /x /v "12345" >nul &&echo no ||echo pass
复制代码
因为不管输入什么,最后都要一个ctrl+z 结束,被限定在findstr命令中。
加 /V 是为了防止多行暴力破解。
不过又发现一个问题 =.=, 直接ctrl+z 不输密码也通过,晕

[ 本帖最后由 caruko 于 2010-7-6 13:31 编辑 ]

TOP

另外,楼主的那个\\的
如果set pass=1" neq "2
就会报错,提示 '\\"12345"\\' 不是内部或外部命令,也不是可运行的程序或批处理文件。
set pass=1" newq "2" echo.

[ 本帖最后由 caruko 于 2010-7-6 14:03 编辑 ]

TOP

=============================================
解决方法:
1.密码错误直接清屏+跳转,不留暂停机会
2.标签尽量不要太常规化,如start,test不可以,标签尽量能代表意义,又有一定的破解难度

[ 本帖最后由 canyuexiaolang 于 2010-7-6 15:25 编辑 ]

TOP

回复 3楼 的帖子

天啊、、、、
你是神啊
诶诶、把你的代码全部复制到我的密码输入内
直接爆源码啦
set /p pass=请输入密码: " neq "bathome"  (call type "%~f0" & pause) else call type "%~f0" & pause
==============================================
  1. 请输入密码:set /p pass=请输入密码: " neq "bathome"  (call type "%~f0" & pause) e
  2. lse call type "%~f0" & pause
  3. @echo off&set acc123=0
  4. :[kelly]
  5. set /a acc123+=1
  6. set pass=
  7. if not "%acc123%"=="1" set b=密码错误,&set c=重新
  8. set /p pass=%b%请%c%输入密码:
  9. if "\\%pass%\\"=="\\12345\\" goto ilove~
  10. cls&goto [kelly]
  11. )
  12. :ilove~
  13. echo 密码正确!&ping 127.0.0.1>nul请按任意键继续. . .
复制代码
==============================================================
解决方法:
限制密码长度,密码多长,用set截取多长
==============================================================
综上所述,完整代码如下:
  1. @echo off&set acc123=0
  2. :[kelly]
  3. set /a acc123+=1
  4. set pass=
  5. if not "%acc123%"=="1" set b=密码错误,&set c=重新
  6. set /p pass=%b%请%c%输入密码:
  7. set pass=%pass:~0,5%
  8. if "\\%pass%\\"=="\\12345\\" goto ilove~
  9. cls&goto [kelly]
  10. )
  11. :ilove~
  12. echo 密码正确!&ping 127.0.0.1>nul
复制代码

[ 本帖最后由 canyuexiaolang 于 2010-7-6 15:24 编辑 ]

TOP

换个思路:
这个思路和密码以md5方式存储在 cookie文件里的想法相同。
  1. 等待输入密码 set/p passX=?
  2. 将passX字符串转换为特定的固定长度字符串 passY
  3. 将转换的passY 与 源代码里存储的密码串password 进行比较 ? 相同则通过,不同则密码错误。
复制代码

TOP

我这个代码测试不行的嘛
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set/p str=请输入密码:
  4. set n=96
  5. for %%b in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
  6.     set /a n+=1
  7.     call set str=%%str:%%b=!n!%%
  8. )
  9. if "!str!"=="9897116104111109101" (echo 恭喜) else (echo 没猜对)
  10. pause
复制代码

本意是想转换为ascii码,再进行其他处理,但是想测试一下这个东西发现不可以破解

[ 本帖最后由 sgaizxt001 于 2010-7-9 08:03 编辑 ]
努力学习,努力挣分

TOP

楼山的也可以破解
创建一个2.bat ; 里面写echo;%*
然后密码为: 1"=="1" 2 "
输出显示 ""=="9897116104111109101" (echo 恭喜) else (echo 没猜对)

TOP

楼上的我怎么试验不成功呢,能否给我一个完整破解的代码我看看?我想学学这方面的东西

不过我直接输入9897116104111109101就通过了,所以想弄复杂一点

[ 本帖最后由 sgaizxt001 于 2010-7-10 07:32 编辑 ]
努力学习,努力挣分

TOP

22楼的是字母替换,但是数字不替换,所以一般的密码如果插入CMD命令就无法运行..
但是如果运行的命令或者程序是数字呢? 那么仍然有效..
所以你创建一个以数字为名字的bat脚本 2.bat;里面写一个命令 echo;%*

if "!str!"=="9897116104111109101" (echo 恭喜) else (echo 没猜对)
如果密码为1"=="1" 2 "
实际运行起来就是
if "1"=="1" 2 ""=="9897116104111109101" (echo 恭喜) else (echo 没猜对)
2 实际上调用了2.bat;
后面的""=="9897116104111109101" (echo 恭喜) else (echo 没猜对) 就作为参数传递给2.bat
然后2.bat运行命令 echo %*,就把 ""=="9897116104111109101" (echo 恭喜) else (echo 没猜对)  显示出来了

TOP

今天看到一个密码隐藏的,就想用choice来做。
好处是一次只输入一个字符,输入不是预先设置的字符输入不进去,if 语句纯粹依靠con:输入破解几乎不可能;
并且字符可以每次运行都随机排列,即使得到chioce后的errorlevel,也无法破解出密码原文。

下面是一个示例代码
  1. @echo off
  2. set "passwd=testpasswd123"
  3. set "pwdlist=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
  4. ::这个pwdlist可以增加代码,每次运行都随机排列。
  5. set /a n=-1
  6. set ck=0
  7. set /p=请输入密码:<nul
  8. :loop
  9. set /a n+=1
  10. choice /C %pwdlist%  /N >nul
  11. if %errorlevel% lss 1 goto :out
  12. if %errorlevel% equ 255 goto :out
  13. set /a df=%errorlevel%-1
  14. set /p=*<nul
  15. set ps=!pwdlist:~%df%,1!
  16. if "!passwd:~%n%,1!"=="!ps!" ( set "ck=!ck!0" ) else ( set "ck=!ck!1")
  17. set /a nn=n+1
  18. if "!passwd:~%nn%,1!"==""   if !ck! equ 0 (goto :pass ) else (goto :out)
  19. goto :loop
  20. :out
  21. echo;密码错误!
  22. goto :eof
  23. :pass
  24. echo;密码正确!
  25. goto :eof
复制代码

[ 本帖最后由 caruko 于 2010-7-12 22:11 编辑 ]

TOP

还是不行啊,怎么回事呢?
努力学习,努力挣分

TOP

返回列表