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.
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:
Følgende komponenter er påkrævet til hardware keylogger-projektet:
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.
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.
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.
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).
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.
Find PS/2-stikket på computeren.
Afbryd tastaturet.
Tilslut hardware keylogger i stedet for tastaturet.
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.
Kør KeyGrab-applikationen.
Tilslut hardware keylogger i stedet for tastaturet. Tilslut ikke tastaturet.
Klik på titellinjen KeyGrab for at gøre den til den aktive applikation.
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.
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.
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
Vi opfordrer dig til at læse dette afsnit for at undgå problemer, der kan opstå ved brug af hardware keylogger.
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.
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.
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.