Keelog a decis să lanseze o versiune timpurie a familiei sale de keyloggere hardware în domeniul public, incluzând codul sursă complet al firmware-ului și software-ului, schemele electrice ale hardware-ului keylogger, și documentația. Acest keylogger PS/2 este un dispozitiv 100% funcțional și testat, asamblat și utilizat de sute de persoane din întreaga lume. Funcționarea acestui hardware key logger este similară cu cea a KeyGrabber PS/2. Oferim aplicația KeyGrab pentru recuperarea și analiza datelor de tastare înregistrate. Cu toate acestea, vă rugăm să rețineți că acest proiect de hardware keylogger DIY este furnizat as is, cu toate defectele, și fără nicio garanție deloc.
Înainte de a începe, parcurgeți această listă pentru a verifica dacă aveți toate uneltele și abilitățile necesare pentru a finaliza acest proiect de keylogger hardware:
Următoarele componente sunt necesare pentru proiectul de keylogger hardware:
În cele din urmă, este necesar un carcasă pentru keylogger-ul hardware. O idee bună este să cumpărați un cablu de extensie PS/2 și o bucată de 4 inch de tub termocontractabil, care poate fi înfășurat termic în jurul keylogger-ului gata făcut.
Programați mai întâi firmware-ul microcontrolerului keylogger. Porniți software-ul de programare, selectați AT89C2051 și ardeți memoria flash cu fișierul binar sau versiunea hex. Puteți de asemenea recompila sursa folosind codul sursă și un compilator 8051. Lipirea este probabil cea mai dificilă parte a proiectului, deoarece hardware-ul keyloggerului ar trebui să fie cât mai mic posibil. Schemele hardware-ului keylogger de mai jos arată cum ar trebui făcute conexiunile între componente.
Lipiți componentele împreună începând de la microcontroler și EEPROM. Pini IC neutilizați pot fi îndepărtați. Asigurați-vă că butonul de apăsare este accesibil. La montarea condensatorului, asigurați-vă că este polarizat corect.
Faceți keyloggerul hardware cât mai compact posibil, evitați însă scurtcircuitele. Acestea vor fi dificil de îndepărtat după ce dispozitivul este finalizat. Circuitul keyloggerului ar trebui să arate într-o oarecare măsură ca prototipul prezentat în fotografie, după ce componentele principale sunt conectate.
În cele din urmă, lipiți conectorii PS/2 la keylogger. O idee bună este să tăiați cablul de extensie PS/2 în două bucăți și să lipiți fiecare parte separat. Asigurați-vă că puneți tubul termocontractabil pe una dintre părțile cablului. Conectați toate cele patru pini PS/2 utilizați (CLK, DATA, VCC și GND) la ambele conectori (la tastatură și la computer).
Înainte de a trage tubul termic în jurul keyloggerului hardware, este o idee bună să lași puțină lipici sau rășină între componente, pentru a face dispozitivul mai rigid. Trageți în cele din urmă tubul termic, încălziți-l până se înfășoară în jurul componentelor sudate, și tăiați un mic orificiu pentru a putea accesa butonul.
Keyloggerul hardware începe să înregistreze datele tastei odată ce este conectat între tastatură și computer. Keyloggerul este complet transparent pentru funcționarea computerului și nu poate fi detectat de software în modul de înregistrare. Toate datele tastei trimise de tastatură vor fi înregistrate în memoria EEPROM nevolatilă hardware de 64 kB. Modul de înregistrare este complet independent de sistemul de operare instalat pe computer.
Găsiți conectorul PS/2 la computer.
Deconectați tastatura.
Conectați keyloggerul hardware în locul tastaturii.
Conectați tastatura la keylogger. La pornirea computerului, datele vor începe să fie înregistrate.
Odată ce keyloggerul hardware a înregistrat datele cheie, acestea pot fi recuperate pe orice PC care rulează Windows 9X/Me/XP/2000. Keyloggerul hardware face acest lucru simulând apăsările de taste de la tastatură. Datele cheie transmise sunt preluate de aplicația KeyGrab. Odată ce aceste date au fost transmise calculatorului, ele pot fi procesate și analizate. Urmați instrucțiunile pentru a iniția descărcarea datelor.
Rulați aplicația KeyGrab.
Conectați keyloggerul hardware în locul tastaturii. Nu conectați tastatura.
Faceți clic pe bara de titlu KeyGrab pentru a o face aplicația activă.
Apăsați butonul de pe keyloggerul hardware pentru a iniția descărcarea datelor. Nu schimbați aplicația activă în timpul transmisiei. Apăsați din nou butonul pentru a finaliza transmisia. Faceți acest lucru când datele de apăsare a tastelor dorite au fost descărcate pe PC.
Deconectați keylogger-ul hardware și conectați din nou tastatura PS/2.
La descărcarea datelor de tastare în tabela principală KeyGrab, acestea sunt prelucrate automat pentru a afișa datele cheie înregistrate în timpul înregistrării. Datele sunt transmise în ordine descrescătoare, pentru a afișa mai întâi tastele apăsate recent. Tastaturile care au avut loc cu mult timp în urmă sunt transmise ulterior. Puteți analiza tabelul manual sau puteți folosi unele dintre opțiunile de căutare.
Singura coloană care este de interes pentru utilizator este Cheie (2) și Acțiune (3). Aceste coloane codează ce taste au fost apăsate și eliberate. Derulați bara pentru a vedea istoricul tastelor în timpul înregistrării. Datele keylogger-ului sunt transmise în ordine cronologică inversă (date recente despre apăsările de taste mai întâi).
Aplicația pentru recuperarea și analiza datelor de la keyloggerul hardware DIY pentru Windows 9X/ME/2000/XP:
KeyGrab.zip (0.7MB)
Codul sursă complet pentru microcontrolerul AT89C2051:
Cod sursă - diy.asm
Firmware-ul precompilat pentru keyloggerul hardware AT89C2051 este de asemenea disponibil:
Fișier BIN - diy.bin, Fișier HEX - diy.hex
Vă încurajăm să citiți această secțiune pentru a evita problemele care ar putea apărea în utilizarea keyloggerului hardware.
Dacă ai tăia un cablu de tastatură PS/2, probabil ai găsi în interior 6 fire. Doar 4 dintre acestea sunt semnificative. Două dintre acestea sunt linii de alimentare: masă (GND) și +5 volți (VCC) de la sursa de alimentare a computerului. Celelalte două fire sunt linii de transmisie asincronă: linia de date (DATA) și linia de ceas (CLK). Poți observa cum aceste linii corespund pinilor conectorului DIN (a) și miniDIN (b) în figura din dreapta. Transmisia este bidirecțională, însă tastatura este superioară. Tastatura trimite informații despre tastele care au fost apăsate și eliberate. Fragmentul de date constă într-un singur byte, precedat de un bit de start și urmat de un bit de paritate și un bit de stop. Tastatura pune biții succesivi pe linia DATA și îi sincronizează cu impulsuri negative pe linia CLK. Frecvența ceasului este de 10...30 kHz. Acesta ar fi un protocol serial foarte bun dacă nu ar fi pentru computer, care uneori dorește să trimită informații către tastatură. În astfel de cazuri, PC-ul trage linia CLK la nivel scăzut pentru o anumită perioadă de timp și așteaptă ca tastatura să înceapă să genereze impulsuri. Când aceste impulsuri încep, tastatura își sincronizează propriul caracter pe linia DATA. Poți vedea diagramele de stare ale transmisiei de la tastatură la gazdă (a) și de la gazdă la tastatură (b) în figura de mai jos. Acest protocol are desigur câteva excepții, cum ar fi întreruperea unei transmisii, repetarea caracterelor etc. Cu toate acestea, acestea sunt cazuri foarte rare.
Deci, ce este transmis efectiv prin liniile tastaturii? La pornire, atât tastatura, cât și computerul trimit date de inițializare, informând că totul este în regulă. Când computerul rulează normal, doar tastatura trimite date. Acestea sunt date despre fiecare eveniment care a avut loc. Un eveniment este considerat apăsarea sau eliberarea unei taste. Dacă este apăsată o tastă standard, este trimis așa-numitul "scancode". Fiecare tastă are exact un scancode, creând o hartă a scancodelor. Dacă o tastă este eliberată, mai întâi este trimis byte-ul special 240 (F0 hex), apoi scancode-ul tastei. Astfel, o apăsare standard a unei taste determină trimiterea a 3 caractere pe linie. Dacă o tastă este ținută apăsată pentru o perioadă, scancode-ul său va fi generat constant cu o anumită întârziere de repetare setată. Când este eliberată în cele din urmă, va fi trimis caracterul 240 (F0 hex), urmat de scancode. Acesta ar fi în continuare un protocol plăcut dacă nu ar exista unele taste speciale prezente pe tastatura standard a PC-ului, cum ar fi Home, End, săgețile, etc. Atunci când o tastă specială este apăsată, se generează byte-ul 224 (E0 hex), urmat de codul de scanare. Când o tastă specială este eliberată, secvența 224, 240 este declanșată (E0, F0), urmată de codul de scanare. Tastaturile normale și cele speciale sunt comune pentru toate configurațiile naționale de tastatură în ceea ce privește harta codurilor de scanare. Pentru a complica puțin povestea, există două taste super-speciale, Print Screen și Pause, care determină transmiterea unei întregi secvențe de coduri de scanare. Pentru un interfață de tastatură, este cel mai bine să se prefacă că aceste taste nu există.
Microcontrolerul monitorizează în permanență liniile DATA și CLK, colectând toate datele. Datele sunt înregistrate în memoria EEPROM nevolatilă pe măsură ce trec pe linie. Datorită acestui fapt, utilizatorul poate afla ulterior despre fiecare eveniment de pe tastatură. Când utilizatorul decide că înregistrarea s-a încheiat și apasă butonul, keyloggerul hardware trece în modul de redare. Tastatura ar trebui să fie deconectată, altfel va interpreta fluxul de date. Keyloggerul începe să simuleze date de la taste din memoria hardware internă. Aplicația KeyGrab trebuie să fie activă pentru a procesa fluxul de date de la hardware-ul keyloggerului. Tastaturile normale sunt simulate ca și cum ar fi fost scrise în memorie, iar tastele speciale sunt transmise folosind un cod hexazecimal pe două octeți.