通过 esp8266 发送解除认证包

问题描述

我正在尝试使用我的 nodemcu 实现一个简单的 WiFi deauther,但我看不到任何断开 b/w AP(我的 android 热点)和 Station(我的第二个 android 设备) 但是当我使用像 Wi-PWN(在 GitHub 上可用)这样的第三方工具时,它正在工作。

很明显我在解除认证过程中做错了

这是部分代码

// Channel to perform deauth
uint8_t channel = 0;

// Packet buffer
uint8_t packet_buffer[128];

// DeAuth template
uint8_t template_da[26] = {
        0xc0,0x00,0xCC,0x01,0x00};

uint16_t create_packet(uint8_t *buf,uint8_t *client,uint8_t *ap,uint8_t type)
{
  int i = 0;

  memcpy(buf,template_da,26);
  // Destination
  memcpy(buf + 4,client,ETH_MAC_LEN);
  // Sender
  memcpy(buf + 10,ap,ETH_MAC_LEN);
  buf[0] = type;

  return 26;
}

/* Sends deauth packets. */
void deauth(uint8_t *c,uint16_t seq)
{
  uint8_t i = 0;
  uint16_t sz = 0;
  sz = create_packet(packet_buffer,c,0xc0); // 0xc0 for deauth 

  wifi_send_pkt_freedom(packet_buffer,sz,0);
  sz = create_packet(packet_buffer,0xa0); // xa0 for disassociation
  wifi_send_pkt_freedom(packet_buffer,0);
  delay(1);
  }
}

编辑:我知道 AP 和 Station 的 mac 地址,因此在创建数据包时填写 mac 不会出错。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)