Keelog on päättänyt julkaista varhaisen version laiteavainlokeroperheestään julkiseen käyttöön, mukaan lukien täydellinen ohjelmisto- ja laitelähdekoodi, avainlokerolaitteiston sähkökaaviot ja dokumentaatio. Tämä PS/2 avainlokerointilaite on 100 % toimiva ja testattu laite, jota on koottu ja käytetty satojen ihmisten toimesta ympäri maailmaa. Tämän laiteavainlokeron toiminta on samankaltainen kuin KeyGrabber PS/2. Tarjoamme sovelluksen KeyGrab tallennettujen näppäinpainallustietojen noutamiseen ja analysointiin. Huomioithan kuitenkin, että tämä tee-se-itse laiteavainlokeroprojekti toimitetaan sellaisenaan, kaikkine virheineen, eikä siinä ole mitään takuuta.

Avoin lähdekoodi DIY-laitteisto keylogger

Ennen kuin aloitat, käy läpi tämä lista varmistaaksesi, että sinulla on kaikki tarvittavat työkalut ja taidot tämän hardware keylogger -projektin suorittamiseen:

  • kokemusta elektroniikan laitteistoista
  • juotoskolvi
  • mikro-ohjelmointilaite (joka tukee Atmel AT89CXX51-perhettä)
Avoin lähdekoodi DIY-laitteisto keylogger - komponentit

Seuraavat komponentit tarvitaan hardware keylogger -projektiin:

  • Atmel AT89C2051 mikro-ohjain (tai AT89C1051, AT89C4051)
  • Sarjaportti EEPROM-siru AT24C512 (tai yhteensopiva)
  • 12 MHz kiteinen
  • Kondensaattori 2 x 33p
  • 10 µF kondensaattori
  • 10 kΩ vastus
  • pieni painike
Avoin lähdekoodi DIY-laitteisto keylogger - PS/2 kaapeli

Lopuksi laitteiston näppäinlokero vaatii kotelon. Hyvä idea on ostaa PS/2-jatkojohto ja 4 tuuman palan kutistettavaa putkea, joka voidaan lämpöisesti kietoa valmiin näppäinlokeron ympärille.

Ohjelmoi ensin keylogger-mikro-ohjaimen ohjelmisto. Käynnistä ohjelmoijasovellus, valitse AT89C2051 ja polta flash-muistiin binäärinen tiedosto tai heksaversio. Voit myös kääntää lähdekoodin uudelleen käyttäen lähdekoodia ja 8051-kääntäjää. Juottaminen on todennäköisesti projektin vaikein osa, koska keylogger-laitteiston tulisi olla mahdollisimman pieni. Alla olevat keylogger-laitteiston kaaviot näyttävät, miten komponenttien väliset yhteydet tulisi tehdä.

Avoin lähdekoodi DIY-laitteisto keylogger - kokemusta elektroniikan laitteistoista

Juota komponentit yhteen aloittaen mikro-ohjaimesta ja EEPROM:sta. Käyttämättömät IC-pinnit voidaan poistaa. Varmista, että painike on saavutettavissa. Kun asennat kondensaattorin, varmista, että se on oikein polarisoitu.

Avoin lähdekoodi DIY-laitteisto keylogger - juottaminen

Tee hardware keyloggerista mahdollisimman kompakti, mutta vältä oikosulkuja. Niitä on vaikea poistaa laitteen valmistumisen jälkeen. Keylogger-piirin tulisi näyttää jossain määrin prototyypiltä, joka on esitetty kuvassa, kun tärkeimmät komponentit on liitetty.

Avoin lähdekoodi DIY-laitteisto keylogger - liittimet

Lopuksi juota PS/2-liittimet keyloggeriin. Hyvä idea on leikata PS/2-jatkojohto kahteen osaan ja juottaa kumpikin osa erikseen. Varmista, että laitat lämpösupistusputken yhden kaapelin osan päälle. Yhdistä kaikki neljä käytettyä PS/2-nastaa (CLK, DATA, VCC ja GND) molempiin liittimiin (näppäimistössä ja tietokoneessa).

Avoin lähdekoodi DIY-laitteisto keylogger

Ennen kuin vedät lämpöputken laitteiston keyloggerin ympärille, on hyvä idea antaa liiman tai hartsin mennä komponenttien väliin, jotta laite olisi jäykempi. Vedä lopuksi lämpöputki päälle, lämmitä se kunnes se kietoutuu juotettujen komponenttien ympärille, ja leikkaa pieni reikä, jotta painike on saavutettavissa.

Laitteisto keylogger alkaa tallentaa näppäintietoja heti, kun se on kytketty näppäimistön ja tietokoneen väliin. Keylogger on täysin läpinäkyvä tietokoneen toiminnalle eikä sitä voi havaita ohjelmistossa tallennustilassa. Kaikki näppäimistön lähettämät näppäintiedot tallennetaan 64 kB laitteiston epämuistuttavaan EEPROM-muistiin. Tallennustila on täysin riippumaton tietokoneelle asennetusta käyttöjärjestelmästä.

Avoin lähdekoodi DIY-laitteisto keylogger - asennus 1

Etsi PS/2-liitin tietokoneesta.

Avoin lähdekoodi DIY-laitteisto keylogger - asennus 2

Irrota näppäimistö.

Avoin lähdekoodi DIY-laitteisto keylogger - asennus 3

Liitä hardware keylogger näppäimistön tilalle.

Avoin lähdekoodi DIY-laitteisto keylogger - asennus 4

Yhdistä näppäimistö keyloggeriin. Tietojen tallennus alkaa tietokoneen käynnistyessä.

Kun hardware keylogger on tallentanut näppäintietoja, ne voidaan noutaa mille tahansa Windows 9X/Me/XP/2000 -käyttöjärjestelmää käyttävälle tietokoneelle. Hardware keylogger tekee tämän simuloimalla näppäimistön painalluksia. Lähetetyt näppäintiedot noudetaan KeyGrab-sovelluksella. Kun nämä tiedot on lähetetty tietokoneelle, ne voidaan käsitellä ja analysoida. Noudata ohjeita datan lataamiseksi.

Avoin lähdekoodi DIY-laitteisto keylogger - Tallennustila 1

Suorita KeyGrab-sovellus.

Avoin lähdekoodi DIY-laitteisto keylogger - Tallennustila 2

Liitä hardware keylogger näppäimistön sijaan. Älä liitä näppäimistöä.

Avoin lähdekoodi DIY-laitteisto keylogger - Tallennustila 3

Napsauta KeyGrab -otsikkoriviä tehdäksesi siitä aktiivisen sovelluksen.

Avoin lähdekoodi DIY-laitteisto keylogger - Tallennustila 4

Paina laitteen keylogger-painiketta aloittaaksesi tietojen lataamisen. Älä vaihda aktiivista sovellusta siirron aikana. Paina painiketta uudelleen lopettaaksesi siirron. Tee tämä, kun halutut näppäilytiedot on ladattu tietokoneelle.

Avoin lähdekoodi DIY-laitteisto keylogger - Tallennustila 5

Irrota laitteistopohjainen näppäinlukija ja kytke PS/2-näppäimistö takaisin.

Kun lataat näppäilytiedot päätaulukkoon KeyGrab, ne käsitellään automaattisesti näyttämään näppäintiedot, jotka on kirjattu tallennuksen aikana. Data siirretään laskevaan järjestykseen, jotta viimeksi painetut näppäimet näytetään ensin. Kauan sitten tapahtuneet näppäilyt siirretään myöhemmin. Voit analysoida taulukkoa manuaalisesti tai käyttää joitain hakuvaihtoehtoja.

Avoin lähdekoodi DIY-laitteisto keylogger - Tietojen analysointi

1 - Näppäimistötapahtuman käyttämä sijainti keylogger-laitteiston muistissa (heksamuodossa).
2 - Napautetut ja kirjatut näppäimet.
3 - Tapahtuma, joka tapahtui - näppäimen painallus tai vapautus.
4 - Näppäinpainalluksen skannauskoodi PS/2-väylällä (heksamuodossa).
5 - Viimeinen muistipaikka kirjoitettu tallennuksen aikana (heksamuodossa).
6 - Keylogger-laitteiston muistikoko (kilobiteissä).

Ainoa sarakke, joka kiinnostaa käyttäjää, on Avain (2) ja Toiminto (3). Nämä sarakkeet koodaavat, mitkä näppäimet on painettu ja vapautettu. Selaa palkkia nähdäksesi näppäinhistorian tallennuksen aikana. Keylogger-tiedot välitetään käänteisessä kronologisessa järjestyksessä (viimeisimmät näppäintiedot ensin).

DIY-laitteiston näppäinlokero datan haku- ja analysointisovellus Windows 9X/ME/2000/XP:lle:
KeyGrab.zip (0.7MB)

Koko lähdekoodi AT89C2051-mikro-ohjaimelle:
Lähdekoodi - diy.asm

Valmiiksi käännetyt AT89C2051 laitteiston keylogger-firmwaret ovat myös saatavilla:
BIN-tiedosto - diy.bin, HEX-tiedosto - diy.hex

Avoin lähdekoodi DIY-laitteisto keylogger - KeyGrab

Suosittelemme lukemaan tämän osion välttääksesi ongelmia, jotka saattavat ilmetä laitteiston keyloggerin käytössä.

Oikeudellinen vastuu

  1. Mailla on erilaisia lakeja näppäintietojen kirjaamisesta. Lain tuntemattomuus ei vapauta sinua noudattamasta sitä. Lue lisää käyttäjäsopimuksestamme.
  2. Emme ota vastuuta mahdollisista vahingoista tai vahingoista, jotka aiheutuvat tämän laitteiston näppäinlukijan käytöstä.
  3. Et saa käyttää tätä laitetta tietojen urkintaan, joihin sinulla ei ole oikeutta omistaa, erityisesti salasanoja, pankkitietoja, luottamuksellista kirjeenvaihtoa jne. Useimmat maat pitävät tätä rikoksena.

Avaindatan kirjaaminen

  1. Laitteistoon asennettu keyloggerilla on 64 kB ei-volaattista EEPROM-muistia. Kun tämä muisti on täynnä, kirjoitus alkaa uudelleen ensimmäisestä muistipaikasta. Vanhin data menetetään.
  2. Ensimmäiset 128 tavua muistista on varattu konfiguraatiodatalle, kuten viimeisimmän muistin käyttöosoitteen tallentamiselle. Viimeisin muistin käyttöosoite päivitetään noin joka 10. sekunti.
  3. Älä jätä laitteistopohjaista näppäinlokeria kytkettynä tallennustilaan tarpeettomasti. Tämä käyttää muistia ja aiheuttaa vanhojen, joskus tärkeiden, tietojen ylikirjoittumisen.

Avaindatasiirto

  1. Näppäintietojen noutamiseen tarvitset vähintään 100 MHz Pentium-luokan tietokoneen, jossa on asennettuna Windows 9X/Me/XP/2000.
  2. Laitteisto keylogger lähettää tiedot takaisin tietokoneelle simuloimalla näppäimistöä. Todellinen näppäimistö on irrotettava siirron aikana.
  3. Aktiivisen sovelluksen on oltava KeyGrab. Muissa tapauksissa joko Windows tai jokin toinen sovellus alkaa tulkitsemaan laitteiston näppäinlokerolta tulevia simuloituja näppäinpainalluksia.
  4. Näppäintietoja haetaan käänteisessä kronologisessa järjestyksessä. Tämä tehdään tarjotaksemme ensin viimeisimmät tiedot. Sinun on odotettava hetki saadaksesi hyvin vanhoja näppäintietoja. Koko siirto- ja välitysprosessi voi kestää jopa 20 minuuttia.
  5. Siirto on lopetettava manuaalisesti painamalla painiketta uudelleen. Tee näin, kun näppäilytiedot alkavat kahdentua.

PS/2 näppäimistön käyttö

  1. PS/2-näppäimistö on hieman monimutkaisempi kuin saattaisit ajatella. Voit huomata tämän analysoimalla laitteiston keyloggerin tallentamia raakoja tietoja. PC-näppäimistö generoi yhden merkin joka kerta kun näppäintä painetaan. Kun näppäin vapautetaan, merkki generoidaan uudelleen edeltävänä 240 (F0 hex) merkkinä. On myös laajennettuja näppäimiä, jotka käyttävät 224 (E0 hex) merkkiä. Voit lukea tästä lisää lyhyestä PS/2-näppäimistön protokollasta.
  2. Vaikka laitteistokeyloggerissa on 64 kB muistia, tämä ei tarkoita, että 64 tuhatta näppäinpainallusta voidaan muistaa. Yhden näppäimen painallus-vapautus-sekvenssi vaatii 3 tavua standardinäppäimelle ja 5 tavua laajennetulle näppäimelle. Lokitus on optimoitu kaupallisissa versioissa.

Tausta

Avoin lähdekoodi DIY-laitteisto keylogger - PS/2 signaalilinjat

Jos leikkaisit PS/2-näppäimistön kaapelin poikki, löytäisit todennäköisesti 6 johtoa sisältä. Näistä vain 4 on merkityksellisiä. Kaksi näistä on virtajohtoja: maadoitus (GND) ja +5 volttia (VCC) tietokoneen virtalähteestä. Muut kaksi johtoa ovat asynkronisia siirtolinjoja: datajohto (DATA) ja kellojohto (CLK). Voit nähdä, miten nämä linjat vastaavat DIN (a) ja miniDIN (b) -liittimen nastoja oikealla olevassa kuvassa. Siirto on kaksisuuntainen, mutta näppäimistö on etusijalla. Näppäimistö lähettää tietoa painetuista ja vapautetuista näppäimistä. Tietopaketti koostuu vain yhdestä tavusta, jota edeltää aloitusbitti ja seuraa pariteetti- ja lopetusbitti. Näppäimistö asettaa peräkkäiset bitit DATA-linjalle ja kelloo niitä negatiivisilla impulsseilla CLK-linjalle. Kellotaajuus on 10...30 kHz. Tämä olisi erittäin hyvä sarjaprotokolla, ellei tietokone haluaisi ajoittain lähettää tietoa näppäimistölle. Tällaisissa tapauksissa tietokone vetää CLK-linjan alas jonkin aikaa ja odottaa näppäimistön alkavan generoida impulsseja. Kun nämä impulssit alkavat, se kelloo oman merkkinsä DATA-linjalle. Voit nähdä näppäimistön ja isäntä (a) sekä isäntä ja näppäimistö (b) -siirron tilakaaviot alla olevassa kuvassa. Tällä protokollalla on tietysti muutamia poikkeuksia, kuten siirron keskeyttäminen, merkin toisto jne. Nämä tapaukset ovat kuitenkin hyvin harvinaisia.

Avoin lähdekoodi DIY-laitteisto keylogger - aaltomuodot

Bussitiedot

Mitä näppäimistön rivien läpi oikeastaan välitetään? Käynnistyksen yhteydessä sekä näppäimistö että tietokone lähettävät alustustietoja, ilmoittaen olevansa kunnossa. Kun tietokone toimii normaalisti, vain näppäimistö lähettää tietoa. Tämä tieto koskee jokaista tapahtumaa, joka on tapahtunut. Tapahtumana pidetään näppäimen painamista tai vapauttamista. Jos painetaan tavallinen näppäin, sen niin kutsuttu "skannauskoodi" lähetetään. Jokaisella näppäimellä on tarkalleen yksi skannauskoodi, luoden skannauskoodien kartan. Jos näppäintä vapautetaan, ensin lähetetään erityinen tavu 240 (F0 heksadesimaalissa), jonka jälkeen näppäimen skannauskoodi lähetetään. Joten tavallinen näppäinpainallus aiheuttaa 3 merkin lähettämisen linjan läpi. Jos näppäintä pidetään painettuna jonkin aikaa, sen skannauskoodi generoidaan jatkuvasti asetetulla toiston viiveellä. Kun se lopulta vapautetaan, 240 (F0 heksadesimaalissa) merkki lähetetään, minkä jälkeen skannauskoodi seuraa. Tämä olisi edelleen hieno protokolla, ellei standardin PC-näppäimistössä olisi joitakin erikoisnäppäimiä, kuten Home, End, nuolet jne. Kun erikoisnäppäintä painetaan, syntyy tavu 224 (E0 heksadesimaalina), jonka jälkeen tulee näppäinkoodi. Kun erikoisnäppäin vapautetaan, laukaistaan sekvenssi 224, 240 (E0, F0), jonka jälkeen tulee näppäinkoodi. Normaalit ja erikoisnäppäimet ovat yleisiä kaikissa kansallisissa näppäimistöasetteluissa suhteessa näppäinkoodien karttaan. Tarinan hieman monimutkaistamiseksi on olemassa kaksi erityisen erikoisnäppäintä, Print Screen ja Pause, jotka aiheuttavat koko joukon näppäinkoodien lähettämisen. Näppäimistön liitäjän kannalta on parasta olettaa, että nämä näppäimet eivät ole olemassa.

Tietojen kirjaaminen

Mikro-ohjain valvoo jatkuvasti DATA- ja CLK-linjoja, keräten kaiken datan. Data kirjataan ei-volaatiliseen EEPROM-muistiin matkallaan linjaa pitkin. Tämän ansiosta käyttäjä voi myöhemmin selvittää jokaisesta näppäimistön tapahtumasta. Kun käyttäjä päättää, että tallennus on ohi ja painaa painiketta, laitteiston näppäinlokero vaihtaa toistotilaan. Näppäimistö on irrotettava, muuten se tulkitsee tietovirran. Näppäinlokero alkaa simuloida näppäintietoja sisäisestä laitteiston muistista. KeyGrab-sovelluksen on oltava aktiivinen käsitelläkseen näppäinlokero-laitteiston tietovirtaa. Normaalit näppäimet simuloidaan kuin ne olisi kirjoitettu muistiin, ja erikoisnäppäimet lähetetään kaksitavuisella heksakoodilla.