Keelog har bestemt seg for å lansere en tidlig versjon av sin hardware keylogger-familie til offentlig domene, inkludert full firmware- og programvarekildekode, keylogger maskinvare elektriske skjemaer og dokumentasjon. Denne PS/2 key loggeren er en 100% operativ og testet enhet, montert og brukt av hundrevis av mennesker over hele verden. Driften av denne hardware key loggeren er lik KeyGrabber PS/2. Vi tilbyr applikasjonen KeyGrab for henting og analyse av registrerte tastetrykkdata. Vær imidlertid oppmerksom på at dette DIY hardware keylogger-prosjektet leveres som det er, med alle feil, og uten noen form for garanti.

Åpen kildekode DIY-maskinvare keylogger

Før du starter, gå gjennom denne listen for å sjekke om du har alle verktøyene og ferdighetene som trengs for å fullføre dette hardware keylogger-prosjektet:

  • noe erfaring med elektronikk maskinvare
  • en loddekolbe
  • en mikrokontrollerprogrammerer (som støtter Atmel AT89CXX51-familien)
Åpen kildekode DIY-maskinvare keylogger - komponenter

Følgende komponenter er nødvendige for maskinvare keylogger-prosjektet:

  • Atmel AT89C2051 mikrokontroller (eller AT89C1051, AT89C4051)
  • Serienummer EEPROM-brikke AT24C512 (eller kompatibel)
  • 12 MHz krystall
  • Kondensator 2 x 33p
  • 10 µF kondensator
  • 10 kΩ motstand
  • liten trykknapp
Åpen kildekode DIY-maskinvare keylogger - PS/2 kabel

Til slutt er et etui for maskinvare-keyloggeren nødvendig. En god idé er å kjøpe en PS/2 forlengelseskabel og et 4-tommers stykke varmeskrumpende slange, som kan varmes opp og pakkes rundt den ferdige keyloggeren.

Programmer først mikrokontrollerfirmwaren for keyloggeren. Start programmeringsprogramvaren din, velg AT89C2051, og brenn flashminnet med den binære filen eller den hex-versjonen. Du kan også rekompilere kilden ved å bruke den kildekoden og en 8051-kompilator. Å lodde er sannsynligvis den mest utfordrende delen av prosjektet, da maskinvaren til keyloggeren bør være så liten som mulig. Nedenfor viser skjemaene for keylogger-maskinvaren hvordan tilkoblinger skal gjøres mellom komponentene.

Åpen kildekode DIY-maskinvare keylogger - noe erfaring med elektronikk maskinvare

Lodd komponentene sammen, startende fra mikrokontrolleren og EEPROM-en. Ubrukte IC-pinner kan fjernes. Sørg for at trykknappen er tilgjengelig. Når du monterer kondensatoren, sørg for at den er riktig polarisert.

Åpen kildekode DIY-maskinvare keylogger - lodding

Gjør hardware keyloggeren så kompakt som mulig, men unngå kortslutninger. De vil være vanskelige å fjerne etter at enheten er ferdig. Keyloggerkretsen bør se noenlunde ut som prototypen vist på bildet, etter at de viktigste komponentene er koblet sammen.

Åpen kildekode DIY-maskinvare keylogger - kontakter

Lodd til slutt PS/2-kontaktene til keyloggeren. En god idé er å klippe PS/2-forlengelseskabelen i to deler og lodde hver del separat. Sørg for å sette varmeskjæret på en del av kabelen. Koble alle fire brukte PS/2-pinner (CLK, DATA, VCC og GND) på begge kontaktene (ved tastaturet og ved datamaskinen).

Åpen kildekode DIY-maskinvare keylogger

Før du trekker den termiske røret rundt maskinvare keyloggeren, er det en god idé å la litt lim eller harpiks komme mellom komponentene, for å gjøre enheten mer stiv. Trekk til slutt den termiske røret på, varm den til den omslutter de loddete komponentene, og klipp ut et lite hull slik at knappen er tilgjengelig.

Hardware keylogger begynner å registrere tastedata så snart den er plugget mellom tastaturet og datamaskinen. Keyloggeren er helt gjennomsiktig for datamaskinens operasjon og kan ikke oppdages av programvare i opptaksmodus. Alle tastedata sendt av tastaturet vil bli registrert til 64 kB hardware ikke-flyktig EEPROM-minne. Opptaksmodus er helt uavhengig av operativsystemet installert på datamaskinen.

Åpen kildekode DIY-maskinvare keylogger - installasjon 1

Finn PS/2-kontakten på datamaskinen.

Åpen kildekode DIY-maskinvare keylogger - installasjon 2

Koble fra tastaturet.

Åpen kildekode DIY-maskinvare keylogger - installasjon 3

Koble til hardware keylogger i stedet for tastaturet.

Åpen kildekode DIY-maskinvare keylogger - installasjon 4

Koble tastaturet til keyloggeren. Ved oppstart av datamaskinen vil data begynne å bli registrert.

Når hardware keylogger har registrert tastedata, kan det hentes til hvilken som helst PC som kjører Windows 9X/Me/XP/2000. Hardware keylogger gjør dette ved å simulere tastetrykk. De overførte tastedataene hentes av applikasjonen KeyGrab. Når disse dataene er overført til datamaskinen, kan de behandles og analyseres. Følg instruksjonene for å starte nedlasting av data.

Åpen kildekode DIY-maskinvare keylogger - Opptaksmodus 1

Kjør KeyGrab-applikasjonen.

Åpen kildekode DIY-maskinvare keylogger - Opptaksmodus 2

Koble til hardware keylogger i stedet for tastaturet. Ikke koble til tastaturet.

Åpen kildekode DIY-maskinvare keylogger - Opptaksmodus 3

Klikk på tittellinjen KeyGrab for å gjøre den til den aktive applikasjonen.

Åpen kildekode DIY-maskinvare keylogger - Opptaksmodus 4

Trykk på knappen på maskinvare keylogger for å starte nedlasting av data. Ikke endre aktiv applikasjon under overføringen. Trykk på knappen igjen for å avslutte overføringen. Gjør dette når ønskede tastetrykkdata er lastet ned til PCen.

Åpen kildekode DIY-maskinvare keylogger - Opptaksmodus 5

Koble fra maskinvare-keyloggeren og koble tilbake ditt PS/2-tastatur.

Når du laster ned tastetrykksdata til hovedtabellen KeyGrab, blir den automatisk forbehandlet for å vise tastedata som ble logget under opptak. Data sendes i synkende rekkefølge for å vise nylig trykte taster først. Tastetrykk som skjedde for lenge siden, sendes senere. Du kan analysere tabellen manuelt eller bruke noen av søkealternativene.

Åpen kildekode DIY-maskinvare keylogger - Dataanalyse

1 - Posisjon i keylogger maskinvareminne brukt av tastaturhendelsen (hex form).
2 - Fanget og logget tastetrykk.
3 - Hendelse som fant sted - et tastetrykk eller -slipp.
4 - Tastetrykk skannkode på PS/2-bussen (hexadesimal form).
5 - Siste minneposisjon skrevet under opptak (hexadesimal form).
6 - Minnestørrelse for maskinvare keylogger (i kilobit).

Den eneste kolonnen som er av interesse for brukeren er Nøkkel (2) og Handling (3). Disse kolonnene koder hvilke taster som er trykket og sluppet. Scroll i feltet for å se tastetrykkhistorikken under opptak. Keylogger-data overføres i omvendt kronologisk rekkefølge (nyeste tastetrykkdata først).

Applikasjonen for henting og analyse av data fra DIY-maskinvare keylogger for Windows 9X/ME/2000/XP:
KeyGrab.zip (0.7MB)

Hele kildekoden for AT89C2051-mikrokontrolleren:
Kildekode - diy.asm

Den forhåndskompilerte AT89C2051 maskinvare keylogger-firmwareen er også tilgjengelig:
BIN-fil - diy.bin, HEX-fil - diy.hex

Åpen kildekode DIY-maskinvare keylogger - KeyGrab

Vi oppfordrer deg til å lese denne delen for å unngå problemer som kan oppstå ved bruk av maskinvare keylogger.

Juridisk ansvar

  1. Land har ulike lover om logging av tastaturdata. Å ikke kjenne loven betyr ikke at du ikke trenger å følge den. Vennligst les vår brukeravtale.
  2. Vi tar ikke ansvar for eventuelle skader eller skader forårsaket av bruken av denne maskinvare keyloggeren.
  3. Du bør ikke bruke denne enheten til å avlytte data du ikke har autorisasjon til å besitte, spesielt passord, bankdata, konfidensiell korrespondanse osv. De fleste land anser dette som en kriminell handling.

Nøkkeldatalogging

  1. Hardware keyloggeren har 64 kB med ikke-flyktig EEPROM-minne. Når dette minnet er fullt, vil skrivingen starte på nytt fra den første minnelokasjonen. De eldste dataene vil gå tapt.
  2. De første 128 byte av minnet er reservert for konfigurasjonsdata, som å lagre den siste minnetilgangsadressen. Den siste minnetilgangsadressen oppdateres omtrent hvert 10. sekund.
  3. Ikke la den fysiske keyloggeren være tilkoblet i opptaksmodus når det ikke er nødvendig. Dette vil bruke minnet og forårsake at gamle, noen ganger viktige, data blir overskrevet.

Viktig dataoverføring

  1. For å hente tastetrykkdata trenger du minst en 100 MHz Pentium-klasse datamaskin med Windows 9X/Me/XP/2000 installert.
  2. Maskinvare-keyloggeren sender data tilbake til datamaskinen ved å simulere tastaturet. Det virkelige tastaturet må være frakoblet under overføringen.
  3. Den aktive applikasjonen må være KeyGrab. I alle andre tilfeller vil enten Windows eller en annen applikasjon begynne å tolke de simulerte tastetrykkene som kommer fra hardware keyloggeren.
  4. Tastetrykksdata hentes i omvendt kronologisk rekkefølge. Dette gjøres for å gi nylig data først. Du må vente en stund for å få veldig gamle tastaturdata. Hele overføringsprosessen kan vare opptil 20 minutter.
  5. Overføringen må avsluttes manuelt ved å trykke på trykknappen igjen. Gjør dette når tastetrykkdata begynner å bli duplisert.

Tastaturfunksjon for PS/2

  1. PS/2-tastaturet er litt mer komplisert enn du kanskje tror. Du kan legge merke til dette ved å analysere rådata logget av maskinvare keyloggeren. PC-tastaturet genererer én tegn hver gang en tast trykkes ned. Når tasten slippes, genereres tegnet på nytt med en foranstående 240 (F0 hex) tegn. Det er også utvidede taster som bruker 224 (E0 hex) tegnet. Du kan lese mer om dette i den korte protokollen for PS/2-tastaturet.
  2. Selv om hardware keyloggeren har 64 kB minne, betyr ikke dette at 64 tusen tastetrykk kan huskes. En tastetrykk-frigjør-sekvens krever 3 byte for en standardtast og 5 byte for en utvidet tast. Logging har blitt optimalisert i kommersielle versjoner.

Bakgrunn

Åpen kildekode DIY-maskinvare keylogger - PS/2 signallinjer

Dersom du skulle klippe over en PS/2 tastaturkabel, ville du sannsynligvis finne 6 ledninger inni. Kun 4 av disse er meningsfulle. To av disse er strømlinjer: jord (GND) og +5 volt (VCC) fra datamaskinens strømforsyning. De andre to ledningene er asynkrone overføringslinjer: data linjen (DATA) og klokkelinjen (CLK). Du kan se hvordan disse linjene samsvarer med DIN (a) og miniDIN (b) kontaktpinner på figuren til høyre. Overføringen er toveis, men tastaturet er overlegent. Tastaturet sender informasjon om taster som er trykket ned og sluppet. Dataen består av kun én byte, foranledet av en startbit, og etterfulgt av en paritets- og stoppbit. Tastaturet legger påfølgende biter på DATA linjen, og klokker dem med negative impulser på CLK linjen. Klokkefrekvensen er 10...30 kHz. Dette ville vært en veldig fin serieprotokoll hvis det ikke var for datamaskinen, som av og til ønsker å sende informasjon til tastaturet. I slike tilfeller trekker PCen CLK linjen lav i en periode og venter på at tastaturet skal begynne å generere impulser. Når disse impulsene starter, klokker den sin egen karakter inn på DATA linjen. Du kan se tilstandsdiagrammer for tastatur til vert (a) og vert til tastatur (b) overføring på figuren under. Denne protokollen har selvfølgelig noen unntak, som avbrytelse av en overføring, tegngjentakelse osv. Disse tilfellene er imidlertid svært sjeldne.

Åpen kildekode DIY-maskinvare keylogger - bølgeformer

Bussdata

Så hva blir faktisk overført gjennom tastaturlinjene? Ved oppstart sender både tastaturet og datamaskinen initialiseringsdata, som informerer om at de er OK. Når datamaskinen kjører normalt, sender bare tastaturet data. Dette er data om hvert eneste hendelse som har funnet sted. En hendelse anses som en tast som blir trykket ned eller sluppet. Hvis en standardtast blir trykket ned, sendes dens såkalte "scancode". Hver tast har nøyaktig én scancode, og dette danner et kart over scancodes. Hvis en tast slippes, sendes først den spesielle byte 240 (F0 hex), etterfulgt av tastens scancode. Så en standardtastetrykk forårsaker at 3 tegn sendes gjennom linjen. Hvis en tast holdes nede en stund, vil dens scancode genereres kontinuerlig med den angitte repetisjonsforsinkelsen. Når den til slutt slippes, vil tegnet 240 (F0 hex) bli sendt, etterfulgt av scancoden. Dette ville fortsatt vært et fint protokoll hvis det ikke var for noen spesielle taster som finnes på standard PC-tastaturet, som Hjem, Slutt, pilene, osv. Når en spesiell tast trykkes, genereres byte 224 (E0 heksadesimal), etterfulgt av skannkoden. Når en spesiell tast slippes, utløses sekvensen 224, 240 (E0, F0), etterfulgt av skannkoden. Normale og spesielle taster er felles for alle nasjonale tastaturlayouter med hensyn til kartet over skannkoder. For å gjøre historien litt mer komplisert, finnes det to super-spesielle taster, Skriv ut Skjerm og Pause, som forårsaker en hel sekvens av skannkoder som skal sendes. For en tastaturgrensesnitt er det best å late som om disse tastene ikke eksisterer.

Datalogging

Mikrokontrolleren overvåker DATA- og CLK-linjene hele tiden, og samler inn all data. Data logges til ikke-flyktig EEPROM-minne mens den går langs linjen. På grunn av dette kan brukeren senere finne ut om hver hendelse på tastaturet. Når brukeren bestemmer at opptaket er over og trykker på knappen, bytter maskinvarenøkkelloggeren til avspillingsmodus. Tastaturet bør være frakoblet, ellers vil det tolke datastrømmen. Keyloggeren begynner å simulere tastedata fra intern maskinvareminne. Applikasjonen KeyGrab må være aktiv for å behandle datastrømmen fra keylogger-maskinvaren. Normale taster simuleres som om de var skrevet i minnet, og spesielle taster sendes ved hjelp av en tobyte heksadesimal kode.