በESP32 ላይ ከWifi ጋር ጨዋታዎች

በESP32 ላይ ከWifi ጋር ጨዋታዎች

የዋይፋይ ኔትዎርኮችን ለመተንተን የኪስ መሳሪያ ለመስራት ሀሳብ የሰጠኝ ነገር ነው። ይህ ዓምድ.

ስለ ሃሳቡ አመሰግናለሁ። በቃ ምንም ማድረግ አልነበረኝም።

ሁሉም ስራዎች የተከናወኑት ለመዝናናት እና በኔትወርክ ቴክኖሎጂዎች መስክ ያለኝን እውቀት ለማስፋት እንደ የትርፍ ጊዜ ማሳለፊያ አካል ነው። ቀስ በቀስ፣ በሳምንት 1..4 ሰአት፣ ከዚህ አመት መጀመሪያ ጀምሮ።
ምንም አይነት ተግባራዊ ጥቅም አላቀድኩም. እነዚያ። ይህ የጠላፊ መሳሪያ አይደለም።

በአሁኑ ጊዜ ሁሉም የታቀዱ ተግባራት እየሰሩ ናቸው. ሁሉም ምንጮች ፣ ለመገጣጠም ሙሉ በሙሉ ዝግጁ ናቸው ፣ እዚህ ተለጠፈ. የመሰብሰቢያ መመሪያዎች ወዘተ አሉ በዚህ ማስታወሻ ውስጥ በ github ላይ የተለጠፈውን መረጃ አላባዛም። ለየብቻ ለመግለጽ አስፈላጊ መስሎ የታየኝን ብቻ እነግራችኋለሁ።

የእኔ አስተያየት በ "ሁለንተናዊ መሣሪያ" እና ESP32 የመረጥንበት ምክንያት

እውነት ነኝ አልልም። ሁሉም ሰው የራሱ አለው. የሃርድዌር ምርጫዬን ለማስረዳት እሞክራለሁ።

በአንቀጹ ውስጥ የቀረበ የሊኑክስ ጥምረት (በመጀመሪያ Raspberry Pi) + “ፔሪፈራል” በተቆጣጣሪ (STM32) + CC1110 (8051 ኮር) እና እዚያ ውስጥ የሚቻለውን ሁሉ ለመጨናነቅ (125kHz ፣ NFC ፣ 433mHz ፣ USB ፣ iButton, bluetooth,?) ለእኔ ተስማሚ አይመስልም ነበር. ሆኖም፣ ይህ ፕሮጀክት እሱ ግላዊ እና የተዘጋ ይመስላል (flipper-zero github "ይህ ድርጅት የህዝብ ማከማቻ የለውም።") እና በጣም ወደተለመደ ሃርድዌር ሄደ።

ምናልባት ተሳስቻለሁ፣ እና ወደፊት ደራሲዎቹ የሶፍትዌር ምንጮችን በይፋ እንዲገኙ ያደርጋሉ። ግን ካልሆነ ፣ ያለ ምንጭ ኮድ እንደዚህ ያለ ሃርድዌር አልገዛም።

ለ "መሳሪያ" የእኔ መስፈርቶች

ሳጥኑ ትንሽ መሆን አለበት (ትንሹ የተሻለ ነው).

ስለዚህ

  • አብሮ የተሰራ ባትሪ አያስፈልግም። ከዋይፋይ ጋር ሲሰራ አሁን ባለው> 100 mA አብሮ የተሰራው ባትሪ ትልቅ ይሆናል ወይም ረጅም ጊዜ አይቆይም። ስለዚህ, "ሣጥኑ" በመደበኛ የኃይል ባንክ እንዲሠራ ያድርጉ. ለማንኛውም በኪሴ/መኪናዬ ውስጥ ሁል ጊዜ የኃይል ባንክ አለኝ።
  • የሊኑክስን “ሣጥን” በውስጡ ከመሳሪያዎች ጋር ያቆዩ። ለብዙ ዓመታት በሁሉም ቋንቋዎች የተፃፈ በትንሽ ማያ ገጽ እና በትንሽ የቁጥጥር አዝራሮች ስብስብ, ምንም ትርጉም የለውም. ውጤቶቹ በተለመደው ላፕቶፕ ሙሉ የቁልፍ ሰሌዳ እና ስክሪን ላይ ሊታዩ/ማስኬድ ይችላሉ።
  • አካላት በቀላሉ ተደራሽ እና በሰፊው የሚታወቁ መሆን አለባቸው (ይገኛል ኤስዲኬ ፣ ብዙ ምሳሌዎች እና ሰነዶች)።

በውጤቱም, ለእኔ, ምርጫው ግልጽ ነበር - ESP32.

እርምጃ እንድወስድ ያነሳሳኝ በአንቀጹ ውስጥ ለተገለጹት ተግባራት ሁሉ የ ESP32 ችሎታዎች በቂ ናቸው። ምንም እንኳን አሁንም ማድረግ የምፈልገው ነገር ቢኖር፡-

  • በብሉቱዝ ይጫወቱ።
  • በ 433mHz ክልል በጣም ቀላል በሆነው ሃርድዌር ይጫወቱ (ለተግባራዊ ፍላጎቶች በቂ የሆነ የ amplitude modulation ብቻ)።

በ ESP32 ውስጥ ቅባት ውስጥ ይብረሩ

  • ESP32 ኤስዲኬ (IDF) በመጠኑ የተዝረከረከ ነው።
  • የተወሰኑ ተግባራት (ለምሳሌ ዋይፋይ ቁልል) ያለ ምንጭ ኮድ የሚመጡት በተገጣጠሙ የማይንቀሳቀሱ ቤተ-ፍርግሞች መልክ ነው።
  • 5gHz ባንድ አይደገፍም እና ከWiFi ጋር ለመስራት አንዳንድ ገደቦች እና ውዥንብር አለ።

ነገር ግን ዋጋው / መጠኑ ለእነዚህ ድክመቶች ሙሉ በሙሉ ማካካሻ ነው.

ዋና የሶፍትዌር ተግባር

ስለ ተግባራዊነት እና የእኔን አስተያየት በአጭሩ እገልጻለሁ ...

ቅንብሮችን ማስተዳደር እና ፋይሎችን ከኤስዲ መስቀል

ሁሉም የውጭ መቆጣጠሪያ የሚከናወነው በተለየ ምናሌ ንጥል ውስጥ በተነሳ ቀላል ድረ-ገጽ ነው. ESP32 በWiFi AP ሁነታ ይጀምር እና በቋሚ IP አድራሻ ላይ አንድ ገጽ ያሳያል።

ምንም እንኳን የ ESP32 ኮሮች በጣም ፈጣን ናቸው, ሙከራዎች እንደሚያሳዩት, አብሮገነብ የድር አገልግሎት እና ለምሳሌ, የራውተር ሞድ በአንድ ጊዜ ያለው አሠራር በጣም ተኳሃኝ አይደሉም. ስለዚህ, ምንም ተለዋዋጭ ቁጥጥር የለም እና ገጹ በሁሉም ሌሎች ሁነታዎች አይገኝም.
ከዚህም በላይ ለምርምር ዓላማዎች ተለዋዋጭ ቁጥጥር አያስፈልግም.

ከቢኮን ፓኬጆች ጋር የመስራት ዘዴ

ስልቶቹ ባናል ናቸው እና በጣም አስደሳች አይደሉም። "ስለሚቻል" የተሰራ። ለቼክ።
በኦፊሴላዊው Espressif ምሳሌዎች ውስጥ ምሳሌዎች አሉ።

የAP ዝርዝር መቃኛ ሁነታ።
በእውነቱ, ማንኛውም ስማርትፎን ይህን ማድረግ ይችላል.
ደህና, በዚህ ሁነታ የ AP ዝርዝር ይቀመጣል.
ቢኮን ስፓመር
ESP32 እንደ ኤፒ በድብቅ SSID እና በዘፈቀደ MAC ይጀምራል እና አስቀድሞ በተፈጠረው የSSID ዝርዝር (በእጅ የተፈጠረ ወይም ቀደም ብሎ የAP ዝርዝርን በመቃኘት የተገኘ) [የቢኮን ፍሬም] መላክ ይጀምራል።

የዋይፋይ ፓኬት ማሽተት ሁነታ

የ Espressif ገንቢዎች የመተግበሪያ ሶፍትዌር ሁሉንም የዋይፋይ ፓኬጆችን "በአየር ላይ የሚበሩ" በመልሶ ጥሪ ተግባር የመቀበል ችሎታ አክለዋል። ሁነታውን ለአንድ ቋሚ ቻናል ብቻ ማቀናበር ስለሚችሉ በእውነቱ ሁሉም አይደሉም።

የመልሶ መደወል ተግባርን ለማስኬድ በጣም ጥብቅ የጊዜ ገደቦች ተጥለዋል። ይህ በቀላል የስታቲስቲክስ አሰባሰብ ሁኔታ ላይ ችግር ካላስከተለ፣ ለፒሲኤፒ ፋይል ቀረጻ ሁነታ በኤስዲ ካርዱ ላይ ቀረጻውን በማስታወሻ እና በሴማፎርስ ወረፋ ማደራጀት ነበረብኝ። መልሶ መደወሉን የሚጠራው ሂደት በአንድ ኮር እና ወደ ኤስዲ የሚጽፈውን ሂደት በሌላው ላይ ያለውን ልዩነት ግምት ውስጥ በማስገባት።

በ "ጩኸት አየር" ወቅት አንዳንድ እሽጎች ጠፍተዋል (በወረፋው ውስጥ ምንም ቦታ የለም እና ይጣላሉ), ነገር ግን በአፓርታማ ውስጥ በተለመደው "አየር" ምሽት (5..7 APs በታይነት ውስጥ), በ PCAP ውስጥ መቅዳት. ያለ ፓኬት መጥፋት ይጠናቀቃል.

በተጨማሪም፣ ለ PCAP ክትትል እና ቀረጻ፣ በፓኬት ራስጌዎች ላይ ባለው የ MAC ዝርዝር ላይ የተመሰረተ የማጣሪያ ሁነታ አለ።

ለምሳሌ አንድ ሰው በክለብ/ካፌ ውስጥ ከመግባቱ በፊት ወይም በእይታ ከመታየቱ በፊት ያለውን ገጽታ መከታተል ይችላሉ። ጥቂት ሰዎች ዋይፋይን እና አውቶማቲክ ግንኙነቶችን ከሚታወቁ ኤፒዎች ጋር ያሰናክላሉ። (አሁን አጠፋዋለሁ..)

በ Wireshark ውስጥ የተቀዳ ትራፊክ ማየት ካርታዎችን ለመረዳት ትምህርታዊ እና አስደሳች ነው - ሁሉም ይሰራል።

ከዲውዝ ፓኬጆች ጋር ለመስራት ሁነታ

በነባሪ፣ እነዚህን ጥቅሎች መላክ በlibnet80211.a ላይብረሪ ውስጥ የተከለከለ ነው፣ ይህም ያለ ምንጭ ይመጣል። ነገር ግን ሁለት ጥይቶችን በማስተካከል ማስተካከል ቀላል ነው. መጀመሪያ ላይ ጠጋኝ መለጠፍ ጠቃሚ እንደሆነ ተጠራጠርኩ። ነገር ግን የማረጋገጫ ፍሬም ፍተሻ ሁነታ በርቶ በተለያዩ ቦታዎች ከተዞርኩ በኋላ፣ “ምንድን ነው?” ብዬ አሰብኩ። በተጨማሪም በ esp8266 ውስጥ የእነዚህ ፓኬጆች አቅርቦት አልተዘጋም እና በ github ላይ ለ esp8266 ስብሰባዎች አሉ።

በብዙ ቦታዎች (የት አልልም) በዚህ ዘዴ ያልተፈለጉ ኤ.ፒ.ዎችን ማፈን ጥቅም ላይ ይውላል። እና እነዚህ "ጉልበተኞች" አይደሉም ...

እና የገረመኝ ከስልኬ ያገኘሁት የኢንተርኔት ስርጭቱ በአንዳንድ ቦታዎች ላይ አለመስራቱ ነው።

የእንደዚህ አይነት ፓኬቶች ቁጥር እና RSSI የመከታተያ ሁነታ "የግራ ኤ.ፒ.ዎች የማይወዱትን" ለመረዳት በጣም ጠቃሚ ነው.

ራውተር ሁነታ

ይህ ባህሪ ምናልባት ለማሰስ ከሁሉም በጣም የሚስብ ነው።

ESP32 በ STA + SoftAP ሁነታ ውስጥ በአንድ ጊዜ የሚደረግ አሰራርን ይደግፋል። ስለዚህ, በላዩ ላይ ክላሲክ NAT ራውተር መተግበር ይችላሉ.

የኔትወርክ ቁልልን ለመደገፍ Espressif የ lwip ቤተ-መጽሐፍትን ሹካ (በተጨባጭ ያልተለወጠ) ይጠቀማል።

ነገር ግን፣ በነባሪ፣ በመደበኛ ግንባታ፣ esp-lwip ላይብረሪ በnetif interfaces 'ap' (SoftAP) እና 'st' (STA) መካከል ማስተላለፍ አይሰጥም።

እርግጥ ነው፣ ያለ NAT ሊያደርጉት ይችላሉ፣ ነገር ግን በአንድ ጊዜ ሁለት ወይም ከዚያ በላይ STAዎችን ከ'ap' በይነገጽ ጋር በማገናኘት እና የአይፒ አድራሻዎችን ከ'st' ወደ 'ap' አውታረ መረብ በይነገጽ በማመሳሰል ላይ ችግር አለ። ስለዚህ ችግሮቹ ዋጋ የላቸውም እና በ NAT በኩል ቀላል ነው።

ከዚህም በላይ ከማርቲን-ጀር የተገኘ ፎርክ esp-lwip አለ, እሱም ለ IP4 ቀላል የ NAT አተገባበርን ይጨምራል.

ምንም እንኳን እጆቼን በመዋቢያነት እንደገና ለመስራት እያሳከኩ ቢሆንም (በእኔ አስተያየት ፣ ያለ ፕሮጀክቱ ሹካ ቀላል ነበር ፣ ግን በ LWIP በኩል)ሜንጦ በስብሰባ ወቅት የተገለጹ ተግባራት)፣ ነገር ግን ስንፍና ሰፍኗል እና ከማርቲን-ጀር ያለው አማራጭ እንደ ጥቅም ላይ ይውላል።

በራውተር ሁነታ፣ ገቢ እና ወጪ IP4 ትራፊክ ይታያል።

በተለይም የሚከተለው በስክሪኑ ላይ እንዲታይ እና ስታቲስቲክስን በፋይል ለመሰብሰብ ከእሱ ወጥቷል፡

  • ከSoftAP ESP32 (DHCP ፓኬቶች) ጋር የተገናኘው መሣሪያ ስም
  • ዩአርኤል ከዲኤንኤስ ጥያቄዎች (UDP ወደብ 53) ከSoftAP ESP32 ጋር ከተገናኘ መሳሪያ።

በተጨማሪም፣ የትራፊክ ቀረጻ ወደ PCAP ፋይል ማንቃት ይችላሉ።

ይህ ሁነታ በጣም ጠቃሚ ነው, ለምሳሌ, ለመረዳት, ለምሳሌ, ስልክዎ ወደ አውታረ መረቡ ምን እንደሚልክ እና የት እንደሚሄድ.

በኔትወርክ በይነገጽ ደረጃ softAP ESP32 ገቢ እና ወጪ ትራፊክን ሙሉ በሙሉ የመቆጣጠር ችሎታን ከግምት ውስጥ በማስገባት ይህንን ሁነታ ለመጠቀም ሌሎች መንገዶችን ማሰብ ይችላሉ-Ehernet header (destMAC[6]+srcMAC [6]+ type[2]) + ክፍያ (IP4, IP6, DCHP, ወዘተ ዓይነት).

በመርህ ደረጃ፣ ESP32 የ WiFi->WiFi ራውተር ተግባርን በደንብ ይቋቋማል፣ ያለ ምንም ልዩ መዘግየት በመደበኛ ትራፊክ ውስጥ ያልፋል። በESP32 ላይ በራውተር በኩል የተገናኘ ስልክ መዘግየቶች አይታዩም።

እንደ አለመታደል ሆኖ፣ Espressif API ከSoftAP EPS32 ጋር የተገናኘ ለ MAC ማጣሪያ የማዘጋጀት ችሎታ የለውም። በምትኩ፣ “ያልተፈለጉ” STAዎችን አስቀድመው ለተገናኙት “ደህና ሁኚ” (esp_wifi_deauth_sta) ለማለት ታቅዷል።

በ MAC የተገናኙ STAዎችን ማጣራት በ esp_wifi_deauth_sta() ጥሪ በኩል መደረግ ነበረበት።

በማጠቃለያው

ምንም እንኳን ከ ESP32 ጋር በመስራት ማዕቀፍ ውስጥ ምንም አዲስ ነገር ባላመጣም, ምናልባት ውጤቱ (የምንጭ ኮድ) ለአንድ ሰው አስደሳች ይሆናል.

ኮዱ የተፃፈው ለትምህርት ዓላማ ብቻ መሆኑን ልብ ማለት እፈልጋለሁ። ለ "ጠለፋ" ወዘተ, ሆን ተብሎ በጣም ምቹ አይደለም.

የተጠናቀቁትን ሹራቦች በሽቦ ለመሸጥ 1.5-2 ሰአታት ስለፈጀ የታተመ የወረዳ ሰሌዳ አልሰራሁም.

እና ካደረጉት, ከተዘጋጁት ቦርዶች ሳይሆን ከተናጥል አካላት መሰብሰብ ያስፈልግዎታል. ከዚያ መጠኖቹ የበለጠ ትንሽ ይሆናሉ.

ምንጭ: hab.com

አስተያየት ያክሉ