esp8266如何破解wifi密码及详细步骤

电子魔法师 发表于 2018-05-24 08:57:22 收藏 已收藏
赞(1) •  评论(2

esp8266如何破解wifi密码及详细步骤

电子魔法师 发表于 2018-05-24 08:57:22

  ESP8266连接wifi

  1、建立工程

  我开发的时候比较早,用的是NONOS_v1.5.0的sdk,最新的v2.1.0的sdk烧录好固件后,上电会一直出Fatal exception 28的错误,搞了一天没弄清楚,所以用还留着的v1.5.3的sdk讲解,具体使用方法不会有很大改变,详细也可以参考API文档。

  打开解压sdk包,将example文件夹下的IOT_Demo复制替换到app文件夹下,并将driver_lib/include/driver下的uart.h、uart_register.h复制到app/include下,driver_lib/driver下uart.c复制到app/driver下,同时将driver_lib下Makefile文件改名或者删除,懂makefile的朋友可以自行修改makefile文件否则会出现编译错误,目录结构如下。

esp8266如何破解wifi密码及详细步骤

  我们主要修改的是user_main.c这个文件,将user_init()函数是程序入口,里的内容全删了

  此外头文件修改为

  #include “ets_sys.h”

  #include “osapi.h”

  #include “user_interface.h”

  #include “uart.h”1234

  user_rf_pre_init()这个函数不要删除,放着即可,这样user_main.c文件只有void user_rf_pre_init(void)、void user_init(void)这两个函数,以及4个头文件。

  2、连接wifi

  要连接wifi首先要指定要连接的wifi账号和密码,则需要定义两个变量来存放它们,同时还需要定义一个结构体用于存放:Wi-Fi Station 接口参数。

  struct station_config station_cfg;

  uint8 ssid[]=“xxx”; //wifi名

  uint8 password[]=“xxx”; //wifi密码123

  新买到的模块默认是作为AP,这里我们需要将它修改作为Station,这样才能连wifi,这里我将这几个操作放入一个函数里面。

  void ICACHE_FLASH_ATTR

  user_set_station_config(void)

  {

  wifi_set_opmode(STATION_MODE); //设置为STATION MODE

  os_strcpy(station_cfg.ssid, ssid); //ssid名称

  os_strcpy(station_cfg.password, password); //密码

  wifi_station_set_config(&station_cfg); //设置WIFI帐号和密码

  }12345678

  注:添加ICACHE_FLASH_ATTR宏定义是因为8266的iRam空间有限,所以上电启动时不能把所有数据都放入iRam,只有在需要用到的时候才载入,因此推荐一般的函数都加ICACHE_FLASH_ATTR。

  这样我们就能把这个函数放到user_init()中了,如下所示。

  void user_init(void)

  {

  uart_init(BIT_RATE_115200,BIT_RATE_115200); //设置波特率为115200

  os_printf(“SDK version:%s\n”, system_get_sdk_version()); //打印sdk版本

  user_set_station_config(); //set STATION config

  //user_set_station_config()中调用wifi_station_set_config(&station_cfg)

  //底层会自动连接对应路由,不需要调用 wifi_station_connect 来进行连接。

  }12345678

  编译通过后烧入固件就能查看效果了。

esp8266如何破解wifi密码及详细步骤

 

  esp8266如何破解wifi密码及详细步骤

  1、esp8266模块

  首先,你要有一块esp8266模块,像这样的,最好是有底板的,带Micro口的,这些淘宝上都可以搜到的,我的就是淘宝上买的,大概30-40RMB左右,当然,如果你的动手能力比较强的话可以自己做底板。

esp8266如何破解wifi密码及详细步骤

  2、将固件下载到esp8266中

  在这里你需要下载两个东西,就是Flash下载工具和固件

  Flash下载工具:http://espressif.com/zh-hans/support/download/other-tools

  将自己的esp8266插到电脑上,确定连接没问题的话打开设备管理器看下自己的串口是多少。

  将下载的Flash下载工具解压,打开ESPFlashDownloadTool_v3.4.9.2.exe,打开是这样的,选择esp8266 DownloadTool

esp8266如何破解wifi密码及详细步骤

  在这里需要注意的几点是:

  (1)固件选择之前下载的固件DNS.ino.ino.nodemcu.bin。

  (2)地址输入0×00000(可能地址这一栏会出现红色的状况,导致无法烧入固件,此时把下载器关了重启下,然后把地址那栏清空再自己手动输入就好了)。

  (3)这边需要将DoNotChgBin勾选起来,否则烧入固件后可能没有wifi,当然不同的板子可能不太一样,这个请大家自行测试。

  (4)这边串口按照自己之前查的选择就行了,波特率115200就可以了。

  其他设置按照红框里面的选择就行。

esp8266如何破解wifi密码及详细步骤

  设置完这些后就点击START开始烧flash,烧完后如果模块正常的话电脑会多出来一个叫HH的wifi,这个wifi就是esp8266发出来的。

  如果没有显示HH,就按下esp8266的RST键复位,等个几秒钟就会显示出来。此时你就可以连接HH了。wifi的密码为:m1234567

  注:如果通过上面的方法还没有显示wifi的话,你可以试试擦除flash,擦除flash的方法请参考:http://bbs.eeworld.com.cn/thread-497588-1-1.html。在这里我就不详述了,擦完大概是下图的样子,然后重新按照上面的步骤烧flash就可以了。

esp8266如何破解wifi密码及详细步骤

  3、用arduino上传web到esp8266

  到arduino官网下载适合你自己系统的软件:https://www.arduino.cc/en/Main/Software

  web源码:http://pan.baidu.com/s/1miywNT

  web源码上传工具:http://pan.baidu.com/s/1o8cEc7

  我的是Windows系统,arduino版本是1.8.4,安装完后打开工具——开发板——开发板管理器,此时会自动更新,过个数分钟更新完毕后(当然,如果用外网的话可能几秒钟就能解决),搜索eps8266,选择第二个,版本选2.2.0,然后安装。

esp8266如何破解wifi密码及详细步骤

  将上面解压后的web源码上传工具的tools放到Arduino根目录里合并,然后返回以下界面,点击文件——新建,新建一个项目,将里面的代码清空,然后点击文件——保存,将项目保存到一个你能找到的位置,点击工具——esp8266 sketch data upload,会出现以下的提示,选择No,会发现新建的项目中多出来一个data文件夹,里面是空的,然后将上面下载的web源码\data里面的三个文件复制到这个文件夹里面。

esp8266如何破解wifi密码及详细步骤

  然后再返回arduino,点击工具,开发板按照自己买的选择,端口选择自己的端口,其他设置如下图红框里面的。

esp8266如何破解wifi密码及详细步骤

  设置完后点击esp8266 sketch data upload,这时不会出现提醒,开始上传web页面,等个1分钟左右esp8266上的蓝灯不闪烁了就表示上传完了。

  然后电脑连接HH的wifi,浏览器输入192.168.1.1/backdoor.html就能进入web页面了,如下图,路由器型号选择通用型,然后输入你测试的wifi编号,点确定,电脑提示SSID伪造成功,手机就会发现出现了个和你测试的wifi一样的没有加密的wifi,原来的HH会不见了,8266的蓝灯常亮,手机连接那个wifi后过几秒会自动弹出路由器升级的页面,然后输入管理员密码,点击开始升级,此时你的esp8266会将管理员密码保存,升级完后,8266的灯就会灭掉。

esp8266如何破解wifi密码及详细步骤

  电脑重新连接HH,进入web页面后管理员密码会在下面的红框这一块显示,这时,就表示获取密码成功了。

esp8266如何破解wifi密码及详细步骤

  ESP8266设置热点步骤

  将ESP8266设置为一个热点,可供其他设备连接并交换数据,主要使用的函数:WiFi.softAP(ssid, password, channel, hidden)。

  参数说明:

  ssid:Wifi热点名称,支持最大63个英文字符;

  password:密码设置,可选参数,也就是可以没有密码,如果设定为WPA2-PSK;

  channel:信道设置,可选参数,1-13,没有填写则默认为1;

  hidden:是否隐藏SSID,可选参数,如果设置为true则隐藏。

  ESP8266开启的默认IP地址为192.168.4.1,可以使用softAPConfig (local_ip, gateway, subnet) 函数进行修改。

  参数说明:

  local_ip:软热点的地址;

  gateway:网关地址;

  subnet:子网掩码。

  程序流程:

  1、连接NodeMCU板子到USB接口,打开Arduino IDE编辑器界面,选择好开发板型号和串口号。

  2、在Arduino IDE的编辑器界面,开始部分添加头文件。

  [cpp] view plain copy#include 《ESP8266WiFi.h》

  3、声明各IP地址。

  [cpp] view plain copyIPAddress local_IP(192,168,4,4);

  IPAddress gateway(192,168,4,1);

  IPAddress subnet(255,255,255,0);

  4、配置软AP参数。

  [cpp] view plain copyWiFi.softAPConfig(local_IP, gateway, subnet);

  5、启动AP模式。

  [cpp] view plain copyWiFi.softAP(“SoftAP001”,“123456789”);

  6、获取IP地址。

  [cpp] view plain copySerial.print(“Soft-AP IP address = ”);

  Serial.println(WiFi.softAPIP());

  下载完成后,在手机或笔记本上Wifi可以搜到设置的AP。

  整体代码如下:

  [cpp] view plain copy#include 《ESP8266WiFi.h》

  IPAddress local_IP(192, 168, 4, 4);

  IPAddress gateway(192, 168, 4, 1);

  IPAddress subnet(255, 255, 255, 0);

  void setup() {

  // put your setup code here, to run once:

  Serial.begin(115200);

  WiFi.softAPConfig(local_IP, gateway, subnet);

  WiFi.softAP(“SoftAP001”, “123456789”);

  Serial.print(“Soft-AP IP address = ”);

  Serial.println(WiFi.softAPIP());

  }

  void loop() {

  // put your main code here, to run repeatedly:

  }

赞(1)

收藏

相关话题
文章来源栏目
+关注

评论(2)

加载更多评论

参与评论

分享到

QQ空间 QQ好友 微博
取消