بدأنا بـ اكتشاف واصفات HID قبل أسبوعولقد أوضحت لك كيفية إرسال حزم HID الأولية باستخدام شوكة MicroPython. لا تزال المهمة أمامنا – وهي صنع جهاز بشاشة تعمل باللمس. لذلك، دعنا نمنحك الأدوات اللازمة لالتقاط واصف موجود من شاشة تعمل باللمس، ثم نوضح لك كيفية تعديله وكيف سيظهر في النهاية.
التعبئة للسرقة
عندما يتعلق الأمر بهذا النوع من المغامرات، لا يمكننا الاستغناء عن الأدوات والأسلحة - فقد يكون الأمر خطيرًا! وبدونها، يمكنك حتى التخلي عن مشروعك في منتصف الطريق! إليك ما يكفي من الأدوات والذخيرة عالية الدقة التي ستساعدك على تجاوز أي عقبات قد تواجهها. باستثناء الأدوات المستندة إلى الويب، فإن هذه الأدوات مخصصة لنظام التشغيل Linux، ولكن يرجى تذكر أنه يمكنك دائمًا استخدام جهاز افتراضي أو Raspberry Pi. لن يستخدم أحد Windows في عملية سرقة على أي حال، مع كل القياسات عن بعد وما شابه.
الأداة الأولى مخصصة لقراءة الواصفات - نحتاج إلى أداة للتعلم منها، إنها تمامًا مثل بطاقة المفاتيح التي يمكنك إرسالها إلى حارس الأمن ومسحها ضوئيًا عند مدخل القبو. وبطبيعة الحال، مع RFID، تريد الحصول على أمثلة كافية، ومقارنة البتات بين عدد قليل من البطاقات وكل شيء. في الوقت الحالي، لا تحتوي واصفات HID على عمليات التحقق من الأصالة، ولكن يبدو الأمر كذلك قد يتغير ذلك في المستقبل. اترك الأمر لشركة Apple وMicrosoft لإضافتهما، كالعادة. في نظام التشغيل Linux، تعد رؤية الواصفات أمرًا بسيطًا - مثل الجذر، انتقل إلى /sys/bus/usb/devices/
، ابحث عن جهازك من خلاله lsusb
مسار شجرة الجهاز، ثم اتبع الدليل الذي يحتوي على VID/PID فيه. سيحتوي هذا الدليل على ملف report_descriptor
ملف - hexdump
هو - هي. يمكن أن يبدو الأمر بأكمله كما يلي:
sudo hexdump -v -e '/1 "%02X "' /sys/bus/usb/devices/3-6.2/3-6.2:1.1/0003:0C40:8000.0022/report_descriptor`
مرة أخرى، قد تحتاج إلى الجذر للعثور على هذا المسار، لذا استخدمه sudo -i
إذا توجب عليك. سلسلة التنسيق في hexdump
يمنحك الأمر إخراجًا سهلاً للمحلل اللغوي. على وجه التحديد، للتحليل، أستخدم هذه صفحة ويب - إنه أمر رائع، حتى إضافة علامات تبويب تحدد أقسامًا مختلفة من الواصف، مما يجعل مخرجاته أكثر قابلية للقراءة! يمكنك أيضًا حفظ صفحة الويب هذه محليًا، فهي أداة رائعة جدًا. بخلاف ذلك، يمكنك تجربة أدوات محلية أخرى مثل هذا!
الآن، حصلت على وصف للجهاز الذي تريد تقليد سلوكه، ويمكنك تحليله لمعرفة ما الذي يجعله مميزًا. رائع! ولكن ليس شيئًا يمكنك فهمه بنظرة واحدة، ليس بعد؟ لا يصلح الواصف وحده لبناء خريطة ذهنية، فقد يحتوي على معرفات تقارير متعددة، وستكون بعض الواصفات عامة بما يكفي لتكون مربكة. على سبيل المثال، تحتوي العديد من الأجهزة على واصفات تمثل في الواقع نقاط نهاية لتحديثات البرامج الثابتة بدلاً من ذلك، لذلك قد تقضي وقتًا في معرفة متى لا يتم استخدام الواصف مطلقًا. دعونا نلقي نظرة على ما يرسله جهازنا فعليًا عندما نتفاعل معه، ومعرف التقرير الذي يجب أن نتعلم منه - والأهم من ذلك، كيف يفسره نظام التشغيل Linux.
للقيام بذلك، نحتاج فقط إلى VID وPID. كجذر مرة أخرى، انتقل إلى /sys/kernel/debug/hid/
، ابحث عن دليل يحتوي على VID وPID الخاصين بك، ثم cat
انها events
ملف. ستجد هناك وصفًا مطبوعًا وسهل القراءة لكل حدث تحصل عليه من جهازك، بمجرد ظهوره. في بعض الأحيان، تتعطل عملية الطباعة وتتوقف في منتصف الحدث - قد يكون السبب هو ما يحدث cat
'ed، لكنها عادة ليست خسارة كبيرة. هذه طريقة رائعة لمعرفة ما يحدث بالفعل عندما يكون جهاز HID الخاص بك نشطًا. البايت الأول هو معرف التقرير، ثم تتم طباعة الحزمة بطريقة استلامها، وبعد ذلك نرى نتائج التحليل من نظام التشغيل. إنها ببساطة أداة رائعة لديك! فيما يلي مثال لسطر الأوامر:
sudo cat /sys/kernel/debug/hid/0003:2E8A:0005.0029/events
أخيرًا وليس آخرًا، ستحتاج إلى طريقة لرؤية الأحداث حيث تقوم طبقات الإدخال في نظام التشغيل لديك بتفسيرها فعليًا. نعم، هذا مختلف - إذا وصلت حزمة، فلن يتم تحويلها بالضرورة إلى حدث إدخال على مستوى نظام التشغيل، وأحيانًا يتم تجاهلها لأنها لا تستوفي شرطًا معينًا. على سبيل المثال، في مرحلة ما، تم تجاهل حزم شاشة اللمس الخاصة بي لأنني كنت أرسل الإحداثيات فقط، وحذفت جزءًا مهمًا يخبر نظام التشغيل بأن شاشة اللمس تنقل حاليًا حدث لمس صالحًا بدلاً من لمسة زائفة. هذا الشيء هو الأمام والوسط في "ملاحظات" Microsoft حول بناء التحويل الرقمي، ورؤية أن نظام التشغيل الخاص بي لم "يستوعب" الأحداث التي قمت بإنشائها كان بمثابة الدفع الذي كنت بحاجة لإلقاء نظرة خاطفة على مذكرة التطبيق والتحقق مما قد تكون الحزمة الخاصة بي مفقودة.
لهذا، لدي نص بايثون الصغير الخاص بي الذي يطبع الأحداث كما يتم تلقيها بواسطة طبقات مكتبة الإدخال، وقد خدمني هذا البرنامج النصي منذ عقد من الزمن تقريبًا. ما عليك سوى تنزيله وتشغيله - ستحتاج إلى تثبيت مكتبة Python `evdev`، ولكنها متاحة من مستودعات Debian/Ubuntu و`pip` على حدٍ سواء. تحتاج أيضًا إلى تشغيل هذا كجذر، ولكن هذا يحدث عندما تقوم بتشغيله كـ `./listen_keys.py` تلقائيًا.
أفضّل تشغيل كل تلك الأوامر المختلفة tmux
، أجزاء صغيرة مختلفة لمختلف المهام الجارية - هذه هي مساحة العمل الخاصة بي عندما كنت أقوم بتطوير وتصحيح كود شاشة اللمس، حيث أ) تعرض طباعة حدث HID الخام، ب) تعرض طباعة واصف HID، و ج) تعرض كود عرض حدث الإدخال.
تمويه مثالي
باستخدام هذه الأدوات، كان بناء شاشة تعمل باللمس عملاً مسائيًا. حصلت على إحداثيات من مكتبة XPT2046 التي كنت أستخدمها، لذا كل ما كان علي فعله هو إنشاء واصف. في البداية، فكرت في إعادة استخدام واصف "الموضع المطلق للماوس" الذي تم توفيره بشكل مفيد بواسطة [] مع الكود، ولكن البرنامج النصي لطباعة حدث الإدخال أظهر لي أنه حتى الضغط على زر الماوس من هذا البرنامج النصي لم يتم التقاطه بواسطة واجهة المستخدم - وبينما لقد ظهرت أحداث MOUSE_ABS بالفعل، ولم تؤثر على سطح المكتب بأي شكل من الأشكال.
لم يكن تصحيح أخطاء واصف الماوس أمرًا ممتعًا، خاصة وأنني لا أملك حتى ماوسًا فعالاً للتعلم منه! بدلاً من ذلك، قررت إعادة بناء واصف الفأرة المطلق إلى واصف التحويل الرقمي، حيث أن لدي واصف التحويل الرقمي والحزم! تم عرض واصف الفأرة المطلق بشكل مفيد في مصادر MicroPython بشكل منفصل، وهو جاهز للتعديل أيضًا! تغيير USAGE
و USAGE_PAGE
الفئات وحدها إلى تلك الموجودة في واصف شاشة اللمس USB جعلت نظام التشغيل الخاص بي يتعرف على لوحة RP2040 الخاصة بي كمحول رقمي.
لم تكن التغييرات الفعلية صعبة - فقد قدمت مكتبة XPT2046 إحداثيين صحيحين، لذلك قمت بنسخ بنية من واصف يصف قيمة X واحدة وقيمة Y واحدة، يبلغ طول كل منهما 16 بت، وبالتالي يتم تقسيم كل منهما إلى بايتتين، تمامًا مثل شاشة اللمس USB الخاصة بي. بمساعدة آلية طباعة تصحيح أخطاء حزمة HID، تمكنت بسرعة من ملاحظة متى تم تبديل البايت العلوي والسفلي، لأن نظام التشغيل الخاص بي لم يكن يفسر الإحداثيات بشكل صحيح. بعد إصلاح ذلك، سيتم تحليل الحزم الخاصة بي بشكل صحيح ولكنها لم تظهر بين أحداث الإدخال، وبمقارنة حزم شاشة لمس USB المصنوعة في المصنع بالحزم التي تم إنشاؤها يدويًا على شاشة اللمس الخاصة بي، يمكنني ملاحظة وجود بت "لمسة صالحة" كان مفقود. إضافة إلى ذلك جعل الجهاز يتصرف كشاشة تعمل باللمس لجميع المقاصد والأغراض!
الآن، لدي شاشة تعمل باللمس متصلة بـ USB، وكل ما يتطلبه الأمر هو سرقة واصف HID من شاشة لمس مختلفة، ثم تقليدها بشكل كافٍ. بالإضافة إلى ذلك، عندما أريد، يمكنني تحويل شاشة اللمس الخاصة بي إلى وضع لوحة اللمس عن طريق جعلها ترسل حزمًا بمعرف تقرير مختلف يتوافق مع واصف الماوس الخاص بالبرنامج الثابت - فهي تفتقر فقط إلى زري الماوس لتكون لوحة لمس كاملة للكمبيوتر المحمول! نظرًا لأنني أستخدم هذا كنموذج أولي لشاشة يمكن ارتداؤها، فسيكون ذلك مفيدًا للغاية.
في الداخل والخارج، قمنا بتأمين البضائع
كما هي، تحتاج شاشة اللمس USB التي تم إنشاؤها حديثًا إلى بعض التصفية والمعايرة، ولكن هذه إصلاحات صغيرة - ربما يمكنها سرقة بعض خوارزميات التصفية من برامج تشغيل Linux XPT2046 أيضًا! إنها ميزة التوصيل والتشغيل، وسهلة الاستخدام، وقابلة للاختراق - ولم تعد شاشة اللمس SPI كما كان من المفترض أن تكون. والأهم من ذلك كله، أنه مثال رائع على أنه إذا كنت ترغب في إنشاء جهاز HID غريب بعض الشيء، فليس من الصعب القيام بذلك، ويقدم لك Linux مجموعة أدوات قوية تساعدك على ملاحظة أي مشكلات HID بغض النظر عن المدى الذي تريد الوصول إليه. يذهب.
هناك الكثير من الأشياء التي يمكنك القيام بها إذا فهمت HID. على سبيل المثال، يمكنك إنشاء شاشة برايل متوافقة تمامًا، دون مواجهة مشكلة الأرقام التسلسلية لـ USB-UART. زيادة على Hackaday الخلاف، قام [mupf] باختراق جهاز متوافق مع XBox Adaptive Controller يستخدم مقياس مغناطيسي وجيروسكوبي لإرسال نظام التشغيل، مع تعريف واصف HID بشكل كبير من خلال واصف مُلغى لوحدة تحكم Xbox Adaptive الأصلية. تصف مواصفات HID عددًا كبيرًا من الأشياء، حتى شاشات عرض الأحرف المتصلة عبر USB، وأشياء مثل - يمكنك إرسال الكواترنيونات بمساعدة HID، من بين كل الأشياء!
إن دعم HID يجعل جهاز الإدخال الخاص بك سهل الاستخدام ويساعده على التفاعل بشكل أفضل داخل عالم البرامج. HID هي، في جوهرها، لغة تفهمها جميع أنظمة التشغيل الأساسية، ويتيح لك منح جهازك واجهة HID تجنب إضافة طبقة من اللغة الخاصة بين جهازك وأي نوع من البرامج التي ترغب في التفاعل معها. وبطبيعة الحال، تعد HID أداة رائعة للقرصنة - وأداة أتمتة الهواتف الذكية هذه وحدها ستشهد!
في المرة القادمة، أود أن أعرض لكم المزيد عن I2C HID - إرسال حزم HID وواصفاتها عبر I2C، دون الحاجة إلى منفذ USB على الإطلاق واستخدام اتصال I2C فقط، والذي أصبح الآن موجودًا في كل مكان! في هذا السياق، سأوضح لك كيفية إعادة استخدام لوحة اللمس للكمبيوتر المحمول Framework، والتي تستخدم I2C-HID لاتصالاتها. آمل تعديل QMK حتى نتمكن من التدرب على إضافة لوحات اللمس I2C إلى أي لوحات مفاتيح يتم التحكم فيها بواسطة QMK، ولكن قد نستقر على تعديل KMK، وهو ما يعادل QMK ولكن في CircuitPython. سأوضح لك أيضًا كيف يمكنك توصيل جهاز I2C-HID بسرعة بوحدة Linux SBC الخاصة بك - إنه أسهل مما تتخيل! وإذا تمت محاذاة النجوم وتبين أن دعم الوضع المحيطي I2C في RP2040 MicroPython مستقر بدرجة كافية، فيمكننا أيضًا إنشاء جهاز I2040C HID الطرفي الذي يعمل بنظام RP2 كحلوى.
- محتوى مدعوم من تحسين محركات البحث وتوزيع العلاقات العامة. تضخيم اليوم.
- PlatoData.Network Vertical Generative Ai. تمكين نفسك. الوصول هنا.
- أفلاطونايستريم. ذكاء Web3. تضخيم المعرفة. الوصول هنا.
- أفلاطون كربون، كلينتك ، الطاقة، بيئة، شمسي، إدارة المخلفات. الوصول هنا.
- أفلاطون هيلث. التكنولوجيا الحيوية وذكاء التجارب السريرية. الوصول هنا.
- المصدر https://hackaday.com/2024/02/06/human-interfacing-devices-packing-for-the-descriptor-heist/
- :لديها
- :يكون
- :ليس
- :أين
- $ UP
- 1
- 16
- 167
- 2%
- 400
- 800
- 8000
- a
- من نحن
- مطلق
- نشاط
- يقدم
- في الواقع
- على التكيف
- تضيف
- مضيفا
- مغامرة
- تؤثر
- بعد
- مرة أخرى
- خوارزميات
- محاذاة
- سواء
- الكل
- وحده
- أيضا
- دائما
- مدهش
- ذخيرة
- من بين
- an
- و
- أي وقت
- على أي حال
- الظهور
- يبدو
- تفاح
- هي
- وصول
- AS
- At
- أصالة
- تلقائيا
- أتمتة
- متاح
- تجنب
- b
- BE
- لان
- كان
- تصرف
- سلوك
- يجري
- أفضل
- ما بين
- كبير
- قطعة
- بت
- مجلس
- على حد سواء
- نساعدك في بناء
- ابني
- لكن
- زر
- by
- بايت
- CAN
- أسر
- بطاقات
- قط
- الفئات
- مركز
- معين
- تغيير
- التغييرات
- متغير
- حرف
- التحقق
- الشيكات
- عن كثب
- الكود
- يأتي
- مجال الاتصالات
- قارن
- مقارنة
- إكمال
- حالة
- مربك
- التواصل
- صلة
- شيدت
- تحتوي على
- سياق الكلام
- مراقب
- تحويلها
- ينسق
- جوهر
- بشكل صحيح
- يتوافق
- استطاع
- الدورة
- حاسم
- حاليا
- عقد
- قررت
- وصف
- يصف
- وصف
- سطح المكتب
- تطوير
- جهاز
- الأجهزة
- فعل
- مختلف
- التخلص منها
- العرض
- يعرض
- اليدويه
- do
- لا
- لا
- بإمكانك تحميله
- السائقين
- كل
- أسهل
- سهل
- لقاء
- النهاية
- النهاية
- كاف
- كامل
- دخول
- معادل
- خاصة
- الأثير (ETH)
- حتى
- الحدث/الفعالية
- أحداث
- كل
- مثال
- أمثلة
- إلا
- القائمة
- مكشوف
- بعيدا
- قليل
- قم بتقديم
- تصفية
- الاسم الأول
- ثابت
- إصلاحات
- Flash
- اتباع
- في حالة
- شوكة
- شكل
- الإطار
- ودود
- تبدأ من
- جبهة
- الوفاء
- مرح
- مستقبل
- دولار فقط واحصل على خصم XNUMX% على جميع
- GitHub جيثب:
- منح
- معطى
- يعطي
- إعطاء
- لمحة
- Go
- حصلت
- عظيم
- الحرس
- القراصنة
- القرصنة
- كان
- يحدث
- الثابت
- يملك
- وجود
- بشكل كبير
- سرقة
- مساعدة
- مفيد
- يساعد
- أمل
- كيفية
- كيفية
- HTTPS
- الانسان
- i
- i2c
- ID
- IDS
- if
- جدا
- الأهم
- in
- وأبلغ
- في البداية
- إدخال
- تثبيت
- مثل
- بدلًا من ذلك
- عدد صحيح
- تفاعل
- السطح البيني
- تفسير
- إلى
- IT
- انها
- نفسها
- م
- نوع
- تفتقر
- لغة
- كمبيوتر محمول
- كبير
- اسم العائلة
- طبقة
- طبقات
- تعلم
- الأقل
- يترك
- LEND
- يتيح
- المكتبة
- مثل
- لينكس
- القليل
- محلي
- محليا
- طويل
- يعد
- بحث
- يبدو مثل
- تبدو
- خسارة
- خفض
- آلة
- صنع
- عماد
- يصنع
- القيام ب
- كثير
- رسم خريطة
- أمر
- ماكس العرض
- me
- يعني
- آلية
- عقلي
- مایکروسافت
- ربما
- مفقود
- موضة
- تعديل
- الأكثر من ذلك
- أكثر
- فأر
- متعدد
- يجب
- my
- قرب
- أنيق
- بالضرورة
- حاجة
- بحاجة
- إحتياجات
- أبدا
- حديثا
- لا
- لا أحد
- يلاحظ..
- الآن
- لا مكان
- عدد
- أرقام
- العقبات
- of
- عروض
- on
- ONE
- جارية
- فقط
- تعمل
- أنظمة التشغيل
- معارض
- or
- أصلي
- OS
- أخرى
- لنا
- خارج
- الناتج
- على مدى
- الخاصة
- الحزم
- مسار
- محيطي
- التقطت
- أفلاطون
- الذكاء افلاطون البيانات
- أفلاطون داتا
- بلايستشن
- من فضلك
- المزيد
- البوينت
- ان يرتفع المركز
- قوي
- ممارسة
- تفضل
- جميل
- طباعة
- الطباعة
- مطبوعات
- المحتمل
- مشاكل
- عملية المعالجة
- تنفيذ المشاريع
- الملكية
- النموذج
- المقدمة
- دفع
- بايثون
- بسرعة
- التوت
- فطيرة التوت
- الخام
- نادي القراءة
- تلقى
- الاعتراف
- تذكر
- تقرير
- النتائج
- إعادة استخدام
- جذر
- يجري
- تشغيل
- حفظ
- SBC
- تفحص
- سيناريو
- أقسام
- مضمون
- أمن
- انظر تعريف
- رؤية
- إرسال
- إرسال
- يرسل
- على حدة
- مسلسل
- لمرضى
- حل
- ينبغي
- إظهار
- أظهرت
- يظهر
- الاشارات
- ببساطة
- منذ
- قليلا
- صغير
- الهاتف الذكي
- So
- تطبيقات الكمبيوتر
- بعض
- شيء
- أحيانا
- قريبا
- مصادر
- على وجه التحديد
- مواصفة
- الإنفاق
- انقسم
- مستقر
- نجوم
- بدأت
- لا يزال
- توقف
- خيط
- بناء
- يكافح
- هذه
- الدعم
- تبادلت
- مفاتيح
- أنظمة
- أخذ
- مهمة
- المهام
- يقول
- من
- أن
- •
- المستقبل
- المدفن
- منهم
- then
- هناك.
- وبالتالي
- تشبه
- هم
- الأشياء
- هؤلاء
- فكر
- عبر
- علامة
- الوقت
- صغير
- إلى
- نغمة
- استغرق
- أداة
- أدوات
- أدوات
- تواصل
- الشاشة التي تعمل باللمس
- شجرة
- صعب
- محاولة
- يتحول
- قرص
- التغيير والتبديل
- اثنان
- ui
- فهم
- فهم
- آخر التحديثات
- us
- USB
- تستخدم
- مستعمل
- يستخدم
- استخدام
- معتاد
- عادة
- صالح
- قيمنا
- قبو
- جدا
- افتراضي
- الجهاز الظاهري
- تريد
- وكان
- طريق..
- we
- أسلحة
- يمكن ارتداؤها
- على شبكة الإنترنت
- أسبوع
- كان
- ابحث عن
- أيا كان
- متى
- كلما
- التي
- في حين
- لمن
- سوف
- نوافذ
- رغبة
- مع
- في غضون
- بدون
- رائع
- للعمل
- عامل
- العالم
- سوف
- X
- اكس بوكس
- نعم فعلا
- حتى الآن
- لصحتك!
- حل متجر العقارات الشامل الخاص بك في جورجيا
- لك
- زفيرنت