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.

Keylogger hardware DIY open source

Î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:

  • ceva experiență în hardware-ul electronic
  • un fier de lipit
  • un programator de microcontroler (care suportă familia Atmel AT89CXX51)
Keylogger hardware DIY open source - componente

Următoarele componente sunt necesare pentru proiectul de keylogger hardware:

  • Microcontroler Atmel AT89C2051 (sau AT89C1051, AT89C4051)
  • Cip EEPROM serial AT24C512 (sau compatibil)
  • Cristal de 12 MHz
  • Condensator 2 x 33p
  • Condensator de 10 µF
  • Rezistență de 10 kΩ
  • buton mic
Keylogger hardware DIY open source - Cablu PS/2

Î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.

Keylogger hardware DIY open source - ceva experiență în hardware-ul electronic

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.

Keylogger hardware DIY open source - lipire

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.

Keylogger hardware DIY open source - conectori

Î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).

Keylogger hardware DIY open source

Î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.

Keylogger hardware DIY open source - instalare 1

Găsiți conectorul PS/2 la computer.

Keylogger hardware DIY open source - instalare 2

Deconectați tastatura.

Keylogger hardware DIY open source - instalare 3

Conectați keyloggerul hardware în locul tastaturii.

Keylogger hardware DIY open source - instalare 4

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.

Keylogger hardware DIY open source - Modul de înregistrare 1

Rulați aplicația KeyGrab.

Keylogger hardware DIY open source - Modul de înregistrare 2

Conectați keyloggerul hardware în locul tastaturii. Nu conectați tastatura.

Keylogger hardware DIY open source - Modul de înregistrare 3

Faceți clic pe bara de titlu KeyGrab pentru a o face aplicația activă.

Keylogger hardware DIY open source - Modul de înregistrare 4

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.

Keylogger hardware DIY open source - Modul de înregistrare 5

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.

Keylogger hardware DIY open source - Analiză de date

1 - Poziția în memoria hardware a keyloggerului utilizată de evenimentul tastaturii (formă hexazecimală).
2 - Apăsări de taste capturate și înregistrate.
3 - Eveniment care a avut loc - o apăsare sau eliberare de tastă.
4 - Cod de scanare a tastelor pe busul PS/2 (sub formă hexazecimală).
5 - Ultima poziție de memorie scrisă în timpul înregistrării (sub formă hexazecimală).
6 - Dimensiunea memoriei hardware a keylogger-ului (în kilobiți).

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

Keylogger hardware DIY open source - KeyGrab

Vă încurajăm să citiți această secțiune pentru a evita problemele care ar putea apărea în utilizarea keyloggerului hardware.

Răspundere legală

  1. Țările au legi diferite privind înregistrarea datelor de la tastatură. Faptul de a nu cunoaște legea nu vă scutește de obligația de a o respecta. Vă rugăm să citiți acordul nostru de utilizator.
  2. Nu ne asumăm nicio responsabilitate pentru eventualele daune sau prejudicii cauzate de utilizarea acestui keylogger hardware.
  3. Nu ar trebui să folosiți acest dispozitiv pentru a intercepta date la care nu aveți autorizație să dețineți, în special parole, date bancare, corespondență confidențială etc. Majoritatea țărilor recunosc acest lucru ca fiind o crimă.

Înregistrare a datelor cheie

  1. Keyloggerul hardware are 64 kB de memorie EEPROM nevolatilă. Când această memorie este plină, scrierea va începe din nou de la prima locație de memorie. Cele mai vechi date vor fi pierdute.
  2. Primele 128 de octeți de memorie sunt rezervate pentru date de configurare, cum ar fi salvarea ultimei adrese de acces la memorie. Ultima adresă de acces la memorie este actualizată aproximativ la fiecare 10 secunde.
  3. Nu lăsați keyloggerul hardware conectat în modul de înregistrare atunci când nu este necesar. Acest lucru va utiliza memoria și va determina suprascrierea datelor vechi, uneori importante.

Transmitere de date cheie

  1. Pentru a recupera datele de la apăsarea tastelor, veți avea nevoie de cel puțin un computer de clasă Pentium cu o frecvență de 100 MHz și Windows 9X/Me/XP/2000 instalat.
  2. Keylogger-ul hardware transmite date înapoi către computer simulând tastatura. Tastatura reală trebuie să fie deconectată în timpul transmisiei.
  3. Aplicația activă trebuie să fie KeyGrab. În orice alt caz, fie Windows, fie o altă aplicație va începe să interpreteze apăsările simulate ale tastelor provenite de la keyloggerul hardware.
  4. Datele de apăsare a tastelor sunt recuperate în ordine cronologică inversă. Acest lucru se face pentru a furniza mai întâi date recente. Va trebui să așteptați puțin pentru a obține date foarte vechi de la tastatură. Întregul proces de transmitere poate dura până la 20 de minute.
  5. Transmisia trebuie să fie întreruptă manual apăsând din nou butonul. Faceți acest lucru atunci când datele de tastare încep să fie duplicate.

Operațiunea tastaturii PS/2

  1. Tastatura PS/2 este puțin mai complicată decât ai putea crede. Poți observa acest lucru analizând datele brute înregistrate de keylogger-ul hardware. Tastatura PC generează un caracter de fiecare dată când o tastă este apăsată. Când tasta este eliberată, caracterul este generat din nou cu un caracter precedent 240 (F0 hex). Există și taste extinse care folosesc caracterul 224 (E0 hex). Poți citi mai multe despre acest lucru în scurtul protocol al tastaturii PS/2.
  2. Deși keylogger-ul hardware are 64 kB de memorie, aceasta nu înseamnă că pot fi memorate 64 de mii de apăsări de taste. O secvență de apăsare-eliberează necesită 3 octeți pentru o tastă standard și 5 octeți pentru o tastă extinsă. Jurnalizarea a fost optimizată în versiunile comerciale.

Fundal

Keylogger hardware DIY open source - Linii de semnal PS/2

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.

Keylogger hardware DIY open source - forme de undă

Date autobuz

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ă.

Înregistrare date

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.