
USBvalve v1.0.1
USB गतिविधि को तुरंत उजागर करें
[!NOTE] USBvalve संस्करण 1.0.0
एप्लिकेशन का पूर्ण पुनर्लेखन किया गया है:
- Arduino IDE वातावरण से हटा दिया गया है, अब कोड Pi Pico SDK के लिए लिखा गया है
- बाहरी लाइब्रेरी पर निर्भरता बहुत कम कर दी गई है
- Low Speed डिवाइसों के लिए USB होस्ट समर्थन अब अधिक मजबूत है (ATTiny85, EvilCrow, आदि)
- हार्डवेयर और कार्यक्षमताएँ लगभग अपरिवर्तित हैं, विवरण के लिए नीचे दिए गए नोट्स देखें
USB गतिविधि को तुरंत उजागर करें
मुझे यकीन है कि मेरी तरह, आपसे भी कभी कहा गया होगा कि अपनी USB ड्राइव किसी अज्ञात डिवाइस में लगाएँ... और फिर संदेह:
मेरे बेचारे डोंगल के साथ पर्दे के पीछे क्या हुआ? मेरी फ़ाइलें चुरा रहा है? उन्हें एन्क्रिप्ट कर रहा है? या बस कोई मैलवेयर इंस्टॉल कर रहा है? USBvalve के साथ आप इसे सेकंडों में पकड़ सकते हैं: अत्यंत सस्ते ऑफ-द-शेल्फ हार्डवेयर पर बना, आप किसी भी USB फ़ाइल सिस्टम गतिविधि का तुरंत परीक्षण कर सकते हैं और यह समझ सकते हैं कि क्या हो रहा है, इससे पहले कि बहुत देर हो जाए!
USBvalve के साथ आप ड्राइव के साथ क्या हो रहा है, इस पर तत्काल प्रतिक्रिया प्राप्त कर सकते हैं; स्क्रीन आपको दिखाएगी कि डिवाइस पर बनाए गए नकली फ़ाइल सिस्टम को एक्सेस, पढ़ा या लिखा जा रहा है या नहीं:
और संस्करण 0.8.0 से आप इसे USB होस्ट के रूप में भी उपयोग कर सकते हैं ताकि BADUSB डिवाइसों का पता लगाया जा सके:
यह सीरियल पोर्ट पर उपलब्ध BADUSB डीबगर का एक उदाहरण है:
यदि आप वीडियो पसंद करते हैं, तो आप मेरी Insomni'hack प्रस्तुति भी देख सकते हैं
USBvalve Watch
संस्करण 0.15.0 से एक नया Pi Pico Watch संस्करण समर्थित है। नया संस्करण संकलित करने के लिए आपको कोड की शुरुआत में #define PIWATCH पंक्ति को अनकमेंट करना होगा। हार्डवेयर एक RP2040-आधारित 1.28-इंच TFT डिस्प्ले और वॉच बोर्ड है। आप कुछ और जानकारी यहाँ पा सकते हैं।
यह Waveshare RP2040-LCD-1.28 के साथ भी पूरी तरह संगत है।
रिपॉज़िटरी संरचना
docs: प्रोजेक्ट के बारे में दस्तावेज़ीकरण, एक प्रस्तुति के साथ जिसमें आप सभी सुविधाओं को देख सकते हैं
firmware: Raspberry Pi Pico के लिए पूर्व-निर्मित फर्मवेयर। आप इन्हें सीधे उपयोग कर सकते हैं और बोर्ड पर फ्लैश कर सकते हैं। हमारे पास कई अलग-अलग संस्करण हैं, 32 या 64 लाइनों वाले OLEDs के लिए, Pico 1 या Pico2 के लिए, Pi Pico Watch, आदि
PCB: Gerber फ़ाइल यदि आप कस्टम PCB प्रिंट करना चाहते हैं। यह अनिवार्य नहीं है, आप अपना खुद का उपयोग कर सकते हैं या इसे ब्रेडबोर्ड पर बना सकते हैं
src और data: स्रोत, यदि आप स्वयं फर्मवेयर को संशोधित और निर्मित करना चाहते हैं
utils: कुछ उपयोगिताएँ जिनका उपयोग आप कस्टम FS बनाने के लिए कर सकते हैं
pictures: इस दस्तावेज़ में उपयोग की गई छवियाँ और संसाधन
STL: एन्क्लोज़र के लिए STL फ़ाइलें। 1.1 और 1.2 फ़ोल्डरों में पूर्ण एन्क्लोज़र हैं (WhistleMaster को धन्यवाद)। फ़ोल्डरों 1.2_64 और 1.2_64_simple में 128x64 स्क्रीन के लिए एन्क्लोज़र हैं (rtmq0227 को धन्यवाद)। यदि आप LCD की सुरक्षा के लिए कुछ हल्का चाहते हैं तो आप USBvalve_sliding_cover.stl का उपयोग कर सकते हैं।
USBvalve बनाएँ
भागों की सूची
यदि आप अपना खुद का बनाना चाहते हैं, तो आपको आवश्यकता होगी:
- एक Raspberry Pi Pico 1 या 2 (या कोई अन्य RP2040 आधारित बोर्ड)
- एक I2C OLED स्क्रीन 128x64 या 128x32 (SSD1306)
- (वैकल्पिक) एक USBvalve PCB या एक ब्रेडबोर्ड
- (वैकल्पिक) स्क्रीन को बोर्ड से अलग करने के लिए एक 3D प्रिंटेड स्पेसर (https://www.thingiverse.com/thing:4748043), लेकिन आप इसके बजाय इलेक्ट्रिकल टेप का एक टुकड़ा उपयोग कर सकते हैं
BOOTSEL और संस्करण >= 1.0.0 के बारे में नोट्स
0.x.x संस्करणों में, BOOTSEL का उपयोग डिवाइस को रीसेट करने या HID इवेंट्स की संख्या प्रिंट करने के लिए किया जाता था (> 2s दबाएँ)।
BOOTSEL की पोलिंग BADUSB डिटेक्शन में कुछ समस्याएँ पैदा कर रही थी, इसलिए इसे संस्करण 1.0.0 से हटा दिया गया और निम्नलिखित दो विकल्पों से बदल दिया गया:
- समान कार्यों के लिए
GP0औरGND(पैड 1 और 3, उदाहरण के लिए नीचे दी गई तस्वीर देखें) के बीच एक बटन सोल्डर करें - सीरियल मॉनिटर से
r(रीसेट) औरh(HID इवेंट्स) कमांड का उपयोग करें
PCB में आपको बोर्ड का संस्करण 1.3 भी मिलेगा, जिसमें बटन को लगाने की सुविधा के लिए पैड 1 और 3 पर कुछ छेद हैं। लेकिन जैसा कि आप देख सकते हैं, आप अपने पुराने संस्करण का भी उपयोग कर सकते हैं।
यदि आप BADUSB कार्यों का उपयोग नहीं कर रहे हैं या यदि आप डिटेक्शन पर कम कवरेज रखना पसंद करते हैं लेकिन BOOTSEL उपयोग बनाए रखना चाहते हैं, तो मैं bootsel सक्षम के साथ बनाया गया एक फर्मवेयर भी प्रदान कर रहा हूँ (फ़ोल्डर और रिलीज़ देखें)।
निर्माण निर्देश
Tz1rf को धन्यवाद, हमारे पास दो शानदार वीडियो भी हैं: एक निर्माण प्रक्रिया को चरण-दर-चरण समझाता है, और दूसरा दिखाता है कि फर्मवेयर कैसे अपलोड करें और टूल का उपयोग कैसे करें।
लगभग सारा काम सॉफ़्टवेयर द्वारा सीधे बोर्ड पर किया जाता है, इसलिए आपको आउटपुट के लिए OLED के साथ कनेक्शन की व्यवस्था करनी होगी।
फर्मवेयर के संस्करण 0.8.0 से, USBvalve HID डिवाइसों का पता लगा सकता है (BADUSB का पता लगाने के लिए उपयोग किया जाता है)। इसके लिए होस्ट के रूप में व्यवहार करने वाले एक अतिरिक्त USB पोर्ट की आवश्यकता होती है। यदि आप इसमें रुचि नहीं रखते हैं, तो आप docs फ़ोल्डर में पुराने निर्देशों का उपयोग कर सकते हैं और PCB संस्करण 1.1 का उपयोग कर सकते हैं। अन्यथा PCB संस्करण 1.2 के साथ आगे बढ़ें (हमारे पास USB-A या USB-B के लिए संस्करण हैं, फ़ोल्डर देखें)।
USBvalve PCB के साथ
USBHक्षेत्र में एक USB फीमेल पोर्ट सोल्डर करें। यह संस्करणAके लिए है, लेकिन यदि आप चाहें तो USBMicro-Bके लिए भी एक संस्करण है- Raspberry Pi Pico को सामने की सिल्क स्क्रीन पर रखें
- आपको सभी PINs सोल्डर करने की आवश्यकता नहीं है। केवल निम्नलिखित:
- D4 और D5 (बाईं ओर)
- D14 और D15 (बाईं ओर)
- GND (दाईं ओर, ऊपर से तीसरा पिन)
- GND (दाईं ओर, नीचे से तीसरा पिन)
- 3v3_OUT (दाईं ओर)
- VBUS (दाईं ओर)
- नीचे के 3 DEBUG पिन: SWCLK, GND और SWDIO
- OLED के उन हिस्सों पर 3D प्रिंटर स्पेसर या टेप का एक टुकड़ा रखें जो Raspberry को छू सकते हैं
- OLED को (हेडर के साथ) 4 PIN स्थान पर सोल्डर करें
कुछ OLEDs में GND और VCC PINs की अदला-बदली होती है, इसलिए मैंने PCB को दोनों संस्करणों के अनुकूल बनाया है:
उदाहरण के लिए यदि आपके OLED में PIN1 पर GND और PIN2 पर VCC है जैसे यह:
