Keelog har besluttet at frigive en tidlig version af sin hardware keylogger-familie til offentlig domæne, inklusive fuld firmware- og softwarekildekode, keylogger-hardware-elektriske skematiske diagrammer og dokumentation. Denne PS/2 key logger er en 100% operationel og testet enhed, samlet og brugt af hundredvis af mennesker over hele verden. Driften af denne hardware key logger er lignende KeyGrabber PS/2. Vi leverer applikationen KeyGrab til at hente og analysere registrerede tastetryksdata. Bemærk dog, at dette DIY hardware keylogger-projekt leveres som det er, med alle fejl, og uden nogen form for garanti.

Open source DIY hardware keylogger

Inden du begynder, skal du gå ned ad denne liste for at kontrollere, om du har alle de nødvendige værktøjer og færdigheder til at gennemføre dette hardware keylogger-projekt:

  • lidt erfaring med elektronik hardware
  • en loddekolbe
  • en mikrocontrollerprogrammør (der understøtter Atmel AT89CXX51-familien)
Open source DIY hardware keylogger - komponenter

Følgende komponenter er påkrævet til hardware keylogger-projektet:

  • Atmel AT89C2051 mikrocontroller (eller AT89C1051, AT89C4051)
  • Seriel EEPROM-chip AT24C512 (eller kompatibel)
  • 12 MHz krystal
  • Kondensator 2 x 33p
  • 10 µF kondensator
  • 10 kΩ modstand
  • lille trykknap
Open source DIY hardware keylogger - PS/2 kabel

Endelig er et etui til hardware keyloggeren påkrævet. En god idé er at købe en PS/2 forlængerledning og et 4-tommers stykke varmeskærmende rør, som kan vikles om den færdige keylogger.

Programmer først keylogger mikrocontroller firmwaren. Start din programmørsoftware, vælg AT89C2051, og brænd flashen med den binære fil eller den hex-version. Du kan også rekompilere kilden ved hjælp af den kildekode og en 8051-compiler. Lodning er sandsynligvis den mest udfordrende del af projektet, da keylogger-hardwaren skal være så lille som muligt. Nedenstående diagrammer for keylogger-hardwaren viser, hvordan forbindelser skal laves mellem komponenterne.

Open source DIY hardware keylogger - lidt erfaring med elektronik hardware

Lod komponenterne sammen, startende fra mikrocontrolleren og EEPROM'en. Ubrugte IC-ben kan fjernes. Sørg for, at trykknap er tilgængelig. Når du monterer kondensatoren, sørg for, at den er korrekt polariseret.

Open source DIY hardware keylogger - lodning

Gør hardware keyloggeren så kompakt som muligt, men undgå kortslutninger. De vil være svære at fjerne efter enheden er færdig. Keyloggerkredsløbet bør se nogenlunde ud som prototypen vist på billedet, efter de vigtigste komponenter er tilsluttet.

Open source DIY hardware keylogger - forbindelser

Lod endelig PS/2-stikkene til keyloggeren. En god idé er at klippe PS/2-forlængelseskablet i to stykker og lodde hver del separat. Sørg for at du sætter varmeskrumpeslangen på en del af kablet. Forbind alle fire brugte PS/2-pinde (CLK, DATA, VCC og GND) på begge stikkene (ved tastaturet og ved computeren).

Open source DIY hardware keylogger

Før du trækker den termiske rør rundt om hardware keyloggeren, er det en god idé at lade lidt lim eller harpiks komme imellem komponenterne, for at gøre enheden mere stiv. Træk til sidst den termiske rør på, varm den indtil den omslutter de loddende komponenter, og skær et lille hul ud, så knappen er tilgængelig.

Hardware keylogger begynder at optage tastdata, så snart den er tilsluttet mellem tastaturet og computeren. Keyloggeren er helt gennemsigtig for computerens drift og kan ikke opdages af software i optagetilstand. Alle tastdata sendt af tastaturet vil blive optaget til 64 kB hardware ikke-flygtigt EEPROM-hukommelse. Optagetilstand er helt uafhængig af det operativsystem, der er installeret på computeren.

Open source DIY hardware keylogger - installation 1

Find PS/2-stikket på computeren.

Open source DIY hardware keylogger - installation 2

Afbryd tastaturet.

Open source DIY hardware keylogger - installation 3

Tilslut hardware keylogger i stedet for tastaturet.

Open source DIY hardware keylogger - installation 4

Tilslut tastaturet til keyloggeren. Når computeren tændes, vil dataoptagelsen begynde.

Når hardware keylogger har registreret tastedata, kan det hentes til enhver PC, der kører Windows 9X/Me/XP/2000. Hardware keylogger gør dette ved at simulere tastaturtryk. De transmitterede tastedata hentes af applikationen KeyGrab. Når disse data er overført til computeren, kan de behandles og analyseres. Følg instruktionerne for at starte dataoverførsel.

Open source DIY hardware keylogger - Optagetilstand 1

Kør KeyGrab-applikationen.

Open source DIY hardware keylogger - Optagetilstand 2

Tilslut hardware keylogger i stedet for tastaturet. Tilslut ikke tastaturet.

Open source DIY hardware keylogger - Optagetilstand 3

Klik på titellinjen KeyGrab for at gøre den til den aktive applikation.

Open source DIY hardware keylogger - Optagetilstand 4

Tryk på knappen på hardware keylogger for at starte dataoverførslen. Skift ikke den aktive applikation under transmissionen. Tryk på knappen igen for at afslutte transmissionen. Gør dette, når de ønskede tastetryksdata er blevet downloadet til pc'en.

Open source DIY hardware keylogger - Optagetilstand 5

Afbryd hardware keyloggeren og tilslut dit PS/2-tastatur igen.

Når du downloader tastetryksdata til hovedtabellen KeyGrab, forbehandles det automatisk for at vise tastdata, der er logget under optagelse. Data overføres i faldende rækkefølge for at vise nyligt trykte taster først. Tastetryk, der fandt sted for lang tid siden, overføres senere. Du kan analysere tabellen manuelt eller bruge nogle af søgemulighederne.

Open source DIY hardware keylogger - Dataanalyse

1 - Position i keylogger hardware-hukommelse brugt af tastaturbegivenheden (hex form).
2 - Fanget og logget tastetryk.
3 - Begivenhed der fandt sted - et tastetryk eller -frigivelse.
4 - Tastetryk scankode på PS/2-bussen (hex-form).
5 - Sidste hukommelsesposition skrevet under optagelse (hexadecimal form).
6 - Hukommelsesstørrelse for hardware keylogger (i kilobit).

Den eneste kolonne, der er af interesse for brugeren, er Nøgle (2) og Handling (3). Disse kolonner koder, hvilke taster der er blevet trykket og frigivet. Scroll bjælken for at se tastetrykshistorikken under optagelse. Keylogger-data overføres i omvendt kronologisk rækkefølge (seneste tastetrykdata først).

Applikationen til at hente og analysere data fra DIY-hardware keylogger til Windows 9X/ME/2000/XP:
KeyGrab.zip (0.7MB)

Den fulde kildekode til AT89C2051-mikrocontrolleren:
Kildekode - diy.asm

Den forhåndskompilerede AT89C2051 hardware keylogger firmware er også tilgængelig:
BIN-fil - diy.bin, HEX-fil - diy.hex

Open source DIY hardware keylogger - KeyGrab

Vi opfordrer dig til at læse dette afsnit for at undgå problemer, der kan opstå ved brug af hardware keylogger.

Juridisk ansvar

  1. Land har forskellige love om at logge tastaturdata. At ikke kende loven betyder ikke, at du ikke behøver at overholde den. Læs venligst vores brugeraftale.
  2. Vi tager ikke ansvar for eventuelle skader eller skader forårsaget af brugen af denne hardware keylogger.
  3. Du bør ikke bruge denne enhed til at opsnappe data, som du ikke har autorisation til at besidde, især adgangskoder, bankdata, fortrolig korrespondance osv. De fleste lande anser dette som en kriminel handling.

Nøgledata logning

  1. Hardware keyloggeren har 64 kB af ikke-flygtigt EEPROM-hukommelse. Når denne hukommelse er fuld, vil skrivningen starte forfra fra den første hukommelsesplacering. De ældste data vil gå tabt.
  2. De første 128 byte af hukommelsen er reserveret til konfigurationsdata, såsom at gemme den seneste hukommelsesadgangsadresse. Den seneste hukommelsesadgangsadresse opdateres cirka hvert 10. sekund.
  3. Efterlad ikke hardware keylogger tilsluttet i optagefunktion, når det ikke er nødvendigt. Dette vil bruge hukommelse og forårsage, at gamle, sommetider vigtige, data overskrives.

Nøgledataoverførsel

  1. For at hente tastaturdata skal du bruge mindst en 100 MHz Pentium-klasse computer med Windows 9X/Me/XP/2000 installeret.
  2. Hardware keyloggeren sender data tilbage til computeren ved at simulere tastaturet. Det rigtige tastatur skal være frakoblet under transmissionen.
  3. Den aktive applikation skal være KeyGrab. I alle andre tilfælde vil enten Windows eller en anden applikation begynde at fortolke de simulerede tastetryk, der kommer fra hardware keyloggeren.
  4. Tastaturdata hentes i omvendt kronologisk rækkefølge. Dette gøres for at give de seneste data først. Du skal vente lidt for at få meget gamle tastaturdata. Hele transmissionsprocessen kan vare op til 20 minutter.
  5. Transmissionen skal afsluttes manuelt ved at trykke på trykknappen igen. Gør dette, når tastetryksdata begynder at blive duplikeret.

Tastaturbetjening af PS/2

  1. PS/2-tastaturet er lidt mere kompliceret end du måske tror. Du kan bemærke dette ved at analysere rådata logget af hardware keyloggeren. PC-tastaturet genererer ét tegn hver gang en tast trykkes ned. Når tasten slippes, genereres tegnet igen med et forudgående 240 (F0 hex) tegn. Der er også udvidede taster, der bruger 224 (E0 hex) tegnet. Du kan læse mere om dette i den korte protokollen for PS/2-tastaturet.
  2. Selvom hardware keyloggeren har 64 kB hukommelse, betyder det ikke, at 64 tusind tastetryk kan huskes. En tastetryk-frigivelsessekvens kræver 3 byte for en standardtast og 5 byte for en udvidet tast. Logning er blevet optimeret i kommercielle versioner.

Baggrund

Open source DIY hardware keylogger - PS/2 signal linjer

Hvis du skulle skære en PS/2 tastaturkabel over, ville du sandsynligvis finde 6 ledninger indeni. Kun 4 af disse er meningsfulde. To af disse er strømledninger: jord (GND) og +5 volt (VCC) fra computerens strømforsyning. De to andre ledninger er asynkrone transmissionsledninger: dataledningen (DATA) og clock-ledningen (CLK). Du kan se, hvordan disse linjer svarer til DIN (a) og miniDIN (b) stikben på figuren til højre. Transmissionen er tovejs, men tastaturet er overlegent. Tastaturet sender information om taster, der er blevet trykket ned og frigivet. Datachunken består kun af en byte, forud for et startbit og efterfulgt af et paritets- og stopbit. Tastaturet placerer efterfølgende bits på DATA-ledningen og klokker dem med negative impulser på CLK-ledningen. Klokkens frekvens er 10...30 kHz. Dette ville være en meget flot seriel protokol, hvis det ikke var for computeren, som lejlighedsvis ønsker at sende information til tastaturet. I sådanne tilfælde trækker PC'en CLK-ledningen lav i en periode og venter på, at tastaturet begynder at generere impulser. Når disse impulser starter, klokker det sin egen karakter ind på DATA-ledningen. Du kan se tilstandsdiagrammer for tastatur til vært (a) og vært til tastatur (b) transmission på figuren nedenfor. Denne protokol har selvfølgelig nogle undtagelser, som at afbryde en transmission, karaktergentagelse osv. Disse tilfælde er dog meget sjældne.

Open source DIY hardware keylogger - bølgeformer

Busdata

Hvad bliver faktisk transmitteret gennem tastaturlinjerne? Ved opstart sender både tastaturet og computeren initialiseringsdata, der informerer om, at de er OK. Når computeren kører normalt, sender kun tastaturet data. Dette er data om hvert eneste begivenhed, der fandt sted. En begivenhed betragtes som en tast, der bliver trykket ned eller sluppet. Hvis en standardtast bliver trykket ned, sendes dens såkaldte 'scancode'. Hver tast har præcis én scancode, hvilket skaber et kort over scancodes. Hvis en tast bliver sluppet, sendes først den specielle byte 240 (F0 hex), efterfulgt af tastens scancode. Så en standardtastetryk forårsager, at 3 tegn sendes ned ad linjen. Hvis en tast holdes nede i et stykke tid, vil dens scancode blive genereret konstant med den indstillede gentagelsesforsinkelse. Når den endelig slippes, sendes tegnet 240 (F0 hex), efterfulgt af scancoden. Dette ville stadig være en god protokol, hvis det ikke var for nogle specielle taster på det standard PC-tastatur, som f.eks. Home, End, piletasterne osv. Når en speciel tast trykkes ned, genereres byte 224 (E0 hex), efterfulgt af scancoden. Når en speciel tast slippes, udløses sekvensen 224, 240 (E0, F0), efterfulgt af scancoden. Normale og specielle taster er fælles for alle nationale tastaturlayouts med hensyn til kortet over scancodes. For at gøre historien lidt mere kompliceret, findes der to super-specielle taster, Print Screen og Pause, som forårsager en hel sekvens af scancodes at blive transmitteret. For en tastaturgrænseflade er det bedst at lade som om, at disse taster ikke eksisterer.

Data logning

Mikrocontrolleren overvåger DATA- og CLK-linjerne hele tiden og indsamler alle data. Data logges til ikke-flygtigt EEPROM-hukommelse, mens det går ned ad linjen. Takket være dette kan brugeren senere finde ud af om enhver begivenhed på tastaturet. Når brugeren beslutter, at optagelsen er slut, og trykker på knappen, skifter hardware keyloggeren til afspilningstilstand. Tastaturet skal være frakoblet, ellers vil det tolke datastrømmen. Keyloggeren begynder at simulere tastdata fra intern hardwarehukommelse. Applikationen KeyGrab skal være aktiv for at behandle datastrømmen fra keylogger-hardwaren. Normale taster simuleres, som om de var skrevet i hukommelsen, og specielle taster sendes ved hjælp af en to-byte hex-kode.