ESP32 تي وائي فائي سان گيمنگ

ESP32 تي وائي فائي سان گيمنگ

مون کي وائي فائي نيٽ ورڪن جي تجزيي لاءِ هڪ کيسي وارو اوزار ٺاهڻ جو ڪهڙو خيال ڏنو؟ هي آرٽيڪل.

ان خيال لاءِ انهن جي مهرباني. مون کي صرف ڪرڻ لاء ڪجھ به نه هو.

سمورو ڪم هڪ شوق جي حصي طور ڪيو ويو آهي انهي مقصد لاءِ ته مذاق ڪرڻ ۽ نيٽ ورڪ ٽيڪنالاجي جي ميدان ۾ منهنجي ڄاڻ کي وڌائڻ. آهستي آهستي، هفتي ۾ 1..4 ڪلاڪ، هن سال جي شروعات کان وٺي.
مون ڪنهن به عملي استعمال جو منصوبو نه ڪيو. اهي. هي هيڪر جو اوزار ناهي.

هن وقت، سڀ رٿابندي ڪيل ڪارڪردگي ڪم ڪري رهي آهي. سڀ ذريعا، مڪمل طور تي اسيمبليءَ لاءِ تيار، هتي پوسٽ ڪيو. هتي پڻ اسيمبليءَ جون هدايتون آهن، وغيره. هن نوٽ ۾، مان github تي پوسٽ ڪيل معلومات کي نقل نه ڪندس. مان توهان کي صرف اهو ٻڌايان ٿو ته آئون الڳ الڳ بيان ڪرڻ ضروري سمجهان ٿو.

"عالمگير اوزار" تي منهنجي راء ۽ ESP32 چونڊڻ جو سبب

مان سچ هجڻ جي دعويٰ نٿو ڪريان. هر ڪنهن کي پنهنجو آهي. مان پنهنجي هارڊويئر جي چونڊ کي درست ثابت ڪرڻ جي ڪوشش ڪندس.

مضمون ۾ تجويز ڪيل لينڪس جي ميلاپ جو استعمال ڪيس (ابتدائي طور تي Raspberry Pi) + "پريفيرل" هڪ ڪنٽرولر جي صورت ۾ (STM32) + CC1110 (8051 core) ۽ اتي هر ممڪن ڪم ڪرڻ جو منصوبو (125kHz، NFC، 433mHz، USB، iButton، بلوٽوت،؟) مون لاء مناسب نه لڳي. بهرحال، هن پروجيڪٽ اهو ڏسڻ ۾ اچي ٿو ته اهو خانگي ۽ بند رهندو (flipper-zero github "هن تنظيم ۾ ڪوبه عوامي ذخيرو ناهي.") ۽ تمام عام هارڊويئر ڏانهن ويو.

شايد مان غلط آهيان، ۽ مستقبل ۾ ليکڪ سافٽ ويئر ذريعن کي عام طور تي دستياب بڻائيندا. پر جيڪڏهن نه، ته پوءِ مان هارڊويئر جو اهڙو ٽڪرو نه خريد ڪريان ها سواءِ سورس ڪوڊ جي.

"اوزار" لاءِ منهنجون گهرجون

دٻي کي ننڍڙو هجڻ گهرجي (ننڍو بهتر).

هن ڪري:

  • ڪابه بلٽ ان بيٽري جي ضرورت ناهي. موجوده> 100 mA سان جڏهن وائي فائي سان ڪم ڪندي، ٺهيل بيٽري يا ته وڏي هوندي يا ڊگهي نه رهندي. تنهن ڪري، "باڪس" کي هڪ معياري پاور بئنڪ طرفان طاقتور ڪيو وڃي. بهرحال، مون کي هميشه منهنجي کيسي / ڪار ۾ هڪ پاور بئنڪ آهي.
  • اندر اوزارن سان گڏ هڪ لينڪس ”باڪس“ رکو، سڀني ٻولين ۾ ڪيترن سالن کان لکيو ويو هڪ ننڍڙي اسڪرين سان ۽ ڪنٽرول بٽڻ جو هڪ ننڍڙو سيٽ، اهو ڪو به احساس ناهي. نتيجن کي عام ليپ ٽاپ تي مڪمل ڪيبورڊ ۽ اسڪرين سان ڏسي سگھجي ٿو.
  • اجزاء کي آساني سان رسائي ۽ وڏي پيماني تي ڄاڻڻ گهرجي (دستياب SDK، ڪيترائي مثال ۽ دستاويز).

نتيجي طور، مون لاء، پسند پڌرو هو - ESP32.

مضمون ۾ بيان ڪيل سڀني ڪمن لاء جيڪي مون کي عمل ڪرڻ لاء اشارو ڪيو، ESP32 جون صلاحيتون ڪافي آهن. جيتوڻيڪ سڀ کان وڌيڪ مان اڃا تائين ڪرڻ چاهيان ٿو:

  • بلوٽوت سان گڏ راند ڪريو.
  • آسان هارڊويئر سان 433mHz رينج سان راند ڪريو (صرف طول و عرض ماڊليشن، جيڪو عملي ضرورتن لاءِ ڪافي آهي).

ESP32 ۾ عطر ۾ مکڻ

  • ESP32 SDK (IDF) ڪجهه بي ترتيب آهي.
  • ڪجھ ڪارڪردگي (وائي فائي اسٽيڪ، مثال طور) جمع ٿيل جامد لائبريري جي صورت ۾ ماخذ ڪوڊ کانسواءِ اچي ٿو.
  • 5gHz بينڊ سپورٽ نه آهي ۽ وائي فائي سان ڪم ڪرڻ ۾ ڪجهه حدون ۽ بيڪار آهن.

پر قيمت / سائيز مڪمل طور تي انهن گهٽتائي لاء معاوضو ڏئي ٿو.

مکيه سافٽ ويئر ڪارڪردگي

مان مختصر طور تي بيان ڪندس ڪارڪردگي ۽ منهنجي راء بابت ...

سيٽنگون منظم ڪرڻ ۽ SD کان فائلون اپلوڊ ڪرڻ

سڀ خارجي ڪنٽرول هڪ سادي ويب پيج ذريعي ڪيو ويندو آهي، هڪ الڳ مينيو آئٽم ۾ شروع ڪيو ويو آهي. ESP32 وائي فائي اي پي موڊ ۾ شروع ٿئي ٿو ۽ هڪ مقرر ٿيل IP پتي تي هڪ صفحو ڏيکاري ٿو.

جيتوڻيڪ ESP32 ڪور ڪافي تيز آهن، جيئن تجربا ڏيکاريا ويا آهن، هڪ ئي وقت ۾ ٺهيل ويب سروس جي آپريشن ۽ مثال طور، روٽر موڊ بلڪل مطابقت ناهي. تنهن ڪري، ڪوبه متحرڪ ڪنٽرول نه آهي ۽ صفحو ٻين سڀني طريقن ۾ دستياب ناهي.
ان کان علاوه، تحقيق جي مقصدن لاء متحرڪ ڪنٽرول جي ضرورت ناهي.

بيڪن پيڪيجز سان ڪم ڪرڻ جو طريقو

موڊ بينل آهن ۽ تمام دلچسپ نه آهن. ٺاهيو "ڇاڪاڻ ته اهو ممڪن آهي." چڪاس لاءِ.
سرڪاري Espressif مثالن ۾ موجود آهن.

اي پي لسٽ اسڪيننگ موڊ.
دراصل، ڪو به سمارٽ فون اهو ڪري سگهي ٿو.
خير، هن موڊ ۾ AP لسٽ محفوظ ڪئي ويندي.
بيڪن اسپامر.
ESP32 شروع ٿئي ٿو AP جي طور تي هڪ پوشيده SSID ۽ هڪ بي ترتيب ميڪ سان ۽ موڪلڻ شروع ٿئي ٿو [بيڪن فريم] اڳ ۾ ٺهيل SSIDs جي فهرست مطابق (دستي طور تي ٺاهيل يا AP لسٽ کي اسڪين ڪندي اڳ ۾ حاصل ڪيل)

وائي فائي پيڪٽ سنفنگ موڊ

ايسپريسف ڊولپرز ايپليڪيشن سافٽ ويئر جي صلاحيت شامل ڪئي آهي سڀني وائي فائي پيڪٽس حاصل ڪرڻ لاءِ ”هوا ۾ اڏامندڙ“ ڪال بڪ فنڪشن ذريعي. اصل ۾ سڀ نه، ڇو ته توهان صرف هڪ مقرر ڪيل چينل لاء موڊ سيٽ ڪري سگهو ٿا.

ڪال بڪ فنڪشن کي پروسيس ڪرڻ تي تمام سخت وقت جون پابنديون لڳل آهن. جيڪڏهن اهو سادي انگ اکر گڏ ڪرڻ واري موڊ لاءِ مسئلا پيدا نٿو ڪري ، ته پوءِ SD ڪارڊ تي PCAP فائل رڪارڊنگ موڊ لاءِ مون کي ٽينڪر ڪرڻو پوندو ، ميموري ۽ سيمفورس ۾ قطار ذريعي رڪارڊنگ کي ترتيب ڏيڻ. انهي خاصيت کي نظر ۾ رکندي ته ڪال بڪ کي ڪال ڪرڻ وارو عمل هڪ ڪور تي هلندو آهي، ۽ اهو عمل جيڪو SD ڏانهن ٻئي ۾ لکندو آهي.

”شور واري هوا“ دوران، ڪجهه پيڪيٽ گم ٿي ويندا آهن (قطار ۾ ڪا جاءِ نه هوندي آهي ۽ انهن کي رد ڪيو ويندو آهي)، پر شام جو هڪ اپارٽمنٽ جي عام ”هوا“ سان (5..7 APs ڏسڻ ۾)، PCAP ۾ رڪارڊنگ پيڪيج جي نقصان کان سواء مڪمل ڪيو ويو آهي.

اضافي طور تي، PCAP جي نگراني ۽ رڪارڊنگ لاء، پيڪٽ هيڊرز ۾ MAC لسٽ جي بنياد تي فلٽرنگ موڊ موجود آهي.

مثال طور، توهان ٽريڪ ڪري سگهو ٿا هڪ شخص جي ظاهر ٿيڻ کان اڳ هڪ ڪلب/ڪيفي ۾ داخل ٿيڻ يا نظر ۾ ظاهر ٿيڻ کان اڳ. ٿورا ماڻهو وائي فائي ۽ خودڪار ڪنيڪشن کي غير فعال ڪن ٿا سڃاتل APs سان. (مان ان کي هاڻي بند ڪري رهيو آهيان ..)

Wireshark ۾ رڪارڊ ٿيل ٽرئفڪ کي ڏسڻ تعليمي ۽ دلچسپ نقشن کي سمجھڻ لاءِ - اھو سڀ ڪم ڪري ٿو.

ڊيوٿ پيڪيجز سان ڪم ڪرڻ جو طريقو

ڊفالٽ طور، هي پيڪيجز موڪلڻ libnet80211.a لائبريري ۾ منع ٿيل آهي، جيڪا بغير ذريعن جي اچي ٿي. پر ڪجھ بٽ ٽائيڪ ڪندي ان کي درست ڪرڻ آسان آھي. پهرين ۾ مون کي شڪ ٿيو ته ڇا اهو پيچ پوسٽ ڪرڻ جي قابل هو. پر مختلف هنڌن تي گھمڻ کان پوءِ ڊي اوٿنيڪيشن فريم اسڪيننگ موڊ آن ٿيو، مون سوچيو: ”ڇا ڳالهه آهي. ان کان علاوه، esp8266 ۾ انهن پيڪيجز جي ترسيل بند نه ڪئي وئي آهي ۽ esp8266 لاء گٿب تي اسيمبليون آهن.

ڪيترن ئي هنڌن تي (مان نه چوندس ته ڪٿي) هن طريقي سان ناپسنديده اي پي جي دٻائڻ جو استعمال ڪيو ويندو آهي. ۽ اهي ”بدمعاش“ نه آهن...

۽ مون کي به حيرت هئي ته منهنجي فون مان انٽرنيٽ جي تقسيم ڪجهه هنڌن تي ڪم نه پئي ڪري.

اهڙين پيڪيٽن جي نمبر ۽ RSSI کي ٽريڪ ڪرڻ جو موڊ سمجھڻ لاءِ تمام ڪارائتو آهي ”جتي کاٻي ڌر وارا اهو پسند نٿا ڪن.

روٽر موڊ

هي مضمون شايد ڳولڻ لاء سڀني کان وڌيڪ دلچسپ آهي.

ESP32 STA + SoftAP موڊ ۾ هڪ ئي وقت جي آپريشن کي سپورٽ ڪري ٿو. تنهن ڪري، توهان ان تي هڪ کلاسک NAT روٽر لاڳو ڪري سگهو ٿا.

نيٽ ورڪ اسٽيڪ کي سپورٽ ڪرڻ لاءِ، ايسپريسف استعمال ڪري ٿو lwip لائبريري جو ڪانٽو (عملي طور تي غير تبديل ٿيل).

پر، ڊفالٽ طور، معياري تعمير ۾، esp-lwip لائبريري netif انٽرفيس 'ap' (SoftAP) ۽ 'st' (STA) جي وچ ۾ فارورڊنگ مهيا نٿو ڪري.

يقينا، توهان اهو ڪري سگهو ٿا NAT کان سواءِ، پر هڪ ئي وقت ٻه يا وڌيڪ STAs کي 'ap' انٽرفيس سان ڳنڍڻ ۽ IP پتي کي 'st' نيٽ ورڪ انٽرفيس کان 'ap' تائين هم وقت سازي ڪرڻ ۾ مسئلو آهي. تنهن ڪري مشڪلاتون ان جي لائق نه آهن ۽ اهو NAT ذريعي آسان آهي.

ان کان علاوه، مارٽن-گر کان ھڪڙو فورڪ esp-lwip آھي، جيڪو IP4 لاء NAT جو ھڪڙو سادو عمل شامل ڪري ٿو.

جيتوڻيڪ منهنجي هٿن ۾ خارش ٿي رهي هئي ته ان کي مڪمل طور تي کاسمیٹيڪل طور تي ٻيهر ٺاهيو (منهنجي خيال ۾، اهو منصوبو جي ڪانٽو کان سواء آسان هو، پر LWIP ذريعي.ٿلهو اسيمبليء جي دوران بيان ڪيل افعال)، پر سستي غالب ٿي وئي ۽ مارٽن-گر کان اختيار استعمال ڪيو ويو جيئن آهي.

روٽر موڊ ۾، ايندڙ ۽ نڪرڻ واري IP4 ٽرئفڪ کي ڏٺو ويندو آهي.

خاص طور تي، اسڪرين تي ڊسپلي ڪرڻ ۽ فائل ۾ انگ اکر گڏ ڪرڻ لاء هيٺ ڏنل ڪڍيا ويا آهن:

  • ڊوائيس جو نالو جيڪو SoftAP ESP32 (DHCP پيڪٽس) سان ڳنڍيل آهي
  • DNS درخواستن مان URL (UDP پورٽ 53) هڪ ڊوائيس تان جيڪو SoftAP ESP32 سان ڳنڍيل آهي.

اضافي طور تي، توهان هڪ PCAP فائل ڏانهن ٽرئفڪ رڪارڊنگ کي فعال ڪري سگهو ٿا.

هي موڊ تمام مفيد آهي، مثال طور، سمجهڻ لاء، مثال طور، توهان جو فون نيٽ ورڪ ڏانهن ڇا موڪلي ٿو ۽ اهو ڪٿي وڃي ٿو.

توھان ھن موڊ کي استعمال ڪرڻ لاءِ ٻين طريقن جي باري ۾ سوچي سگھو ٿا، نيٽ ورڪ انٽرفيس جي سطح تي softAP ESP32 ايندڙ ۽ نڪرڻ واري ٽرئفڪ کي مڪمل طور تي ڪنٽرول ڪرڻ جي صلاحيت کي مدنظر رکندي: Ehernet header (destMAC[6]+srcMAC[6]+type[2]) + پيل لوڊ (IP4، IP6، DCHP، وغيره جو قسم).

اصول ۾، ESP32 وائي فائي-> وائي فائي روٽر فنڪشن سان تمام سٺو نقل ڪري ٿو، بغير ڪنهن خاص دير جي عام ٽرئفڪ جي ذريعي گذري ٿو. خاص طور تي، ESP32 تي روٽر ذريعي ڳنڍيل فون ۾ تاخير قابل ذڪر نه آهن.

بدقسمتي سان، Espressif API وٽ سافٽ ايپ EPS32 سان ڳنڍيل MAC لاءِ فلٽر مقرر ڪرڻ جي صلاحيت نه آهي. ان جي بدران، اهو چوڻ جي تجويز آهي ته "الوداع" (esp_wifi_deauth_sta) اڳ ۾ ئي ڳنڍيل STAs کي جيڪي "مطلوب نه آهن".

جڙيل STAs لاءِ MAC ذريعي فلٽرنگ esp_wifi_deauth_sta() ڪال ذريعي ٿيڻي هئي

نتيجو

جيتوڻيڪ مون کي ESP32 سان ڪم ڪرڻ جي فريم ورڪ ۾ ڪا به نئين ڳالهه نه آئي، شايد نتيجو (ذريعو ڪوڊ) ڪنهن لاءِ دلچسپ هوندو.

مان اهو نوٽ ڪرڻ چاهيان ٿو ته ڪوڊ صرف تعليمي مقصدن لاءِ لکيو ويو هو. ”هيڪنگ“ وغيره لاءِ، اهو عمدي طور ٺاهيو ويو هو بلڪل آسان ناهي.

مون هڪ پرنٽ ٿيل سرڪٽ بورڊ نه ٺاهيو آهي ڇاڪاڻ ته اهو 1.5-2 ڪلاڪ لڳندو هو تيار ٿيل اسڪارف کي تار سان گڏ ڪرڻ ۾.

۽ جيڪڏھن توھان ڪريو ٿا، توھان کي ان کي گڏ ڪرڻ جي ضرورت آھي تيار ٿيل بورڊن مان نه، پر انفرادي اجزاء مان. پوءِ طول و عرض به ننڍا ٿيندا.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو