البرامج الثابتة للمقالب عالية التقنية على أجهزة M5Stack ESP32
الشعار بواسطة @unagironin
كما تم الإعلان عنه في وقت سابق من هذا العام، تمت أرشفة M5Stick-NEMO ولم يعد قيد التطوير النشط. لقد تجاوز المشروع جميع أهدافي الشخصية وكان من الرائع رؤية المجتمع يجتمع معًا ويتحمّس للمشروع ويساهم فيه ويستلهم منه.
بقدر ما يهمني، وصل المشروع إلى الحد الأقصى لما تستطيع عائلة M5Stick القيام به، لهذا النوع من الحيل والمقالب، دون إضافة أجهزة خارجية مثل بطاقات SD أو أجهزة المودم الراديوية أو مصابيح LED الأكبر حجمًا أو وحدات RFID أو أشياء أخرى. يعد عمر البطارية أيضًا دون المستوى الأمثل لتشغيل هذه الأجهزة الطرفية الخارجية. تدور العديد من طلبات الميزات حول دعم هذه الأجهزة الخارجية، ولا أملك الموارد أو الوقت لإضافة هذه الأجهزة، ولكن الخبر السار هو أن الآخرين قد واصلوا العمل بميزات أفضل بصراحة. أحد المشاريع الواعدة هو CatHack.
فترة طويلة، وشكرا لجميع الأسماك!
بدأ NEMO مشروعًا شخصيًا لمساعدتي في معرفة المزيد حول تطوير ESP32 باستخدام Arduino IDE. قررت تكرار بعض المقالب الشائعة والرائجة والتي كانت تحظى باهتمام كبير في مجتمع التكنولوجيا، كتحدي لنفسي، وأيضًا لفهم هذه الهجمات بشكل أفضل.
تمت تسمية نيمو على اسم السمكة الصغيرة والذكية والعنيدة في فيلم البحث عن نيمو. يتناقض هذا المشروع مع أداة أخرى عالية التقنية مرتبطة ببعض الكائنات البحرية. لقد أردت أن أثبت أن هناك الكثير من الأشياء التي يمكنك القيام بها باستخدام مجموعة أدوات تطوير صغيرة وبعض الفضول. ليس لدي أي أوهام باستبدال قدرات أي جهاز مماثل بهذا المشروع. إنها فقط من أجل المتعة وتعليمي الخاص.
تم تعديل .github/workflow/compile.yml للتجميع باستخدام وظيفة DEAUTH.
تمت إضافة دعم لـ SONG على StickC Plus وPlus2
تمت إضافة "قائمة الهجوم" عند رؤية تفاصيل نقطة الوصول
Clone Portal (إنشاء بوابة شريرة بنفس SSID الخاص بالهدف)
هجوم Deauth (يقوم ببث إطارات إلغاء المصادقة إلى الأجهزة المتصلة بنقطة الوصول هذه)
Deauth+Clone (إنشاء البوابة الشريرة باستخدام نفس SSID وإرسال إطارات إلغاء المصادقة إلى نقطة الوصول تلك)
تمت إضافة خيار في الإعدادات لتركيب/إلغاء تحميل بطاقة SDCard عند استخدام أجهزة M5StickC
تم إنشاء ملف جديد للتعامل مع SPI/SD في حالة عدم استخدام CARDPUTER
تعمل SDCARD الآن على M5StickC Plus2
أفكار؟
منفذ TV B-Gone (بفضل HAKRWATCH من MrArm) لإغلاق العديد من أجهزة التلفاز وأجهزة العرض وغيرها من الأجهزة التي يتم التحكم فيها بالأشعة تحت الحمراء
جهاز AppleJuice iOS Bluetooth يقوم بإقران البريد العشوائي
إرسال بريد إلكتروني غير مرغوب فيه لإشعارات جهاز Bluetooth لنظامي SwiftPair (Windows) وAndroid
WiFi Spam - معرفات SSID المضحكة وWiFi Rickrolling والوضع العشوائي الذي ينشئ المئات من معرفات SSID ذات الأسماء العشوائية في الدقيقة
بوابة WiFi NEMO - بوابة مقيدة تحاول هندسة بيانات اعتماد البريد الإلكتروني - تحفظ أسماء المستخدمين وكلمات المرور على بطاقة SD (إذا تم إدخالها في قارئ مدعوم)
ماسح WiFi SSID - عرض معرفات SSID بتردد 2.4 جيجا هرتز القريبة، والحصول على معلومات عنها، وحتى استنساخ معرفات SSID في بوابة NEMO
ساعة رقمية 24 ساعة قابلة للتعديل بواسطة المستخدم ومدعومة بـ M5 Stick RTC بحيث تحافظ على وقت ثابت نسبيًا حتى في النوم العميق ووضع البطارية المنخفض
إعدادات مدعومة بـ EEPROM للدوران والسطوع والتعتيم التلقائي وNEMO Portal SSID
مستوى البطارية والاعتمادات في قائمة الإعدادات
هناك ثلاثة ضوابط رئيسية:
الصفحة الرئيسية - يوقف العملية الحالية ويعيدك إلى القائمة من أي مكان تقريبًا في NEMO
التالي - ينقل المؤشر إلى خيار القائمة التالي. في أوضاع الوظائف، يؤدي هذا عادةً إلى إيقاف العملية وإعادتك إلى القائمة السابقة.
تحديد - لتنشيط خيار القائمة المحدد حاليًا، وتنشيط الشاشة المعتمة في أوضاع الوظائف
ستيك سي وستيك سي بلس
الطاقة: اضغط لفترة طويلة على زر الطاقة لمدة 6 ثوان لإيقاف تشغيل الوحدة
الصفحة الرئيسية: اضغط على زر الطاقة (الأقرب إلى منفذ USB)
التالي: اضغط على الزر الجانبي
التحديد: اضغط على الزر M5 الموجود في مقدمة الوحدة
كمبيوتر
الصفحة الرئيسية: اضغط على مفتاح Esc/~/` أو مفتاح السهم الأيسر/،
التالي/السابق: اضغط على السهم لأسفل/. المفتاح والسهم لأعلى/; مفاتيح للتنقل
حدد: اضغط على مفتاح موافق/إدخال أو سهم لليمين/؟ مفتاح
في وضع بوابة NEMO، يقوم NEMO بتنشيط نقطة اتصال WiFi مفتوحة تسمى "Nemo Free WiFi" (قابلة للتكوين في Portal.h) مع تنشيط DNS وDHCP وخوادم الويب.
تقدم بوابة NEMO صفحة تسجيل دخول مزيفة تدعي أنها توفر الوصول إلى الإنترنت إذا قمت بتسجيل الدخول.
هذا هجوم هندسة اجتماعية، وسيقوم بتسجيل اسم المستخدم وكلمات المرور المدخلة على الصفحة.
من خلال تفاصيل فحص Wifi، يمكنك استنساخ SSID موجود من قائمة الفحص. سيؤدي الخروج من بوابة NEMO إلى مسح Evil Twin SSID
يمكنك عرض بيانات الاعتماد التي تم التقاطها عن طريق الاتصال بالبوابة من جهازك الخاص وتصفح http://172.0.0.1/creds
يمكنك تعيين SSID مخصص عن طريق الاتصال بالبوابة من جهازك الخاص وتصفح http://172.0.0.1/ssid
إذا كان جهازك يدعم EEPROM للإعدادات، فسيتم حفظ معرف SSID المخصص الذي تدخله كإعداد افتراضي، حتى إذا كان متوقفاً عن التشغيل.
إذا كان جهازك يحتوي على قارئ بطاقة SD مع إدخال بطاقة بتنسيق نظام ملفات FAT، فسيتم تسجيل أسماء المستخدمين وكلمات المرور في nemo-portal-creds.txt على بطاقة SD لتتمكن من الاطلاع عليها لاحقًا.
يتم تمكين دعم بطاقة SD بشكل افتراضي فقط على النظام الأساسي M5Stack Cardputer. يمكن تمكينه على أجهزة M5Stick ولكن يجب إنشاء قارئ بطاقة SD وإرفاقه برأس دبوس اللوحة الأمامية.
بوابة NEMO مخصصة للاستخدام فقط في المهام المهنية ذات النطاق الصحيح للعمل أو الأغراض التعليمية أو التوضيحية. يعد تخزين المعلومات الشخصية أو بيعها أو استخدامها دون موافقة أمرًا مخالفًا للقانون. ؟
هذه هي الطريقة الأسهل على الإطلاق للحصول على NEMO
يحتوي M5Stick C Plus Quick Start على روابط لتطبيق M5Burner لأنظمة التشغيل Linux وMacOS وWindows. هذه هي الأداة الرسمية لتثبيت UIFlow والبرامج الثابتة الرسمية الأخرى. أقدم ثنائيات محدثة لـ NEMO هناك.
إطلاق M5Burner
حدد "StickC" من القائمة الموجودة على اليسار (أو StampS3 لـ Cardputer)
استخدم البحث الموجود أعلى التطبيق للبحث عن "NEMO". سيتم تحميل تصميماتي الرسمية بواسطة "4x0nn" وستحتوي على صور.
انقر فوق تنزيل
انقر فوق حرق
قم بتثبيت أدوات ESP-IDF وفقًا لدليل بدء استخدام Espressif
افتح أداة esp-idf CMD (على نظام Windows) - على نظام Mac أو Linux، يجب أن يكون esp-idf.py وesptool.py في مسار النظام.
esptool.py --port COMPORT -b 115200 write_flash -z 0x0 M5Nemo-VERSION.bin
قد يكون المنفذ هو منفذ COM، على سبيل المثال COM4، COM11 على نظام التشغيل Windows. في نظامي التشغيل Mac وLinux، عادةً ما يكون الملف بتنسيق /dev مثل /dev/ttyUSB0 أو /dev/ttyACM0 أو /dev/cu.usbserial-3
يجب أن يكون M5Nemo-VERSION.bin هو الإصدار الذي قمت بتنزيله من إصدار GitHub - ويفضل أن يكون الإصدار الأحدث المتاح.
إذا كنت تريد تخصيص NEMO أو المساهمة في المشروع، فيجب أن تكون على دراية ببناء NEMO من المصدر.
تثبيت اردوينو IDE. لقد استخدمت Arduino 1.8 على Linux وWindows، وArduino 2.2 على Windows بنجاح.
قم بتثبيت لوحات M5Stack لـ Arduino IDE: في ملف -> التفضيلات، الصق عنوان URL هذا في مربع النص "عناوين URL لمدير اللوحات". استخدم الفواصل بين عناوين URL إذا كانت هناك عناوين URL موجودة بالفعل. https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
إذا لم يظهر M5Stack -> M5Stick-C-Plus ضمن الأدوات -> اللوحات، فاستخدم الأدوات -> اللوحات -> مدير اللوحات وابحث عن M5Stack. سيؤدي هذا إلى تثبيت الدعم لمعظم لوحات M5Stack بما في ذلك Stick C Plus.
تأكد من تحديد طراز الجهاز الصحيح (مثل M5Stick-C أو M5Stick-C-Plus أو M5Cardputer) في قائمة اللوحات.
تثبيت المكتبات اللازمة. في Sketch -> Include Library -> Library Manager، ابحث عن المكتبات التالية وقم بتثبيتها وأي تبعيات تتطلبها:
M5StickCPlus أو M5StickC أو M5Cardputer
إير ريموت ESP8266
قم بإلغاء التعليق على سطر #define
المناسب بالقرب من الجزء العلوي لمنصتك (STICK_C أو STICK_C_PLUS أو CARDPUTER)
تبديل مخططات التقسيم. Tools
-> Partition Scheme
-> No OTA (Large APP)
- أحيانًا يُطلق على هذا الخيار اسم Huge APP
إعدادات
يجب أن يتم تجميع التعليمات البرمجية بشكل نظيف والعمل على M5Stick C Plus خارج الصندوق من الفرع الرئيسي أو علامة الإصدار.
قم بإلغاء التعليق على خيار #define
المناسب فقط وإلا ستحدث أخطاء في برنامج التحويل البرمجي.
إذا انتقلت الشاشة لسبب ما من المعتمة جدًا عند المستوى 0 إلى السطوع الكامل تقريبًا عند المستوى 1 ولم تؤثر مستويات السطوع الإضافية على أي شيء، فاضبط المتغير pct_brightness على false.
تجميع وتحميل المشروع
تثبيت اردوينو CLI
أضف مؤشر M5Stack إلى Arduino Core
إضافة مكتبات M5Stack
# تثبيت m5stack boardsarduino-cli core install m5stack:esp32 --additional-urls https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json --تحذير على مستوى السجل --verbose# تثبيت المكتبة المطلوبة تثبيت Arduino-cli lib M5Cardputer --تحذير على مستوى السجل --verbose تثبيت arduino-cli lib IRRemoteESP8266 --تحذير على مستوى السجل --verbose# ترجمة Sketcharduino-cli --fqbn m5stack:esp32:m5stack_cardputer -e --build-property build.partitions=huge_app --build-property upload.maximum_size= 3145728 ./m5stick-nemo.ino
سيؤدي هذا إلى إنشاء ثنائيات متعددة بناءً على رسم القسم، ويمكنك دمج ثنائي واحد باستخدام esptool
تثبيت esptool - pip install -U esptool
esptool.py --chip esp32s3 merge_bin --output Final.bin 0x0000 m5stick-nemo.ino.bootloader.bin 0x8000 m5stick-nemo.ino.partitions.bin 0x10000 m5stick-nemo.ino.bin
يمكنك الآن تحديث البرامج الثابتة الثنائية المدمجة باستخدام esptool
esptool.exe write_flash -z 0 Final.bin
قم بتثبيت عامل الميناء
قم بتشغيل ./scripts/docker-build.sh <configs/.env.>
قم بتشغيل ./scripts/flash.sh --device=<your-device-port>
# سيؤدي هذا إلى إنشاء صورة لجميع المكتبات المطلوبة استنادًا إلى النظام الأساسي الذي تم تكوينه، وسيقوم بتجميع وإخراج ودمج الثنائيات # افتراضيًا، سيتم تجميع هذا لـ M5Cardputer باللغة المحلية en-us، ./config/.env.M5Cardputer./ البرامج النصية/docker-build.sh # إذا كنت تريد تحديد تكوين بناء مختلف، فيمكنك تمريره كمعلمة. راجع ./configs/ للتعرف على التكوينات المختلفة./scripts/docker-build.sh ./config/.env.M5Cardputer# سيتم إخراج الملفات الثنائية إلى ./buildls ./build# سيؤدي هذا إلى وميض مخرجات البناء من خطوة الإنشاء، فهو يعيد استخدام صورة الحاوية من الخطوة السابقة.# افتراضيًا، سيتم تجميع هذا لـ M5Cardputer باللغة الإنجليزية، ./config/.env.M5Cardputer./scripts/flash.sh --device=/dev/ttyusb0 # إذا قمت بتمرير تكوين بناء مختلف، فتأكد من تمريره إلى البرنامج النصي للفلاش./scipts/flash.sh --device=/dev/ttyusb0 --build-config=./config/.env.M5Cardputer
تقوم العديد من الميزات بإخراج معلومات تصحيح الأخطاء إلى الشاشة التسلسلية. استخدم ميزة Serial Monitor في Arduino IDE أو M5Burner لجمع هذه المعلومات. قد يكون لها تلميحات مفيدة. عند تقديم تقرير خطأ، غالبًا ما يكون من المفيد تضمين مخرجات الشاشة التسلسلية.
إعادة تعيين إيبروم. في الطرز التي تدعم إعدادات EEPROM، استخدم "مسح الإعدادات" من قائمة الإعدادات، أو اضغط مع الاستمرار على الزر "التالي" (المفتاح الجانبي في طرز StickC، أو Tab أو السهم لأسفل على Cardputer) أثناء التشغيل.
يمكن ملاحظة مصباح الأشعة تحت الحمراء الخاص بـ TV-B-Gone من خلال كاميرا الهاتف الذكي، حيث ينبعث منه شعاع ضوء أرجواني شاحب. إذا بدا أنه يعمل باستمرار، أو إذا لم يومض مطلقًا أثناء عمليات TV-B-Gone، فهذا يعني وجود خطأ ما. الإبلاغ عن خطأ. هناك مشكلة معروفة في عدم عمل TVBG بعد استخدام البريد العشوائي عبر Bluetooth أو البريد العشوائي عبر wifi.
حاول عرض قوائم wifi من عدة أجهزة مختلفة إذا كنت تشك في أن البريد العشوائي عبر wifi لا يعمل. في بعض الأحيان، يستطيع مدير شبكة Linux رؤية الشبكات التي لا تستطيع الهواتف الذكية رؤيتها. يرجى تضمين نتائج هذا الاختبار في حالة الإبلاغ عن مشكلات البريد العشوائي في شبكة wifi.
قامت Apple بتصحيح الكثير من عناصر البلوتوث منذ صيف 2023. إذا قمت باختبار AppleJuice، فجرّب بعض أنواع أجهزة AppleTV، لأنها تميل إلى أن تكون أكثر موثوقية نظرًا لأن Apple لا تقوم بتصفية إشارات البلوتوث الأضعف لتلك المنصة.
الرجاء الإبلاغ عن الأخطاء عبر مشكلات GitHub. يعد تتبعها أسهل من تتبع التعليقات على منشورات وسائل التواصل الاجتماعي، وإدخالات M5Burner، وما إلى ذلك. إذا كان هناك شيء لا يعمل، فيرجى تضمين ما يلي:
إصدار البرامج الثابتة
كيفية تثبيته (M5Burner، قمت بتجميعه بنفسك، esptool.py)
الأجهزة
على وجه التحديد ما هي الميزة والخيارات التي لا تعمل
كيف حددت أنه لا يعمل وما الاختبار الذي قمت به. قم بتضمين طرازات الأجهزة وأنظمة التشغيل التي قمت باختبارها، وأي أخطاء أو مخرجات ذات صلة من جهاز المراقبة التسلسلية، إن أمكن.
إذا اكتشفت كيفية إصلاح الخلل الذي حددته، فنحن نرحب بممثلي العلاقات العامة!
المساهمات هي موضع ترحيب.
يرجى إلقاء نظرة على مشكلات GitHub للمشروع. هناك اقتراحات بشأن الميزات والأخطاء التي تم الإبلاغ عنها هناك، وسأكون ممتنًا لممثلي العلاقات العامة الذين يعالجونها.
عند تقديم طلب سحب، يرجى استهداف فرع التطوير. أسهل طريقة للقيام بذلك هي تفرع جميع الفروع، أو ببساطة إنشاء فرع "تطوير" في تفرعك الخاص، ثم استخدام GitHub لمزامنة فرع التطوير الخاص بك.
لاحظ كيفية تعريف أجهزة معينة (مثل LED وRTC) وإدخالها في الكود وحاول الالتزام بهذه الأنماط. استخدم أيضًا تعريفات FGCOLOR وBGCOLOR وTEXT_SIZE* والاسم المستعار DISP عند إخراج الأشياء إلى شاشة العرض المدمجة.
لا تتردد في إضافة جيثب الخاص بك إلى مجموعة المساهمين كجزء من طلب السحب الخاص بك.
الأشياء التي أريد المساعدة فيها:
تحسين الترجمة/الترجمات للقائمة، وليس فقط HTML لبوابة NEMO.
ربما يحتاج إلى ملف .h جديد
كن قابلاً للتكوين في الإعدادات واستخدم بايت eeprom لحفظ الإعداد
استخدم const
بشكل غير مبرر في التنفيذ بحيث يتم تخزين سلاسل الترجمة فقط في وحدة تخزين الفلاش والإشارة إليها مباشرة منه بدلاً من استخدام الكثير من SRAM.
الأشعة تحت الحمراء
"منطقة" جديدة من TV-B-Gone مليئة برموز الأشعة تحت الحمراء الإضافية التي يمكنها تشغيل وإيقاف تشغيل شرائط RGB LED ومكيفات الهواء والمراوح وأشرطة الصوت وما شابه ذلك
طريقة لتحويل أو استخدام رموز Flipper Zero IR من داخل قاعدة تعليمات NEMO
اكتشف طريقة لقراءة مستوى البطارية وعرضه على طرازي Cardputer وStickC-Plus2 التي تفتقر إلى AXP192 PMU. قد يكون رمز البطارية الموجود في العرض التجريبي لمصنع Cardputer مكانًا جيدًا للبدء.
إلغاء المصادقة المستهدفة ضد نقطة وصول محددة فقط. سيتم رفض العلاقات العامة التي ترسل بريدًا عشوائيًا إلى الموت.
الأشياء التي ربما لن أندمج فيها:
البريد العشوائي لإلغاء مصادقة wifi بالجملة
البريد العشوائي عبر البلوتوث الذي من المحتمل أن يعطل أجهزة تتبع الصحة واللياقة البدنية والساعات الذكية وما إلى ذلك.