USB Raw Gadget, modul untuk Kernel yang membolehkan meniru peranti USB

Alat Mentah USB

Sudah pada beberapa kesempatan di sini di blog kita telah membincangkan kerja yang dilakukan oleh Andrey Konovalov (pembangun Google) di Linux, dari karyanya dalam mengesan kegagalan tepat pada masanya pada pemacu USB Kernel Linux dan juga pada peranti Wifi.

Sekarang dia sedang berusaha pengembangan modul baru untuk Kernel Linux yang telah dinamakannya "Alat Mentah USB" yang menggambarkan sebagai utiliti yang membolehkan meniru peranti USB di ruang pengguna.

selain itu menyebutkan bahawa aplikasi sedang dipertimbangkan untuk memasukkan modul ini dalam kernel Linux utama. Google Raw Gadget sudah digunakan oleh Google untuk mempermudah ujian kabur USB kernel dengan toolkit syzkaller.

Pada mulanya saya menggunakan GadgetFS (bersama dengan modul Dummy HCD / UDC) untuk meniru peranti USB untuk kabur, tetapi kemudian ia beralih ke antara muka tertulis khusus.

Insentif untuk menerapkan antara muka yang berbeza adalah dengan memberikan akses langsung dan agak mentah ke lapisan Gadget USB untuk ruang pengguna, di mana setiap permintaan USB diteruskan ke ruang pengguna untuk mendapatkan respons.

Mengenai Alat Mentah USB

Modul mengurus penambahan antara muka baru pengaturcaraan ke subsistem kernel dipanggil "Gadget USB" dan yang sedang dikembangkan sebagai alternatif untuk GadgetFS.

Penciptaan API baru disebabkan oleh keperluan untuk akses langsung dan tahap rendah ke subsistem Gadget USB dari ruang pengguna, yang memungkinkan semua permintaan USB dapat diproses (GadgetFS memproses beberapa permintaan sendiri, tanpa memindahkannya ke ruang pengguna).

USB Raw Gadget dikendalikan melalui / dev / raw-gadget device dengan analogi dengan / dev / gadget di GadgetFS, tetapi antara muka berasaskan ioctl (), bukan pseudo-FS, digunakan untuk interaksi.

Selain memproses langsung semua permintaan USB dengan proses di ruang pengguna, antarmuka baru juga memiliki kemampuan untuk mengembalikan data apa pun sebagai respons terhadap permintaan USB (GadgetFS memeriksa kebenaran deskriptor USB dan menyaring respons tertentu, yang mengganggu pengesanan ralat semasa ujian penghapusan timbunan USB).

USB Raw Gadget juga membolehkan anda memilih peranti UDC tertentu (Pemacu peranti USB) dan pemacu untuk disambungkan, sementara GadgetFS menyambung ke peranti UDC pertama yang tersedia.

Untuk UDC yang berbeza, nama titik akhir yang dapat diramalkan dipetakan ke pelbagai jenis saluran komunikasi yang terpisah dalam satu peranti.

Akhirnya, jika anda ingin mengetahui lebih lanjut mengenainya, anda boleh menyemak perinciannya, serta log perubahan yang dibuat dalam Gadget Raw USB Dalam pautan berikut.

Bagaimana cara memasang modul Raw Gadget USB di Linux?

Bagi mereka yang berminat untuk dapat menguji modul ini pada sistem mereka, mereka boleh melakukannya dengan mengikuti arahan yang diperincikan di sini.

Untuk Dummy HCD / UDC (modul yang mengkonfigurasi peranti USB maya dan pengendali hos yang saling terhubung antara satu sama lain dalam kernel). Kita mesti membuka terminal dan di dalamnya kita akan menaip perintah berikut:

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

Dengan ini kita akan mendapatkan folder dengan modul yang akan kita kumpulkan dengan melaksanakan perintah berikut di terminal:

cd dummy_hcd

make

Dan kami terus memasangnya dengan:

./insmod.sh

Sekiranya kita ingin mengemas kini modul, kita melakukannya dengan:

./update.sh

Sekarang bagi mereka yang ingin memasang modul kernel. Di terminal kita akan mendapatkan fail yang diperlukan untuk ini dengan menjalankan perintah berikut:

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

Dengan ini kita akan mendapatkan folder dengan modul yang akan kita kumpulkan dengan melaksanakan perintah berikut di terminal:

cd dummy_hcd

make

Dan kami terus memasangnya dengan:

./insmod.sh

Sekiranya kita ingin mengemas kini modul, kita melakukannya dengan:

./update.sh

Anda boleh menyemak kerja di pautan berikut. 


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.