ืื ืฉื ืชื ืื ืืช ืืจืขืืื ืืืฆืืจ ืืื ืืืก ืื ืืชืื ืจืฉืชืืช WiFi ืืื
ืชืืื ืืื ืขื ืืจืขืืื. ืคืฉืื ืื ืืื ืื ืื ืืขืฉืืช.
ืื ืืขืืืื ื ืขืฉืชื ืืืกืืจืช ืชืืืื ืืืืจื ืืื ืืช ืืืืจืืื ืืช ืืืืข ืฉืื ืืชืืื ืืื ืืืืืืืช ืืจืฉืช. ืืื ืืื, 1..4 ืฉืขืืช ืฉืืืขืืืช, ืืชืืืืช ืฉื ื ืื.
ืื ืชืื ื ืชื ืฉืื ืฉืืืืฉ ืืขืฉื. ืึธืึตื. ืื ืื ืืื ืฉื ืืืงืจืื.
ืืจืืข, ืื ืืคืื ืงืฆืืื ืืืืช ืืืชืืื ื ืช ืขืืืืช. ืื ืืืงืืจืืช, ืืืื ืื ืืืืืืื ืืืจืืื,
ืืขืชื ืขื "ืืืื ืืืื ืืืจืกืื" ืืืกืืื ืืืืืจื ื-ESP32
ืื ื ืื ืืชืืืืจ ืืืืืช ืืืืช. ืืื ืืื ืืฉ ืืช ืฉืื. ืื ืกื ืืืฆืืืง ืืช ืืืืจืช ืืืืืจื ืฉืื.
ืืืื ืื ื ืืืขื, ืืืขืชืื ืืืืืจืื ืืืคืื ืืช ืืงืืจืืช ืืชืืื ื ืืืืื ืื ืืฆืืืืจ. ืืื ืื ืื, ืื ืื ืืืืชื ืงืื ื ืืืืจื ืืื ืืื ืงืื ืืืงืืจ.
ืืืจืืฉืืช ืฉืื ื"ืืื"
ืืงืืคืกื ืฆืจืืื ืืืืืช ืงืื ื (ืืื ืฉืืืชืจ ืงืื ืืืชืจ ืืื).
ืืื:
- ืืื ืฆืืจื ืืกืืืื ืืืื ืืช. ืขื ืืจื > 100 mA ืืขืืืื ืขื Wifi, ืืกืืืื ืืืืื ืืช ืชืืื ืืืืื ืื ืื ืชืืืืง ืืขืื ืืืืจื ืืื. ืืื, ืชื ื"ืงืืคืกื" ืืืืืช ืืืคืขื ืขื ืืื ืื ืง ืืื ืกืื ืืจืื. ืืื ืืงืจื, ืชืืื ืืฉ ืื ืื ืง ืืฉืื ืืืืก/ืืืืื ืืช.
- ืฉืืืจ ืขื "ืงืืคืกืช" ืืื ืืงืก ืขื ืืืื ืืคื ืื, ื ืืชื ืืืฉื ืฉื ืื ืจืืืช ืืื ืืฉืคืืช ืขื ืืกื ืงืื ืืกื ืื ืฉื ืืคืชืืจื ืฉืืืื, ืื ืื ืืืืื ื. ืืช ืืชืืฆืืืช ื ืืชื ืืจืืืช/ืืขืื ืืืืฉื ื ืืื ืจืืื ืขื ืืงืืืช ืืืกื ืืืืื.
- ืจืืืืื ืฆืจืืืื ืืืืืช ื ืืืฉืื ืืงืืืช ืืืืืขืื (SDK ืืืื, ืืืืืืืช ืืชืืขืื ืจืืื).
ืืชืืฆืื ืืื, ืขืืืจื, ืืืืืจื ืืืืชื ืืจืืจื - ESP32.
ืขืืืจ ืื ืืืฉืืืืช ืืืฆืืื ืืช ืืืืืจ ืฉืื ืืขื ืืืชื ืืคืขืื, ืืืืืืืช ืฉื ื-ESP32 ืืกืคืืงืืช ืืืืื. ืืืจืืช ืฉืืื ืื ื ืขืืืื ืจืืฆื ืืขืฉืืช ืื:
- ืฉืืง ืขื ืืืืืืช'.
- ืฉืืงื ืขื ืืืื ื-433mHz ืขื ืืืืืจื ืืคืฉืืื ืืืืชืจ (ืจืง ืืคื ืื ืืฉืจืขืช, ืฉืืกืคืืง ืืฆืจืืื ืคืจืงืืืื).
ืขืฃ ืขื ืืืฉืื ื-ESP32
- ื-ESP32 SDK (IDF) ืืืืฉื ืืฉืื.
- ืืืง ืืืคืื ืงืฆืืื ืืืืช (ืืืกื ืืช WiFi, ืืืฉื) ืืืืขื ืืื ืงืื ืืงืืจ ืืฆืืจื ืฉื ืกืคืจืืืช ืกืืืืืช ืืืจืืืืช.
- ืจืฆืืขืช ื-5gHz ืืื ื ื ืชืืืช ืืืฉ ืืื ืืืืืืช ืืืืืื ืืืช ืืขืืืื ืขื WiFi.
ืืื ืืืืืจ/ืืืื ืืคืฆื ืืืืืืื ืขื ืืืกืจืื ืืช ืืืื.
ืคืื ืงืฆืืื ืืืืช ืชืืื ื ืขืืงืจืืช
ืื ื ืืชืืจ ืืงืฆืจื ืืช ืืคืื ืงืฆืืื ืืืืช ืืืช ืืขืชื ืืืื...
ื ืืืื ืืืืจืืช ืืืขืืืช ืงืืฆืื ื-SD
ืื ืืฉืืืื ืืืืฆืื ืืช ื ืขืฉืืช ืืืืฆืขืืช ืืฃ ืืื ืืจื ื ืคืฉืื, ืืืืคืขื ืืคืจืื ืชืคืจืื ื ืคืจื. ื-ESP32 ืืชืืื ืืืฆื WiFi AP ืืืฆืื ืืฃ ืืืชืืืช IP ืงืืืขื.
ืืืจืืช ืฉืืืืืช ื-ESP32 ืื ืืืืจืืช ืืืื, ืืคื ืฉืืจืื ื ืืกืืืื, ืืคืขืืื ืื-ืืื ืืช ืฉื ืฉืืจืืช ืืืื ืืจื ื ืืืืื ื, ืืืืฉื, ืืฆื ืื ืชื ืืื ื ืชืืืืื ืืืืืื. ืืื, ืืื ืืงืจื ืืื ืืืช ืืืืฃ ืืื ื ืืืื ืืื ืฉืืจ ืืืฆืืื.
ืืชืจ ืขื ืื, ืืื ืฆืืจื ืืฉืืืื ืืื ืืืช ืืืืจืืช ืืืงืจ.
ืืืคื ืขืืืื ืขื ืืืืืืช Beacon
ืืืฆืืื ืื ืืืืื ืืื ืืขื ืืื ืื ืืืืืื. ื ืืฆืจ "ืื ืื ืืคืฉืจื". ืืืืืงื.
ืืฉ ืืืืืืืช ืืืืืืืืช ืืจืฉืืืืช ืฉื ืืกืคืจืกืืฃ.
ืืฆื ืกืจืืงืช ืจืฉืืืช AP.
ืืืขืฉื, ืื ืกืืืจืืคืื ืืืื ืืขืฉืืช ืืืช.
ืืืื, ืืืฆื ืื ืจืฉืืืช ื-AP ืชืืฉืืจ.
ืฉืืื ืืืืจ ืืื ืืฉืืื.
ื-ESP32 ืืชืืื ื-AP ืขื SSID ื ืกืชืจ ื-MAC ืืงืจืื ืืืชืืื ืืฉืืื [beacon frame] ืืคื ืจืฉืืื ืฉื ืืฆืจื ืืจืืฉ ืฉื SSIDs (ื ืืฆืจื ืืื ืืช ืื ืืืฉืื ืืืงืื ืืืชืจ ืขื ืืื ืกืจืืงืช ืจืฉืืืช ื-AP)
ืืฆื ืจืืจืื ืื ืืช WiFi
ืืคืชืื Espressif ืืืกืืคื ืืช ืืืืืืช ืฉื ืชืืื ืืช ืืืฉืืืื ืืงืื ืืช ืื ืืืืืืช ื-WiFi "ืขืคืืช ืืืืืืจ" ืืืืฆืขืืช ืคืื ืงืฆืืืช ืืืชืงืฉืจืืช ืืืจื. ืืืขืฉื ืื ืืื, ืืืืืื ืฉืืชื ืืืื ืืืืืืจ ืืช ืืืฆื ืจืง ืืขืจืืฅ ืงืืืข ืืื.
ืืืืืืช ืืื ืงืคืื ืืืช ืืืื ืืืืืืช ืขื ืขืืืื ืคืื ืงืฆืืืช ืืชืงืฉืจืืช ืืืืจืช. ืื ืื ืื ืืืจื ืืืขืืืช ืขืืืจ ืืฆื ืืืกืืฃ ืกืืืืกืืืงื ืคืฉืื, ืื ืขืืืจ ืืฆื ืืงืืืช ืงืืฆื PCAP ืืืจืืืก SD ืืืืชื ืฆืจืื ืืืชืขืกืง, ืืืจืื ืืช ืืืงืืื ืืจื ืชืืจ ืืืืืจืื ืืกืืคืืจืืช. ืืืงื ืืืฉืืื ืืช ืืืืืจืืช ืฉืืชืืืื ืืงืืจื ืืืชืงืฉืจืืช ืืืืจืช ืคืืขื ืขื ืืืื ืืืช, ืืืชืืืื ืืืืชื ื-SD ืืืืจืช.
ืืืื "ืืืืืจ ืจืืขืฉ", ืืืง ืืืืืืืืช ืืืืืืช ืืืืืื (ืืื ืืงืื ืืชืืจ ืืื ื ืืจืงืืช), ืืื ืขื "ืืืืืจ" ืืืคืืกื ืฉื ืืืจื ืืขืจื (5..7 APs ืืจืืืช), ืืงืืื ื-PCAP ืืืฉืื ืืื ืืืืื ืื ืืช.
ืื ืืกืฃ, ืขืืืจ ื ืืืืจ ืืืงืืื ืฉื โโPCAP, ืงืืื ืืฆื ืกืื ืื ืืืืืกืก ืขื ืจืฉืืืช ื-MAC ืืืืชืจืืช ืืืืืืืช.
ืืืืืื, ืืชื ืืืื ืืขืงืื ืืืจ ืืืคืขืชื ืฉื ืืื ืืืืขืืื/ืืืช ืงืคื ืขืื ืืคื ื ืฉืืื ื ืื ืก ืื ืืืคืืข ืืขืื. ืืขื ืื ืฉืื ืืฉืืืชืื ืืช ื-WiFi ืืืืืืืจืื ืืืืืืืืืื ื-APs ืืืืขืื. (ืื ื ืืืื ืืช ืื ืขืืฉืื..)
ืฆืคืืื ืืชื ืืขื ืืืงืืืช ื-Wireshark ืืื ืืื ืืืืช ืืืขื ืืื ืช ืืืื ืช ืืคืืช - ืืื ืขืืื.
ืืฆื ืืขืืืื ืขื ืืืืืืช ืืืืช
ืืืจืืจืช ืืืื, ืฉืืืืช ืืืืืืช ืืื ืืกืืจื ืืกืคืจืืืช libnet80211.a, ืฉืืืืขื ืืื ืืงืืจืืช. ืืื ืงื ืืชืงื ืืช ืื ืขื ืืื ืืชืืื ืฉื ืืื ืืืืื. ืืืชืืื ืคืงืคืงืชื ืื ืืืื ืืคืจืกื ืชืืงืื. ืืื ืืืจื ืฉืืกืชืืืืชื ืืืงืืืืช ืฉืื ืื ืืฉืืฆื ืกืจืืงืช ืืกืืจืช ืืืืื ืืืืืืช ืืืคืขื, ืืฉืืชื: "ืื ืืขืืืื." ืืชืจื ืืื, ื-esp8266 ืืืฉืืื ืฉื ืืืืืืืช ืืืื ืืื ื ืกืืืจ ืืืฉ ืืืืืืื ื-github ืขืืืจ esp8266.
ืืืงืืืืช ืจืืื (ืื ืืืื ืืืื) ื ืขืฉื ืฉืืืืฉ ืืืืืื APs ืื ืจืฆืืืื ืืืืฆืขืืช ืฉืืื ืื. ืืืื ืื "ืืจืืื ืื"...
ืืื ื ืื ืืืคืชืขืชื ืฉืืคืฆืช ืืืื ืืจื ื ืฉืื ืืืืืคืื ืฉืื ืื ืขืืื ืืืงืืืืช ืืกืืืืื...
ืืืฆื ืืืขืงื ืืืจ ืืืกืคืจ ืื-RSSI ืฉื ืื ืืช ืืืื ืฉืืืืฉื ืืืื ืืื ืืืืื "ืืืื ื-APs ืืฉืืืื ืื ืืืืืื ืืช ืื."
ืืฆื ื ืชื
ืชืืื ื ืื ืืื ืื ืจืื ืืืขื ืืื ืช ืืืืื ืืืงืืจ.
ESP32 ืชืืื ืืืคืขืื ืื-ืืื ืืช ืืืฆื STA + SoftAP. ืืื, ืืชื ืืืื ืืืืฉื ื ืชื NAT ืงืืืกื ืขืืื.
ืืื ืืชืืื ืืขืจืืืช ืืจืฉืช, Espressif ืืฉืชืืฉ ืืืืื (ืืืขื ืืื ืฉืื ืื) ืฉื ืกืคืจืืืช lwip.
ืืื, ืืืจืืจืช ืืืื, ื-build ืืกืื ืืจืื, ืกืคืจืืืช esp-lwip ืืื ื ืืกืคืงืช ืืขืืจื ืืื ืืืฉืงื netif 'ap' (SoftAP) ื-'st' (STA).
ืืืืื ืฉืืคืฉืจ ืืขืฉืืช ืืช ืื ืืื NAT, ืืื ืืฉ ืืขืื ืืืืืืจ ืื-ืืื ืืช ืฉื ืฉื ืืื ืื ืืืชืจ STA ืืืืฉืง 'ap' ืืกื ืืจืื ืืชืืืืช IP ืืืืฉืง ืืจืฉืช 'st' ื-'ap'. ืื ืืงืฉืืื ืื ืฉืืืื ืืช ืื ืืื ืงื ืืืชืจ ืืจื NAT.
ืืชืจ ืขื ืื, ืืฉ ืืืื esp-lwip ื-martin-ger, ืฉืืืกืืฃ ืืืฉืื ืคืฉืื ืฉื NAT ืขืืืจ IP4.
ืืืจืืช ืฉืืืืืื ืฉืื ืืจืื ืืขืฉืืช ืืช ืื ืืืืฉ ืืืืคื ืงืืกืืื ืืืื (ืืืขืชื, ืื ืืื ืงื ืืืชืจ ืืื ืืืื ืฉื ืืคืจืืืงื, ืืื ืืจื LWIPืื ััะฝะบัะธะธ, ะพะฟัะตะดะตะปัะตะผัั ะฟัะธ ัะฑะพัะบะต), ะฝะพ ะปะตะฝั ะฟะพะฑะตะดะธะปะฐ ะธ ะฒะฐัะธะฐะฝั ะพั martin-ger ะธัะฟะพะปัะทัะตััั ะบะฐะบ ะตััั.
ืืืฆื ื ืชื, ืชืขืืืจืช IP4 ื ืื ืกืช ืืืืฆืืช ื ืจืืืช.
ืืคืจื, ืืืคืงืื ืืื ื ืืืืจืื ืืืืื ืืฆืืจื ืืฆืื ืขื ืืืกื ืืืืกืืฃ ื ืชืื ืื ืกืืืืกืืืื ืืงืืืฅ:
- ืฉื ืืืชืงื ืฉืืชืืืจ ื-SoftAP ESP32 (ืื ืืช DHCP)
- ืืชืืืช URL ืืืงืฉืืช DNS (ืืฆืืืช UDP 53) ืืืชืงื ืืืืืืจ ื-SoftAP ESP32.
ืื ืืกืฃ, ืืชื ืืืื ืืืคืฉืจ ืืงืืืช ืชื ืืขื ืืงืืืฅ PCAP.
ืืฆื ืื ืฉืืืืฉื ืืืื, ืืืฉื, ืืื ืืืืื, ืืืฉื, ืื ืืืืคืื ืฉืื ืฉืืื ืืจืฉืช ืืืื ืืื ืืืื.
ืืชื ืืืื ืืืฉืื ืขื ืืจืืื ืืืจืืช ืืืฉืชืืฉ ืืืฆื ืื, ืชืื ืืชืืฉืืืช ืืืืืืช ืืฉืืื ืืืืืืื ืืชืขืืืจื ื ืื ืกืช ืืืืฆืืช ืฉื softAP ESP32 ืืจืืช ืืืฉืง ืืจืฉืช: ืืืชืจืช Ehernet (destMAC[6]+srcMAC[6]+type[2]) + ืืืขื (ืกืื IP4, IP6, DCHP ืืื').
ืืืืคื ืขืงืจืื ื, ื-ESP32 ืืชืืืื ืื ืืื ืขื ืคืื ืงืฆืืืช ืื ืชื WiFi->WiFi, ืขืืืจ ืืจื ืชื ืืขื ืจืืืื ืืื ืขืืืืืื ืืืืืืื. ืืืืคื ืกืืืืืงืืืื, ืขืืืืืื ืืืืคืื ืืืืืืจ ืืจื ื ืชื ื-ESP32 ืืื ื ืืืจืืฉืื.
ืืจืืข ืืืื, ื-Espressif API ืืื ืืช ืืืืืืช ืืืืืืจ ืืกื ื ืขืืืจ MAC ืืืืืืจ ื-SoftAP EPS32. ืืืงืื ืืืช, ืืืฆืข ืืืืจ "ืืืชืจืืืช" (esp_wifi_deauth_sta) ื-STAs ืฉืืืจ ืืืืืจืื ื"ืื ืจืฆืืืื".
ืกืื ืื ืขื ืืื MAC ืขืืืจ STAs ืืืืืจืื ืืื ืฆืจืื ืืืืขืฉืืช ืืืืฆืขืืช ืืงืจืืื esp_wifi_deauth_sta()
ืืกืืืื
ืืืจืืช ืฉืื ืืืฆืืชื ืฉืื ืืืจ ืืืฉ ืืืกืืจืช ืืขืืืื ืขื ESP32, ืืืื ืืชืืฆืื (ืงืื ืืืงืืจ) ืชืขื ืืื ืืืฉืื.
ืืจืฆืื ื ืืฆืืื ืฉืืงืื ื ืืชื ืื ืืจืง ืืืืจืืช ืืื ืืืืืช. ืขืืืจ "ืคืจืืฆื" ืืื', ืื ื ืขืฉื ืืืืื ื ืื ื ืื ืืืืืื.
ืื ืืื ืชื ืืขืื ืืืืคืก ืื ืืงื 1.5-2 ืฉืขืืช ืืืืืื ืืช ืืฆืขืืคืื ืืืืืืจืื ืขื ืืื.
ืืื ืื, ืืชื ืฆืจืื ืืืจืืื ืืืชื ืื ืืืืืืช ืืืื ืื, ืืื ืืืจืืืืื ืืืืืื. ืื ืืืืืื ืืืื ืืคืืื ืงืื ืื ืืืชืจ.
ืืงืืจ: www.habr.com