Hertz Posted January 26, 2010 Report Posted January 26, 2010 Acum cateva saptamani, dupa ce am citit un .pdf complex despre o grupare care au facut chestia asta pe niste tastaturi wireless de la Microsoft, de la distanta mare, m-am gandit sa incerc si eu pe o tastatura Labtec pe care o folosesc.HardwareAcesta a fost primul proiect in care am folosit USRP - ul cumparat acum cateva luni.Am folosit LFRX - ul ca daughterboard si o antena foarte simpla care defapt e un cablu. E departe de perfect, dar functioneaza in teste daca tastatura e foarte aproape (~1m).USRP :http://i47.tinypic.com/mrebuw.jpgIntreg sistemul de interceptare :http://i46.tinypic.com/152j7l4.jpgDemodulareaPrimul pas ce a trebuit sa il fac a fost gasirea frecventei exacte la care tastatura transmitea. A fost destul de usor fiindca tastatura avea FCCID scris pe spate. Am cautat pe siteul ASTA si am aflat ca transmite la exact 27.195MHz. Am reglat USRP - ul la acea frecventa si am folosit usrp_oscope.py pentru a primii unde.Dupa unele cercetari privind sistemele cele mai folosite de modulare, am realizat ca aceasta unda e modulata folosind FSK.Rularea prin intermediul blocului de demodulare cuadraturaica mi-a dat urmatorul rezultat :Acum arata foarte mult ca un semnal binar, deci e foarte posibil ca modulatia sa fie corecta. Urmatorul pas a fost sa gasesc encriptia corecta pentru a putea extrage bitii adevarati din acest stream.Mai tarziu am confirmat prin dezasamblarea recieverului original. Semnalele din osciloscop erau la fel ca cele de deasupra.Codare RFAceasta a fost cea mai grea parte din analiza mea. Prima oara am crezut ca ar putea fii codat NRZI , far asta nu mi-ar da niciodata mai mult de 2 zerouri in secventa si chiar si cu bit unstuffing nu era nici un pattern in datele decodate. Dupa cautari serioase am dat peste Codarea Miller.Aceasta mi-a dat niste rezultate foarte promitatoare deoarece acum era un pattern recurent in datele obtinute. Dar inca era o problema : pachetele extractate aveau un puncte pornire si unul de oprire in pattern (model), dar lungimea varia pentru diferite tastari. In stadiul asta puteam sa identific marea majoritate a tastarilor, dar nu foarte bine deoarece nu erau intr-o pozitie fixa in interiorul pachetului. Asta m-a facut sa caut multe alte scheme de codare pana cand am descoperit ca in interiorul pachetelor (exceptand in secventa sync) nu era niciodata un singur zero (101). Asa ca am incercat sa sterg un singur zero din fiecare secventa de zerouri (10001 -> 1001). Acesta a fost ultimul pas. Acum fiecare pachet (excluzand secventa sync) avea lungimea de 35 biti.Inversarea pachetelorOdata ce schema de codare era cunoscuta, era foarte usor sa aflu structura pachetelor. Consistau din secventa sync din 5 sau 7 biti, 3 biti de date inca necunoscute , 3 bytes de coduri ale tastelor si un indetificator al tastaturii de 1 byte. A fost doar o problema de cateva minute sa incerc toate butoanele , pentru a construii un tabel de cautare al codurilor tastelor.Inca doua lucruri ciudate pe care le-am notat : cand primul bit din identificatorul tastaturii era 1 , complet pachetul era inversat si cand procesam codurile tastelor de la dreapta la stanga , un 1 in msb inversa toate codurile urmatoare.ConcluzieAm deconectat tastatura de cateva ori pentru ca identificatorul tastaturii sa se schimbe , insa codurile tastelor ramaneau la fel, deci in concluzie acest model de tastatura nu folosea nici o encriptie. 1 Quote
begood Posted January 26, 2010 Report Posted January 26, 2010 pe ce distante poti prinde semnal ?felicitari. Quote
Psycho Bunny Posted January 26, 2010 Report Posted January 26, 2010 demult n-am mai vazut un asemnea articol.Felicitari Hertz. Awsome job you did!Cam care e intervalul de timp intre capturarea semnalului si descifrarea caracterelor ? Quote
Hertz Posted January 26, 2010 Author Report Posted January 26, 2010 @begood cu o antena buna > 100 m@psycho ~ 1 secunda Quote
FuzZyCore Posted January 29, 2010 Report Posted January 29, 2010 ala e asus eeepc ? daca da zi-mi daca ai reusit sa faci camera sa mearga pe xp Quote