钉钉越来越普及,大量的公司都在采用钉钉,同时,使用钉钉的考勤方式。
钉钉打卡方式存在一个WIFI打卡模式,需要连接指定WIFI进行打卡,识别的方式是WIFI的名称和MAC地址,
ESP8266-12E是安信可官方推出的wifi模组,可以自建AP,同时还可以修改mac地址,所以就试了试使用ESP8266自建的AP来破解打卡,完美破解。
下面试破解的代码,用的arduino开发的,arduino如何安装,可看我另外一篇文章: Arduino-IDE搭建ESP8266开发环境
Arduino-IDE搭建ESP8266开发环境
代码是复制的太极创客8266 AP模式的代码,增加了设置mac地址
#include <ESP8266WiFi.h>
#define AP_ssid "XXXXXXXX" //这里改成公司的WIFI名称
#define password "XXXXXXXX" //密码随便,一样不一样都行
uint8_t macAddr[6] = {0x00,0x00,0x00,0x00,0x00,0x00}; //改成公司的路由器mac地址
bool flag;
void setup() {
// 启动串口通讯
Serial.begin(9600);
Serial.println();
//设置为接入点模式
WiFi.mode(WIFI_AP);
//启动AP,并设置账号和密码
Serial.printf("设置接入点中 ... ");
//启动校验式网络(需要输入账号密码的网络)
WiFi.softAP(AP_ssid, password);
//监控状态变量result
flag = WiFi.softAP(AP_ssid, password);
if (flag) {
Serial.println(""); // 通过串口监视器输出信息
Serial.print("当前工作模式:"); // 告知用户设备当前工作模式
Serial.println(WiFi.getMode());
Serial.print("接入点名字:");
Serial.println(AP_ssid); // 告知用户建立的接入点WiFi名
Serial.print("接入点密码:");
Serial.println(password); // 告知用户建立的接入点WiFi密码
Serial.println("接入点模式成功开启");
//不输入参数获取MAC地址
//Serial.printf("MAC地址为 %s\n", WiFi.softAPmacAddress().c_str());
//输入参数获取MAC地址
//WiFi.softAPmacAddress(macAddr);
wifi_set_macaddr(SOFTAP_IF, macAddr);
delay(1000);
WiFi.softAPmacAddress(macAddr);
Serial.printf("MAC地址为 %02x:%02x:%02x:%02x:%02x:%02x\n", macAddr[0], macAddr[1], macAddr[2], macAddr[3], macAddr[4], macAddr[5]);
} else {
//若没有开启成功
Serial.println("开启失败");
}
Serial.println("初始化结束");
}
void loop() {}
评论 (0)