Taming USB/IP

Tagann an tasc chun feiste USB a nascadh le ríomhaire iargúlta trí líonra áitiúil go rialta. Faoi bhun an ghearrtha tá stair mo chuardaigh sa treo seo, agus an cosán chuig réiteach réidh bunaithe ar thionscadal foinse oscailte USB/IP le cur síos ar na constaicí a chuir daoine éagsúla isteach go cúramach ar an gcosán seo, chomh maith le bealaí chun dul timpeall orthu.

Cuid a haon, stairiúil

Má tá an meaisín fíorúil, tá sé seo go léir éasca. Bhí feidhmiúlacht seolta USB ón ósta go dtí an meaisín fíorúil le feiceáil i VMWare 4.1. Ach i mo chás, b'éigean an eochair shlándála, a aithníodh mar WIBU-KEY, a nascadh le meaisíní éagsúla ag amanna éagsúla, agus ní hamháin cinn fhíorúla.
Mar thoradh ar an gcéad bhabhta cuardaigh siar in 2009 tháinig mé ar phíosa crua-earraí ar a dtugtar TrendNet TU2-NU4
Son:

  • uaireanta oibríonn sé fiú

CONS:

  • ní oibríonn sé i gcónaí. Ligean le rá nach dtosaíonn an eochair chosanta Guardant Stealth II tríd, ag mionnú leis an earráid “ní féidir an gléas a thosú.”
  • Tá na bogearraí bainistíochta (léigh: gléasanna USB a fheistiú agus a dhíshuiteáil) thar a bheith bocht. Lasca líne ordaithe, uathoibriú - ní hea, níor chualamar. Déantar gach rud le do lámha. Nightmare.
  • Déanann na bogearraí rialaithe cuardach ar na crua-earraí féin ar an líonra trí chraoladh, mar sin ní oibríonn sé ach laistigh de mhír chraolta amháin den líonra. Ní féidir leat seoladh IP an phíosa crua-earraí a shonrú de láimh. An bhfuil an píosa crua-earraí ar fholíon difriúil? Ansin tá fadhb agat.
  • Na forbróirí a thabhairt suas ar an gléas, a sheoladh tuairiscí fabhtanna useless.

Tharla an dara babhta in am nach raibh chomh i bhfad i gcéin, agus thug mé chuig ábhar an ailt - Tionscadal USB/IP. Meallann lena oscailteacht, go háirithe ós rud é an guys ó ReactOS Shínigh siad tiománaí le haghaidh Windows, mar sin anois fiú ar x64 oibríonn gach rud gan aon crutches cosúil le modh tástála. Go raibh míle maith agat as an bhfoireann ReactOS! Fuaimeann gach rud go hálainn, déanaimis iarracht é a mhothú, an bhfuil sé amhlaidh i ndáiríre? Ar an drochuair, tá an tionscadal féin tréigthe freisin, agus ní féidir leat brath ar thacaíocht - ach nuair nach bhfuil ár gceann againn imithe, tá an cód foinse ann, déanfaimid amach é!

Cuid a dó, freastalaí-Linux

Ní féidir freastalaí USB/IP a roinneann gléasanna USB thar líonra a shuiteáil ach in OS atá bunaithe ar Linux. Bhuel, is Linux é Linux, suiteáil Debian 8 ar an meaisín fíorúil i gcumraíocht íosta, gnáthghluaiseacht láimhe:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install usbip

Bunaithe. Ansin tugann an Idirlíon le fios gur gá duit an modúl usbip a íoslódáil, ach - dia duit, an chéad rake. Níl modúl den sórt sin ann. Tá sé seo toisc go dtagraíonn an chuid is mó de na lámhleabhair ar an líonra don bhrainse níos sine 0.1.x, agus sa 0.2.0 is déanaí tá ainmneacha éagsúla ag na modúil usbip.

Dá bhrí sin:

sudo modprobe usbip-core
sudo modprobe usbip-host
sudo lsmod | grep usbip

Bhuel, cuirimis na línte seo a leanas le /etc/modules chun iad a luchtú go huathoibríoch nuair a thosaíonn an córas:

usbip-core
usbip-host
vhci-hcd

Cuirimis tús leis an bhfreastalaí usbip:

sudo usbipd -D

Thairis sin, insíonn an eagna uilíoch dúinn go dtagann usbip le scripteanna a ligeann dúinn an freastalaí a bhainistiú - taispeáin cén gléas a roinnfidh sé thar an líonra, féach ar an stádas, agus mar sin de. Anseo tá uirlis gairdín eile ag fanacht linn - athainmníodh na scripteanna seo sa bhrainse 0.2.x arís. Is féidir leat liosta orduithe a fháil ag baint úsáide as

sudo usbip

Tar éis an cur síos ar na horduithe a léamh, bíonn sé soiléir go bhfuil usbip ag iarraidh a ID Bus a fháil amach chun an gléas USB riachtanach a roinnt. A lucht féachana, rake uimhir a trí sa réimse: an Bus ID a thabhairt dúinn lsusb (is cosúil gurb é an bealach is soiléire) - ní oireann di! Is é an fírinne ná go ndéanann usbip neamhaird ar chrua-earraí cosúil le moil USB. Mar sin, úsáidfimid an t-ordú ionsuite:

user@usb-server:~$ sudo usbip list -l
 - busid 1-1 (064f:0bd7)
   WIBU-Systems AG : BOX/U (064f:0bd7)

Tabhair faoi deara: anseo agus níos faide sna liostaí beidh mé ag cur síos ar gach rud ag baint úsáide as an sampla de mo eochair USB ar leith. Is féidir agus beidh d’ainm crua-earraí agus péire VID:PID difriúil. Tugtar Wibu-Systems AG ar mhianach: BOX/U, VID 064F, PID 0BD7.

Anois is féidir linn ár ngléas a roinnt:

user@usb-server:~$ sudo usbip bind --busid=1-1
usbip: info: bind device on busid 1-1: complete

Hurrah, a gcomrádaithe!

user@usb-server:~$ sudo usbip list -r localhost
Exportable USB devices
======================
 - localhost
        1-1: WIBU-Systems AG : BOX/U (064f:0bd7)
           : /sys/devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb1/1-1
           : Vendor Specific Class / unknown subclass / unknown protocol (ff/00/ff)

Trí beannacht, a chomrádaithe! Tá na crua-earraí roinnte ag an bhfreastalaí thar an líonra, agus is féidir linn é a nascadh! Níl fágtha ach uath-tús an deamhan usbip a chur leis in /etc/rc.local

usbipd -D

Cuid a trí, taobh an chliaint agus mearbhall

Rinne mé iarracht láithreach an gléas roinnte a nascadh thar an líonra le meaisín a bhí ag rith Debian ar an bhfreastalaí céanna, agus gach rud ceangailte go foirfe:

sudo usbip attach --remote=localhost --busid=1-1

A ligean ar bogadh ar aghaidh go dtí Windows. I mo chás ba é Windows Server 2008R2 Standard Edition é. Iarrann an lámhleabhar oifigiúil ort an tiománaí a shuiteáil ar dtús. Tá cur síos breá ar an nós imeachta sa readme san áireamh leis an gcliant Windows, déanaimid gach rud mar atá scríofa, oibríonn gach rud amach. Oibríonn sé freisin ar XP gan aon deacrachtaí.

Tar éis dúinn an cliant a dhíphacáil, déanaimid ár ndícheall ár n-eochair a shuiteáil:

C:Program FilesUSB-IP>usbip -a %server-ip% 1-1
usbip err: usbip_network.c: 121 (usbip_recv_op_common) recv op_common, -1
usbip err: usbip_windows.c: 756 (query_interface0) recv op_common
usbip err: usbip_windows.c: 829 (attach_device) cannot find device

Ó ó. Chuaigh rud eigin mícheart. Bainimis úsáid as scil Google. Tá tagairtí blúirí ann go bhfuil rud éigin cearr leis na tairisigh; sa chuid freastalaí, d'athraigh na forbróirí an leagan prótacail agus iad ag bogadh go leagan 0.2.0, ach sa chliant Win rinne siad dearmad é seo a dhéanamh. Is é an réiteach atá beartaithe ná an tairiseach sa chód foinse a athrú agus an cliant a atógáil.

Ach i ndáiríre níl mé ag iarraidh Visual Studio a íoslódáil don nós imeachta seo. Ach tá an sean-Hiew maith agam. Sa chód foinse, dearbhaítear an tairiseach mar fhocal dúbailte. Féachaimis 0x00000106 sa chomhad, ag cur 0x00000111 ina ionad. Ná déan dearmad, tá an t-ordú beart droim ar ais. Is é an toradh dhá chluiche, paiste againn:

[usbip.exe]
00000CBC: 06 11
00000E0A: 06 11

Aaaand... sea!

C:Program FilesUSB-IP>usbip -a %server-ip% 1-1
new usb device attached to usbvbus port 1

B’fhéidir gurbh é seo deireadh an scéil, ach níor shein an ceol le fada. Tar éis an freastalaí a atosú, fuair mé amach nach raibh an gléas ar an gcliant suite!

C:Program FilesUSB-IP>usbip -a %server-ip% 1-1
usbip err: usbip_windows.c: 829 (attach_device) cannot find device

Sin é an méid. Ní raibh fiú an Google lánfhiosach in ann é seo a fhreagairt domsa. Agus ag an am céanna, taispeánann an t-ordú chun na feistí atá ar fáil ar an bhfreastalaí a thaispeáint i gceart - anseo é, an eochair, is féidir leat é a shuiteáil. Déanaim iarracht gléasadh ó Linux - oibríonn sé! Cad a tharlóidh má dhéanaimid iarracht anois ó Windows? Ó horror - oibríonn sé!

An raic dheireanach: níor scríobhadh rud éigin i gcód an fhreastalaí. Agus gléas á roinnt aige, ní léann sé líon na dtuairisceoirí USB uaidh. Agus nuair a bhíonn gléas á shuiteáil ó Linux, líontar an réimse seo. Ar an drochuair, tá cur amach agam ar fhorbairt Linux ag an leibhéal “déan && suiteáil”. Dá bhrí sin, réitíodh an fhadhb ag baint úsáide as hack sách salach - ag cur le /etc/rc.local

usbip attach --remote=localhost --busid=1-1
usbip port
usbip detach --port=00

An chuid deiridh

Tar éis roinnt ordeal, oibríonn sé. Tá an méid atá ag teastáil bainte amach, anois is féidir an eochair a chur ar aon ríomhaire (agus díshuiteáil, ar ndóigh, freisin), lena n-áirítear lasmuigh den deighleog chraolta den líonra. Más mian leat, is féidir leat é seo a dhéanamh le script bhlaosc ordaithe. Is é an rud atá deas ná go bhfuil an pléisiúr go hiomlán saor in aisce.
Tá súil agam go gcabhróidh mo thaithí leis na hackers dul timpeall ar an raca atá inphriontáilte ar mo mhullach. Go raibh maith agat as do aird!

Foinse: will.com

Add a comment