Suntem interesați de datele transmise prin magistrala USB. Pot cumva "asculta" acest trafic? Se pare că poți.
Descărcați programul USBPcap. stabilim:
Instalarea unui sniffer USBInstalarea unui sniffer USB
Instalarea unui sniffer USB
Instalarea unui sniffer USB
Instalarea unui sniffer USB
Acum rulați fișierul USBPcapCMD.exe cu drepturi de administrator:
Pornirea sniffer-ului USB
Vom monitoriza lucrul cu un drive flash, pe care l-am introdus cu atenție în portul 3 al primului hub rădăcină. În cadrul programului, el a decis, la numărul 2. Introduceți numărul 2. Apoi, introduceți fișierul rezultat (1.pcap), se va înregistra tot ce se întâmplă în autobuz.
Modificați puțin conținutul fișierului text de pe unitatea flash USB:
Scriem secvența vizuală din fișier
Apoi, terminăm aplicația de consolă a sniffer-ului apăsând tastele Ctrl + C și deschizând fișierul 1.pcap (apărut în directorul programului) prin WireShark:
Comenzi pentru schimbul de date cu un dispozitiv USB
Sondaj periodic al dispozitivelor USB
Deci, este ușor de văzut că, periodic (aproximativ o dată pe secundă), un dispozitiv USB este interogat:
Vedem acest lucru ca o unitate de testare Ready LUN. Imediat răspunsul vine. În acest fel, sistemul recunoaște că dispozitivul este conectat la hub.
Comandă pentru scrierea dispozitivelor USB
Încărcare director rădăcină FAT
Așteptările mele au fost îndeplinite! Prin transformări simple aritmetice obținem:
0x000001F0 * 200 = 0x0003E000
FAT director rădăcină
Adresă rădăcină purificată
Scrieți datele unui fișier de pe o unitate flash USB
Următoarea comandă de scriere este de a bloca 0x00000210. Vedem că este redată secvența 0x31. 0x31. 0x31. 0x32. 0x32, ... Aha!
Înmulțiți blocul cu 200:
Conținutul fișierului de pe unitatea flash USB
Ei bine, sigur! Acesta este doar grupul pe care îl ocupă fișierul 1.txt. și din acest offset începe conținutul său 111222333444. Este vorba de codurile ASCII ale acestor caractere care arată ca 0x31, 0x31, 0x31, 0x32, .... Totul se reuneste!
Vedeți următoarea comandă pentru scriere:
Scrierea în tabelul FAT
E interesant. Desigur, am o presupunere, dar ar fi bine să verific. Vedem LBA 0x00000004.
Eu explic, F8 - identificatorul mediului (hard disk). Apoi, există doi octeți de umplutură FFFF. Și apoi FFFF este o înregistrare a dosarului nostru. Aceasta înseamnă că în tabelul de alocare a fișierelor fișierul nostru ocupă un singur cluster și aceasta este prima intrare FAT. Uită-te la link-ul pentru a înțelege.
Următorul decalaj din ecranul anterior este 0x0000000FA. Nu vom dezasambla, doar să spunem că acesta este al doilea exemplar al tabelului FAT (backup).
Aici, în general, asta e tot. Trebuie să spun, înainte de asta nu am înțeles cum se înregistrează înregistrarea pe suporturi de tip USB. Acum devine clar. Există materiale metodice cu privire la programarea dispozitivelor USB și driverelor, am și o idee minunată pe care doresc să o pun în aplicare. Pentru a face acest lucru, trebuie să scrieți un mic program, cum ar fi acest sniffer.