USB रॉ गैजेट, कर्नेल के लिए एक मॉड्यूल जो USB उपकरणों का अनुकरण करने की अनुमति देता है

USB कच्चे गैजेट

पहले से ही कुछ अवसरों पर यहाँ ब्लॉग में हमने एंड्री कोनोवालोव द्वारा किए गए काम के बारे में बात की है (एक Google डेवलपर) लिनक्स में, लिनक्स कर्नेल यूएसबी ड्राइवरों में विफलताओं का समय पर पता लगाने और वाईफाई उपकरणों में भी अपने काम से।

अब वह फिलहाल काम कर रहे हैं लिनक्स कर्नेल के लिए एक नए मॉड्यूल का विकास जिसे उन्होंने नाम दिया है "USB कच्चे गैजेट" जो एक उपयोगिता के रूप में वर्णन करता है जो उपयोगकर्ता अंतरिक्ष में यूएसबी उपकरणों का अनुकरण करने की अनुमति देता है।

इसके अलावा उल्लेख है कि इस मॉड्यूल को मुख्य लिनक्स कर्नेल में शामिल करने के लिए एक आवेदन पर विचार किया जा रहा है। Google कच्चे गैजेट का उपयोग पहले से ही Google द्वारा syzkaller टूलकिट के साथ USB कर्नेल स्टैक के फ़ज़ी परीक्षण को सरल बनाने के लिए किया जा रहा है।

प्रारंभ में मैं गैजेट के लिए गैजेट्स (डमी एचसीडी / यूडीसी मॉड्यूल के साथ) का उपयोग कर रहा था ताकि फ़्यूज़िंग के लिए यूएसबी उपकरणों का अनुकरण किया जा सके, लेकिन फिर इसे एक कस्टम लिखित इंटरफ़ेस में बदल दिया गया।

एक अलग इंटरफ़ेस को लागू करने का प्रोत्साहन उपयोगकर्ता अंतरिक्ष के लिए यूएसबी गैजेट परत को एक शॉर्टकट और कुछ हद तक कच्ची पहुंच प्रदान करना था, जहां प्रत्येक यूएसबी अनुरोध को प्रतिक्रिया के लिए उपयोगकर्ता स्थान पर भेजा जाता है।

USB कच्चे गैजेट के बारे में

मॉड्यूल एक नया इंटरफ़ेस जोड़ने का ख्याल रखता है प्रोग्रामिंग कर्नेल उपतंत्र के लिए जिसे "USB गैजेट" कहा जाता है और जिसे गैजेट के विकल्प के रूप में विकसित किया जा रहा है।

नए एपीआई का निर्माण प्रत्यक्ष और निम्न-स्तरीय पहुंच की आवश्यकता के कारण है उपयोगकर्ता स्थान से गैजेट USB सबसिस्टम, सभी संभव USB अनुरोधों को संसाधित करने की अनुमति देता है (गैजेट अपने उपयोगकर्ता के स्थान पर स्थानांतरित किए बिना, अपने आप कुछ अनुरोधों को संसाधित करता है)।

USB Raw गैजेट को / dev / कच्चे-गैजेट डिवाइस के माध्यम से नियंत्रित किया जाता है GadgetFS में / dev / गैजेट के साथ सादृश्य द्वारा, लेकिन एक ioctl () आधारित इंटरफ़ेस, एक छद्म-FS के बजाय, इंटरैक्शन के लिए उपयोग किया जाता है।

उपयोगकर्ता स्थान में एक प्रक्रिया द्वारा सभी USB अनुरोधों के प्रत्यक्ष प्रसंस्करण के अलावा, नए इंटरफ़ेस में भी USB अनुरोध के जवाब में किसी भी डेटा को वापस करने की क्षमता है (गैजेट गैजेट USB विवरणकों की शुद्धता की जांच करता है और कुछ प्रतिक्रियाओं को फ़िल्टर करता है, जो इसमें हस्तक्षेप करता है USB स्टैक समाशोधन परीक्षण के दौरान त्रुटि का पता लगाना)।

यूएसबी रॉ गैजेट आपको एक विशिष्ट यूडीसी डिवाइस का चयन करने की भी अनुमति देता है (USB डिवाइस ड्राइवर) और कनेक्ट करने के लिए एक ड्राइवर, जबकि गैजेट उपलब्ध पहले UDC डिवाइस से कनेक्ट होता है।

विभिन्न यूडीसी के लिए, एक डिवाइस के भीतर विभिन्न प्रकार के अलग-अलग संचार चैनलों के लिए पूर्वानुमान योग्य समापन बिंदु नाम मैप किए जाते हैं।

अंत में, यदि आप इसके बारे में अधिक जानना चाहते हैं, तो आप विवरणों की जांच कर सकते हैं, साथ ही USB जैक गैजेट में किए गए परिवर्तनों का लॉग भी कर सकते हैं। निम्नलिखित लिंक में

लिनक्स में रॉ गैजेट USB मॉड्यूल कैसे स्थापित करें?

जो लोग अपने सिस्टम पर इस मॉड्यूल का परीक्षण करने में सक्षम होने के लिए इच्छुक हैं, वे यहां दिए गए निर्देशों का पालन करके ऐसा कर सकते हैं।

डमी एचसीडी / यूडीसी के लिए (एक मॉड्यूल जो वर्चुअल USB डिवाइस और होस्ट कंट्रोलर को कॉन्फ़िगर करता है जो कर्नेल के भीतर एक दूसरे से जुड़े होते हैं)। हमें एक टर्मिनल खोलना होगा और इसमें हम निम्नलिखित कमांड टाइप करेंगे:

svn checkout https://github.com/xairy/raw-gadget/trunk/dummy_hcd

इसके साथ हम मॉड्यूल के साथ फ़ोल्डर प्राप्त करने जा रहे हैं जिसे हम टर्मिनल में निम्नलिखित कमांड निष्पादित करके संकलित करने जा रहे हैं:

cd dummy_hcd

make

और हम उन्हें स्थापित करने के लिए आगे बढ़ें:

./insmod.sh

यदि हम मॉड्यूल को अपडेट करना चाहते हैं, तो हम इसके साथ करते हैं:

./update.sh

अब उन लोगों के लिए जो कर्नेल मॉड्यूल स्थापित करना चाहते हैं। एक टर्मिनल में हम निम्नलिखित कमांड निष्पादित करके इसके लिए आवश्यक फाइलें प्राप्त करने जा रहे हैं:

svn checkout https://github.com/xairy/raw-gadget/trunk/raw_gadget

इसके साथ हम मॉड्यूल के साथ फ़ोल्डर प्राप्त करने जा रहे हैं जिसे हम टर्मिनल में निम्नलिखित कमांड निष्पादित करके संकलित करने जा रहे हैं:

cd dummy_hcd

make

और हम उन्हें स्थापित करने के लिए आगे बढ़ें:

./insmod.sh

यदि हम मॉड्यूल को अपडेट करना चाहते हैं, तो हम इसके साथ करते हैं:

./update.sh

आप काम की जांच कर सकते हैं निम्नलिखित लिंक। 


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: एबी इंटरनेट नेटवर्क 2008 SL
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।