কীভাবে ইউএসবি ট্র্যাফিক ডাম্প করবেন?


9

আমি একটি ইউএসবি গেমপ্যাড পেয়েছি এবং আমি এই পেরিফেরালগুলি আসলে আমার পিসি / কার্নেলের কাছে প্রেরণ করছে এমন সংকেতগুলি এবং আদেশগুলি দেখতে ও পরীক্ষা করতে চাই: আমি কীভাবে এটি করতে পারি?

আমি ধরেছিলাম যে এরকম কিছু

cat /dev/bus/usb/006/003

যথেষ্ট ছিল, তবে দৃশ্যত এই আদেশটি অবিলম্বে ফিরে আসে এবং কিছু অপঠনযোগ্য এনকোডেড অক্ষর মুদ্রণ করে।

এমন কোনও USB ডিভাইসকে "ডিবাগ" করার কোনও উপায় আছে?

উত্তর:


11

আপনি ওয়্যারশার্ক দিয়ে ইউএসবি ট্র্যাফিক ক্যাপচার করতে পারেন।
এটি উইকি থেকে :

লিনাক্সে ইউএসবি ট্র্যাফিক ডাম্প করার জন্য আপনার usbmonমডিউলটি প্রয়োজন , যা লিনাক্স ২..1.১১ থেকে বিদ্যমান । /usr/src/linux/Documentation/usb/usbmon.txtলিনাক্স উত্স ট্রিতে সেই মডিউল সম্পর্কিত তথ্য উপলব্ধ । আপনি যে বিতরণটি ব্যবহার করছেন তার উপর নির্ভর করে এবং সেই বিতরণের সংস্করণ অনুসারে, সেই মডিউলটি কার্নেলের মধ্যে নির্মিত হতে পারে বা একটি লোডযোগ্য মডিউল হতে পারে; যদি এটি কোনও লোডযোগ্য মডিউল হয়, আপনি যে বিতরণটি ব্যবহার করছেন তার উপর নির্ভর করে এবং সেই বিতরণের সংস্করণটি, এটি আপনার জন্য বোঝা হতে পারে এবং নাও হতে পারে। যদি এটি একটি লোডযোগ্য মডিউল হয় এবং লোড না হয় তবে আপনাকে এটি কমান্ড দিয়ে লোড করতে হবে

modprobe usbmon

যা অবশ্যই রুট হিসাবে চালানো উচিত।

1.0 এর পূর্বে libpcap রিলিজে ইউএসবি সমর্থন অন্তর্ভুক্ত নয়, সুতরাং আপনার কমপক্ষে libpcap 1.0.0 প্রয়োজন হবে ।

২.6.২১ এর পূর্ববর্তী কার্নেলের সংস্করণগুলির জন্য , কেবলমাত্র ইউএসবি ট্র্যাফিক ক্যাপচার ব্যবস্থা উপলব্ধ একটি পাঠ্য-ভিত্তিক প্রক্রিয়া যা প্রতিটি কাঁচা ইউএসবি ব্লকের জন্য প্রাপ্ত ডেটার পরিমাণকে প্রায় 30 বাইটে সীমাবদ্ধ করে। কার্নেলটি প্যাচ না করে এটি পরিবর্তন করার কোনও উপায় নেই। যদি ডিবাগগুলি ইতিমধ্যে মাউন্ট করা না থাকে /sys/kernel/debug, তবে নীচের কমান্ডটি রুট হিসাবে জারি করে সেখানে মাউন্ট করা হয়েছে তা নিশ্চিত করুন:

mount -t debugfs / /sys/kernel/debug

কার্নেল সংস্করণ ২.6.২১ এবং তার পরে , ইউএসবি প্যাকেটগুলি ট্রেস করার জন্য একটি বাইনারি প্রোটোকল রয়েছে যার আকারের সীমাবদ্ধতা নেই। এই কার্নেল সংস্করণটির জন্য আপনার libpcap 1.1.0 বা আরও নতুন প্রয়োজন হবে , কারণ libpcap 1.0.x ইউএসবি সমর্থন ব্যবহার করে, তবে সঠিকভাবে পরিচালনা করে না, ইউএসবি ট্র্যাফিকের জন্য মেমরি-ম্যাপযুক্ত প্রক্রিয়া, যা উপলব্ধ থাকলে libpcap ব্যবহার করবে - এটি হতে পারে না অনুপলব্ধ করা হয়েছে, সুতরাং libpcap সর্বদা এটি ব্যবহার করবে।

ইন libpcap 1.0.x, ইউএসবি তে ক্যাপচার জন্য ডিভাইস নাম usbn আছে, যেখানে n বাসের সংখ্যা। ইন libpcap 1.1.0 এবং পরে তারা নাম usbmonn আছে।

আপনার একটি ওয়্যারশার্ক 1.2.x বা আরও নতুন প্রয়োজন হবে ।


2

আপডেট করা হচ্ছে কারণ আমি এটি সন্ধান করার সময় এটিই প্রথম ফলাফল ছিল। দেবিয়ান স্ট্রেচে আমি যে সর্বোত্তম পদ্ধতিটি পেয়েছি তা হ'ল:

# usbhid-dump --entity = all

এটি সমস্ত ইউএসবি ডিভাইস থেকে আগত ডেটা ফেলে দেবে। আমার কীবোর্ডটিকে ট্রিট করার মতো করে তুলেছে এবং আমি স্ট্রিমের প্রতিটি অপকোডটি পড়তে পারি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.