完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在尝试为此处看到的 DSIKE ESP8266 取消身份验证攻击检测器 ESP12N 编译脚本:
脚本deauth 检测器,当检测到攻击时,它会在蜂鸣器上播放“加勒比海盗”主题曲。我想改为播放星球大战中的“帝国进行曲”歌曲,但我 基本上我需要帮助将这两个脚本粉碎在一起。 这是原始的 deauth 检测器 .ino: // 此软件已根据 MIT 许可证获得许可。 // 有关详细信息,请参阅许可证文件。 // 有关更多详细信息,请访问 github.com/spacehuhn/DeauthDetector // 包括必要的库 #include // 对于 WiFi 嗅探器 #include // 对于 Neopixel/WS2812 LED / / include ESP8266 Non-OS SDK functions extern \"C\" { #include \"user_interface.h\" } // ===== SETTINGS ===== // #define LED 4 /* LED pin */ #define LED_NUM 1 /* LED 数量 */ #define BUZZER 5 /* 蜂鸣器引脚 */ #define SPEED 1.5 /* 歌曲速度,数字越大歌曲越慢 */ #define SERIAL_BAUD 115200 /* 串口通信波特率 */ #define CH_TIME 140 /* 每通道扫描时间(毫秒) */ #define PKT_RATE 5分钟。在它被识别为攻击之前的数据包 */ #define PKT_TIME 1 /* Min. 在它被识别为攻击之前的间隔 (CH_TIME*CH_RANGE) */ // 要扫描的频道 (US=1-11, EU=1-13, JAP=1-14) const short channels[] { 1,2, 3,4,5,6,7,8,9,10,11,12,13/*,14*/ }; // ===== 运行时变量 ===== // Adafruit_NeoPixel 像素 { LED_NUM, LED, NEO_GRB + NEO_KHZ800 }; // Neopixel LED bool song_playing { false }; // 如果正在播放歌曲 int note_index { 0 }; // 当前正在播放的音符索引 int note_time { 0 }; // 一个音符播放的时间量(毫秒) int ch_index { 0 }; // 通道数组的当前索引 int packet_rate { 0 }; // Deauth 数据包计数器(每次更新都会重置) int attack_counter { 0 }; // 攻击计数器 unsigned long update_time { 0 }; // 最后更新时间 unsigned long ch_time { 0 }; // 最后一个频道跳转时间 unsigned long song_time { 0 }; // 最后一首歌更新 // ===== Notes ===== // // 借用 <3 来自这里: https: //github.com/xitangg/-Pirates-of- ... Theme-Song #define NOTE_C4 262 #define NOTE_D4 294 #define NOTE_E4 330 #define NOTE_F4 349 #define NOTE_G4 392 #define NOTE_A4 440 #define NOTE_B4 494 #define NOTE_C5 523 #define NOTE_D5 587 #define NOTE_E5 659 #define NOTE_F5 698 #define NOTE_G5 784 #define NOTE_A5 880 #定义NOTE_B5 988 int 注释[] { NOTE_E4,NOTE_G4,NOTE_A4,NOTE_A4,0, NOTE_A4,NOTE_B4,NOTE_C5,NOTE_C5,0,NOTE_C5,NOTE_D5,NOTE_B4,NOTE_B4,0,NOTE_A4,NOTE_G4,NOTE_A4,0 , NOTE_E4, NOTE_G4,NOTE_A4,NOTE_A4,0 , NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0, NOTE_C5, NOTE_D5, NOTE_B4, NOTE_B4, 0, NOTE_A4, NOTE_G4, NOTE_A4, 0, 注_E4、注_G4、注_A4、注_A4、0、注 _A4、注_C5、注_D5、注_D5、0、注_D5、注_E5、注_F5、注_F5、0、注_E5、注_D5、注_E5、注 _A4、0、注_A4、注_B4、注_C5 、注 _C5、0、 注_D5、注_E5、注_A4、0、注 _A4、注_C5、注_B4、注_B4、0、注_C5、注_A4、注_B4、0、注_A4、注_A4、注_A4、注_B4、注_C5、注_C5、0、注_C5、注_D5 、注_B4 、注 _B4、0 、 注_A4、注_G4、注_A4、0、注_E4、注_G4、注 _A4、注_A4、0、注_A4、注_B4、注_C5、注_C5、0、注_C5、注_D5、注_B4、注_B4、0、注_A4、注_G4 、 注 _A4、0、 注_E4、注_G4、注_A4、注_A4、0、注 _A4、注_C5、注_D5、注_D5、0、注_D5、注_E5、注_F5、注_F5、0、注_E5、注_D5、注_E5、注 _A4、0、注_A4、注_B4、注_C5 、注 _C5、0、 注_D5、注_E5、注_A4、0、注_A4、注 _C5、注_B4、注_B4、0、注_C5、注_A4、注_B4、0、注_E5、0、0、注_F5、0、0、注_E5、注_E5、0、注 _G5、0 、 注_E5、注_D5、0、0、注_D5、0、0、注 _C5、0、0、注_B4、注_C5、0、注_B4、0、注_A4、注_E5、0、0、注 _F5、0、0、注_E5、注_E5、0、注 _G5 、 0, NOTE_E5, NOTE_D5, 0, 0, NOTE_D5, 0, 0, NOTE_C5, 0, 0, NOTE_B4, NOTE_C5, 0, NOTE_B4, 0, NOTE_A4 }; int duration[] { 125, 125, 250, 125, 125, 125, 125, 250, 125, 125, 125, 125, 250, 125, 125, 125, 125, 375 , 125, 125 , 125, 250, 125 , 125, 125, 125, 250, 125, 125, 125, 125 , 250, 125, 125, 125, 125, 375, 125, 125, 125, 250, 125, 125 , 125, 125, 250, 125, 125 , 125, 125, 250, 125, 125, 125, 125, 125, 250, 125, 125, 125, 250, 125, 125, 250, 125, 250, 125, 125, 125, 250 , 125 , 125, 125 ,125、375、375、250、125、125、125、250、125、125、125、125、125、250、125、125、125、125、125、375、125、125、125、125、125、125、250、250、250、125、125、125、125、125、125、125、125、125 _ _ _ _ 125, 125, 250, 125, 125, 125 , 125, 250, 125, 125, 125, 125, 375, 125, 125, 125, 250, 125, 125, 125, 125 , 250, 125, 125, 1 25 , 125, 250, 125, 125, 125 , 125, 125, 250, 125, 125, 125, 250, 125, 125, 250, 125, 250, 125, 125, 125, 250, 125 , 125, 125, 1 25, 375, 375, 250, 125, 375, 250, 125, 375, 125 , 125, 125, 125, 125, 125, 125, 125, 375, 250, 125, 375, 250, 125, 375, 125, 1 25 , 125, 125, 125, 500, 250, 125, 375, 250, 125, 375, 125, 125, 125, 125, 125, 125, 125, 125, 375, 250, 125 , 375, 250, 125, 3 75, 125, 125, 125, 125, 125, 500 }; // ===== 嗅探器函数 ===== // void sniffer(uint8_t *buf, uint16_t len) { 如果 (!buf || len < 28) 返回; // 丢弃没有 MAC 头字节的 数据包 pkt_type = buf[12]; // 帧控制字段的后半部分 //byte* addr_a = &buf[16]; // 第一个 MAC 地址 //byte* addr_b = &buf[22]; // 第二个 MAC 地址 // 如果捕获的数据包是取消身份验证或解除关联的帧 if (pkt_type == 0xA0 || pkt_type == 0xC0) { ++packet_rate; } } // ===== 攻击检测函数 ===== // void attack_started() { song_playing = true; note_index = 0; note_time = duration[note_index] * SPEED; for(int i=0; i= (sizeof(channels)*CH_TIME)) { update_time = current_time; // 更新时间变量 // 当检测到的 deauth 数据包超过最小允许数量时 if (packet_rate >= PKT_RATE) { ++attack_counter; // 增加攻击计数器 } else { if(attack_counter >= PKT_TIME) attack_stopped(); 攻击计数器= 0;// 重置攻击计数器 } // 当攻击超过最小允许时间时 if (attack_counter == PKT_TIME) { attack_started(); } Serial.print(\"数据包/s:\"); Serial.println(packet_rate); packet_rate = 0; // 重置数据包速率 } // 频道跳频 if (sizeof(channels) > 1 && current_time - ch_time >= CH_TIME) { ch_time = 当前时间;// 更新时间变量 // 获取下一个通道 ch_index = (ch_index+1) % (sizeof(channels)/sizeof(channels[0])); 短 ch = 通道 [ch_index]; // 设置频道 //Serial.print(\"Set channel to \"); //序列号.println(ch); wifi_set_channel(ch); } if(song_playing && current_time - song_time >= note_time) { song_time = current_time; note_index = (note_index+1) % (sizeof(notes)/sizeof(notes[0])); note_time = duration[note_index] * SPEED; 音调(蜂鸣器,音符[note_index],note_time); } } 这是星球大战歌曲 .ino: // ===== Notes ===== // const int c = 261; const int d = 294; const int e = 329; const int f = 349; 常数 int g = 391; const int gS = 415; const int a = 440; const int aS = 455; 常量 b = 466; const int cH = 523; 常量 int cSH = 554; const int dH = 587; const int dSH = 622; const int eH = 659; 常量 fH = 698; 常量 fSH = 740; const int gH = 784; 常数 int gSH = 830; const int aH = 880; const int buzzerPin = 5; const int ledPin1 = 12; const int ledPin2 = 13; 整数计数器= 0; void setup() { //设置引脚模式 pinMode(buzzerPin, OUTPUT); 引脚模式(ledPin1,输出); 引脚模式(ledPin2,输出); } void loop() { //播放第一节 firstSection(); //播放第二节 secondSection(); //变体 1 哔哔声 (f, 250); 哔哔声(gS,500); 嘟嘟声(f,350); 嘟嘟声(一,125); 哔哔声(cH,500); 嘟嘟声(a,375); 哔哔声(cH,125); 嘟嘟声(eH,650); 延迟(500); //重复第二节 secondSection(); //变体 2 哔哔声 (f, 250); 哔哔声(gS,500); 嘟嘟声(女,375); 哔哔声(cH,125); 嘟嘟声(一,500); 嘟嘟声(女,375); 哔哔声(cH,125); 嘟嘟声(一,650); 延迟(650); } void beep(int note, int duration) { //在buzzerPin上播放音调 tone (buzzerPin, note, duration); //buzzerPin 上的停止音 noTone(buzzerPin); 延迟(50); //递增计数器 counter++; } void firstSection() { 哔哔声 (a, 500); 嘟嘟声(一,500); 嘟嘟声(一,500); 嘟嘟声(f,350); 哔哔声(cH,150); 嘟嘟声(一,500); 嘟嘟声(f,350); 哔哔声(cH,150); 嘟嘟声(一,650); 延迟(500); 嘟嘟声(eH,500); 嘟嘟声(eH,500); 嘟嘟声(eH,500); 嘟嘟声(fH,350); 哔哔声(cH,150); 哔哔声(gS,500); 嘟嘟声(f,350); 哔哔声(cH,150); 嘟嘟声(一,650); 延迟(500); } void secondSection() { 哔哔声 (aH, 500); 嘟嘟声(一,300); 嘟嘟声(一,150); 嘟嘟声(aH,500); 嘟嘟声(gSH,325); 哔哔声(gH,175); 嘟嘟声(fSH,125); 嘟嘟声(fH,125); 嘟嘟声(fSH,250); 延迟(325); 嘟嘟声(aS,250); 嘟嘟声(dSH,500); 嘟嘟声(dH,325); 嘟嘟声(cSH,175); 哔哔声(cH,125); 嘟嘟声(b,125); 哔哔声(cH,250); 延迟(350); } |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
528浏览 6评论
438浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
425浏览 5评论
422浏览 4评论
398浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-8 05:26 , Processed in 0.547720 second(s), Total 46, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号