Keelog har beslutat att släppa en tidig version av sin hårdvaru keylogger-familj till allmänheten, inklusive full firmware- och programvarukällkod, keylogger-hårdvaruelektriska scheman och dokumentation. Denna PS/2 key logger är en 100% fungerande och testad enhet, monterad och använd av hundratals människor runt om i världen. Driften av denna hårdvaru key logger är liknande KeyGrabber PS/2. Vi tillhandahåller applikationen KeyGrab för hämtning och analys av inspelade tangenttrycksdata. Observera dock att detta DIY-hårdvaru keylogger-projekt tillhandahålls som det är, med alla fel, och utan någon som helst garanti.
Innan du börjar, gå igenom denna lista för att kontrollera om du har alla verktyg och färdigheter som behövs för att slutföra detta hårdvaru keylogger-projekt:
Följande komponenter krävs för hårdvaru keylogger-projektet:
Slutligen krävs ett hölje för hårdvaru-nyckelloggern. En bra idé är att köpa en förlängningskabel för PS/2 och en 4-tums bit av krympbar slang, som kan värmevärmas runt den färdiga keyloggern.
Programmera först nyckelloggerns mikrokontroller-firmware. Starta din programmeringsprogramvara, välj AT89C2051 och bränn flashminnet med den binära filen eller den hex-versionen. Du kan också rekompilera källkoden med hjälp av den källkoden och en 8051-kompilator. Lödning är förmodligen den svåraste delen av projektet, eftersom keylogger-hårdvaran bör göras så liten som möjligt. Scheman för keylogger-hårdvaran nedan visar hur anslutningar ska göras mellan komponenterna.
Löd ihop komponenterna, börja med mikrokontrollern och EEPROM:en. Oanvända IC-pinnar kan tas bort. Se till att tryckknappen är åtkomlig. När du monterar kondensatorn, se till att den är korrekt polariserad.
Gör hårdvaru keyloggern så kompakt som möjligt, undvik dock kortslutningar. De kommer att vara svåra att ta bort efter att enheten är klar. Keyloggerkretsen bör se något ut som prototypen som visas på bilden, efter att de huvudsakliga komponenterna är anslutna.
Löd slutligen PS/2-kontakterna till keyloggern. En bra idé är att klippa PS/2-förlängningskabeln i två delar och löda varje del separat. Se till att du sätter krympslangen på en del av kabeln. Anslut alla fyra använda PS/2-stift (CLK, DATA, VCC och GND) på båda kontakterna (vid tangentbordet och vid datorn).
Innan du drar den termiska röret runt hårdvaru keyloggern, är det en bra idé att låta lite lim eller harts komma emellan komponenterna, för att göra enheten mer styv. Dra till sist den termiska röret på, värm den tills den omsluter de lödda komponenterna, och skär ut ett litet hål så att knappen är åtkomlig.
Hårdvaru keyloggern börjar spela in tangentdata så fort den är inkopplad mellan tangentbordet och datorn. Keyloggern är helt transparent för datorns funktion och kan inte upptäckas av programvara i inspelningsläge. All tangentdata som skickas av tangentbordet spelas in i 64 kB hårdvaru icke-flyktigt EEPROM-minne. Inspelningsläget är helt oberoende av det operativsystem som är installerat på datorn.
Hitta PS/2-kontakten på datorn.
Koppla loss tangentbordet.
Anslut hårdvaru keyloggern istället för tangentbordet.
Anslut tangentbordet till keyloggern. När datorn startas kommer data att börja spelas in.
När hårdvaru keyloggern har registrerat tangentdata kan den hämtas till vilken PC som helst som körs på Windows 9X/Me/XP/2000. Hårdvaru keyloggern gör detta genom att simulera tangentbordstryckningar. De överförda tangentdata hämtas av applikationen KeyGrab. När dessa data har överförts till datorn kan de bearbetas och analyseras. Följ instruktionerna för att initiera nedladdning av data.
Kör KeyGrab-applikationen.
Anslut hårdvaru keyloggern istället för tangentbordet. Anslut inte tangentbordet.
Klicka på titelraden KeyGrab för att göra den till den aktiva applikationen.
Tryck på knappen på hårdvaru keyloggern för att starta nedladdning av data. Ändra inte den aktiva applikationen under överföringen. Tryck på knappen igen för att avsluta överföringen. Gör detta när önskade tangenttrycksdata har laddats ner till datorn.
Koppla bort den hårdvarubaserade tangentbordsloggern och anslut din PS/2-tangentbord igen.
När du laddar ner tangentdata till huvudtabellen KeyGrab, förbehandlas den automatiskt för att visa tangentdata som loggats under inspelningen. Data överförs i fallande ordning för att visa nyligen tryckta tangenter först. Tangenttryck som inträffade för länge sedan överförs senare. Du kan analysera tabellen manuellt eller använda några av sökalternativen.
Den enda kolumn som är av intresse för användaren är Nyckel (2) och Åtgärd (3). Dessa kolumner kodar vilka tangenter som har tryckts ned och släppts. Scrolla i fältet för att se tangenttryckningshistoriken under inspelningen. Keylogger-data överförs i omvänd kronologisk ordning (senaste tangenttryckningsdata först).
Applikationen för att hämta och analysera data från DIY-hårdvarukeyloggern för Windows 9X/ME/2000/XP:
KeyGrab.zip (0.7MB)
Hela källkoden för AT89C2051-mikrokontrollen:
Källkod - diy.asm
Den förkompilerade AT89C2051 hårdvaru keylogger-firmwaren är också tillgänglig:
BIN-fil - diy.bin, HEX-fil - diy.hex
Vi rekommenderar att du läser detta avsnitt för att undvika problem som kan uppstå vid användning av hårdvaru keylogger.
Om du skulle klippa av en PS/2 tangentbordskabel skulle du förmodligen hitta 6 ledningar inuti. Endast 4 av dessa är meningsfulla. Två av dem är strömlinjer: jord (GND) och +5 volt (VCC) från datorns strömförsörjning. De andra två ledningarna är asynkrona överföringsledningar: datalinjen (DATA) och klocklinjen (CLK). Du kan se hur dessa linjer motsvarar DIN (a) och miniDIN (b) kontaktpinnar på figuren till höger. Överföringen är bi-direktionell, men tangentbordet är överlägset. Tangentbordet skickar information om vilka tangenter som har tryckts ned och släppts. Datachunken består endast av en byte, föregås av en startbit och följs av en paritets- och stoppbit. Tangentbordet placerar på varandra följande bitar på DATA-linjen och klockar dem med negativa impulser på CLK-linjen. Klockfrekvensen är 10...30 kHz. Detta skulle vara en mycket trevlig seriell protokoll om det inte vore för datorn, som ibland vill skicka information till tangentbordet. I sådana fall drar datorn ner CLK-linjen under en tid och väntar på att tangentbordet ska börja generera impulser. När dessa impulser börjar, klockar det sin egen tecken på DATA-linjen. Du kan se tillståndsdiagram för tangentbord till värd (a) och värd till tangentbord (b) överföring på figuren nedan. Detta protokoll har naturligtvis några undantag, som att avbryta en överföring, teckenupprepning osv. Men dessa är mycket sällsynta fall.
Vad är det egentligen som överförs genom tangentbordslinjerna? Vid uppstart skickar både tangentbordet och datorn initialiseringsdata för att informera att de är OK. När datorn fungerar normalt är det bara tangentbordet som skickar data. Detta är data om varje händelse som inträffar. En händelse betraktas som en tangent som trycks ned eller släpps. Om en standardtangent trycks ned skickas dess s.k. 'scankod'. Varje tangent har exakt en scankod, vilket skapar en karta över scancoder. Om en tangent släpps skickas först den speciella byten 240 (F0 hex), följt av tangentens scankod. Så en standardtangenttryckning resulterar i att 3 tecken skickas längs linjen. Om en tangent hålls ned under en tid genereras dess scankod kontinuerligt med den inställda upprepningstiden. När den slutligen släpps skickas tecknet 240 (F0 hex), följt av scankoden. Detta skulle fortfarande vara en trevlig protokoll om det inte vore för vissa speciella tangenter som finns på standard PC-tangentbordet, som Home, End, pilarna, osv. När en speciell tangent trycks ned, genereras byte 224 (E0 hex), följt av scankoden. När en speciell tangent släpps, avfyras sekvensen 224, 240 (E0, F0), följt av scankoden. Normala och speciella tangenter är gemensamma för alla nationella tangentbordslayouter med avseende på kartan över scancodes. För att göra historien lite mer komplicerad, finns det två super-speciella tangenter, Print Screen och Pause, som orsakar en hel sekvens av scancodes att skickas. För en tangentbordsinterfacer är det bäst att låtsas som att dessa tangenter inte existerar.
Mikrokontrollern övervakar DATA- och CLK-linjerna hela tiden och samlar in all data. Data loggas till icke-flyktigt EEPROM-minne när den passerar linjen. Tack vare detta kan användaren senare ta reda på varje händelse på tangentbordet. När användaren bestämmer att inspelningen är över och trycker på knappen, växlar hårdvarunyckelloggern till uppspelningsläge. Tangentbordet ska vara frånkopplat, annars kommer det att tolka dataflödet. Nyckelloggern börjar simulera tangentdata från internt hårdvaruminne. Applikationen KeyGrab måste vara aktiv för att behandla dataflödet från keylogger-hårdvaran. Normala tangenter simuleras som om de skrevs i minnet, och specialtangenter skickas med hjälp av en tvåbyte hexkod.