Keelog úgy döntött, hogy korai verziót ad ki hardver keylogger családjából a nyilvánosság számára, beleértve a teljes firmware & szoftver forráskódját, a keylogger hardver elektromos sémáit és dokumentációt. Ez a PS/2 key logger egy 100%-ban működő és tesztelt eszköz, amelyet világszerte százak szereltek össze és használtak. Ennek a hardver key loggernek a működése hasonló a KeyGrabber PS/2-hoz. Biztosítjuk az alkalmazást KeyGrab a rögzített billentyűleütéses adatok visszakereséséhez és elemzéséhez. Azonban vegye figyelembe, hogy ez a DIY hardver keylogger projekt ahogy van kerül nyújtásra, minden hibával, és nincs semmiféle garancia.

Nyílt forráskódú DIY hardver keylogger

Mielőtt elkezdené, menjen végig ezen a listán, hogy ellenőrizze, rendelkezik-e az összes szükséges eszközzel és készséggel a hardware keylogger projekt végrehajtásához:

  • tapasztalat elektronikai hardver területén
  • egy forrasztópáka
  • egy mikrovezérlő programozó (amely támogatja az Atmel AT89CXX51 családot)
Nyílt forráskódú DIY hardver keylogger - alkatrészek

A hardware keylogger projekthez szükséges alkatrészek a következők:

  • Atmel AT89C2051 mikrovezérlő (vagy AT89C1051, AT89C4051)
  • Soros EEPROM chip AT24C512 (vagy kompatibilis)
  • 12 MHz kristály
  • Kondenzátor 2 x 33p
  • 10 µF kondenzátor
  • 10 kΩ ellenállás
  • kis nyomógomb
Nyílt forráskódú DIY hardver keylogger - PS/2 kábel

Végül, a hardver keylogger tokja szükséges. Egy jó ötlet egy PS/2 hosszabbító kábel és egy 4 hüvelykes hőzsugorító cső megvásárlása, amelyet hővel körbetekerhet a kész keylogger körül.

Először programozza a keylogger mikrovezérlő firmware-jét. Indítsa el a programozó szoftvert, válassza ki az AT89C2051-et, és égesse be a flash memóriát a bináris fájl vagy a hex verzió segítségével. A forráskódot is újrafordíthatja az forráskód és egy 8051 fordító használatával. A forrasztás valószínűleg a projekt legnehezebb része, mivel a keylogger hardverét a lehető legkisebbre kell készíteni. Az alábbi keylogger hardveres séma mutatja, hogyan kell kapcsolatot létesíteni az alkatrészek között.

Nyílt forráskódú DIY hardver keylogger - tapasztalat elektronikai hardver területén

Forraszd össze az alkatrészeket a mikrovezérlőtől és az EEPROM-tól kezdve. A nem használt IC lábak eltávolíthatók. Győződjön meg róla, hogy a nyomógomb elérhető. Amikor a kondenzátort szereli, győződjön meg róla, hogy helyesen van polarizálva.

Nyílt forráskódú DIY hardver keylogger - forrasztás

Készítse el a hardware keyloggert lehetőleg minél kompaktabban, de kerülje a rövidzárlatokat. Ezeket nehéz lesz eltávolítani a készülék befejezése után. A keylogger áramkörének valamennyire hasonlítania kell a fotón látható prototípusra, miután a fő komponensek össze vannak kötve.

Nyílt forráskódú DIY hardver keylogger - csatlakozók

Végül forraszd össze a PS/2 csatlakozókat a keyloggerrel. Jó ötlet a PS/2 hosszabbító kábelt két részre vágni, majd mindegyiket külön forrasztani. Győződj meg róla, hogy a kábel egyik részére felhelyezed a hőzsugorító csövet. Csatlakoztasd az összes négy használt PS/2 pin-t (CLK, DATA, VCC és GND) mindkét csatlakozón (a billentyűzeten és a számítógépen).

Nyílt forráskódú DIY hardver keylogger

Mielőtt a hőcsövet a hardver keylogger köré húznád, jó ötlet némi ragasztót vagy gyantát engedni a komponensek közé, hogy az eszköz merevebb legyen. Végül húzd fel a hőcsövet, melegítsd fel, amíg körbeöleli a forrasztott komponenseket, majd vágj ki egy kis lyukat, hogy a gomb elérhető legyen.

A hardver keylogger azonnal elkezdi rögzíteni a billentyűadatokat, amint a billentyűzet és a számítógép közé van dugva. A keylogger teljesen átlátható a számítógép működése szempontjából, és nem észlelhető a szoftver által rögzítési módban. Az összes billentyűzet által küldött adatot 64 kB hardver nem-volatile EEPROM memóriába rögzíti. A rögzítési mód teljesen független a számítógépen telepített operációs rendszertől.

Nyílt forráskódú DIY hardver keylogger - telepítés 1

Keresse meg a(z) PS/2 csatlakozót a számítógépen.

Nyílt forráskódú DIY hardver keylogger - telepítés 2

Csatlakoztassa le a billentyűzetet.

Nyílt forráskódú DIY hardver keylogger - telepítés 3

Csatlakoztassa a hardver keyloggert a billentyűzet helyett.

Nyílt forráskódú DIY hardver keylogger - telepítés 4

Csatlakoztassa a billentyűzetet a keyloggerhez. A számítógép bekapcsolásakor az adatok rögzítése megkezdődik.

Amint a hardver keylogger rögzítette a billentyűadatokat, azokat bármely Windows 9X/Me/XP/2000 rendszerű PC-re vissza lehet állítani. A hardver keylogger ezt azzal teszi, hogy szimulálja a billentyűzet leütéseit. A továbbított billentyűadatokat a KeyGrab alkalmazás szerez meg. Amint ezek az adatok átkerültek a számítógépre, feldolgozhatók és elemzésre kerülhetnek. Kövesse az utasításokat az adatletöltés indításához.

Nyílt forráskódú DIY hardver keylogger - Felvételi mód 1

Indítsa el a KeyGrab alkalmazást.

Nyílt forráskódú DIY hardver keylogger - Felvételi mód 2

Csatlakoztassa a hardver keyloggert a billentyűzethez. Ne csatlakoztassa a billentyűzetet.

Nyílt forráskódú DIY hardver keylogger - Felvételi mód 3

Kattintson a KeyGrab cím sávra, hogy az aktív alkalmazássá váljon.

Nyílt forráskódú DIY hardver keylogger - Felvételi mód 4

Nyomja meg a gombot a hardver keyloggeren az adatletöltés indításához. Ne változtassa meg az aktív alkalmazást a továbbítás közben. Nyomja meg újra a gombot a továbbítás befejezéséhez. Ezt tegye meg, amikor a kívánt billentyűleütési adatok letöltődtek a számítógépre.

Nyílt forráskódú DIY hardver keylogger - Felvételi mód 5

Csatlakoztassa le a hardver keyloggert, és csatlakoztassa vissza a(z) PS/2 billentyűzetét.

Amikor a billentyűleütési adatokat letölti a fő táblázatba KeyGrab, azok automatikusan előfeldolgozódnak annak érdekében, hogy a rögzítés közben naplózott billentyűadatokat jelenítse meg. Az adatok csökkenő sorrendben kerülnek átvitelre, hogy a legutóbb lenyomott billentyűket először mutassa. A régen történt billentyűleütéseket később továbbítják. A táblázatot kézi módon is elemezheti, vagy használhatja a keresési lehetőségek egy részét.

Nyílt forráskódú DIY hardver keylogger - Adatelemzés

1 - Az a pozíció a keylogger hardver memóriájában, amelyet a billentyűzetes esemény használ (hexa formában).
2 - Rögzített és naplózott billentyűleütés.
3 - Esemény, amely megtörtént - egy billentyű lenyomása vagy felengedése.
4 - Billentyűleütés szkennelési kódja a(z) PS/2 buszon (hexa formában).
5 - Az utolsó memóriapozíció, amelyet rögzítés közben írtak (hexa formában).
6 - Keylogger hardver memóriamérete (kilobitben).

Az egyetlen oszlop, amely érdekes lehet a felhasználó számára, a Kulcs (2) és a Művelet (3). Ezek az oszlopok kódolják, hogy mely billentyűket nyomták le és engedték fel. Görgesse végig az eszközt az ütéselőzmények megtekintéséhez az rögzítés közben. A keylogger-adatok fordított időrendi sorrendben kerülnek átvitelre (a legutóbbi billentyűleütési adatok először).

Az adatok visszanyerésére és elemzésére szolgáló alkalmazás a DIY hardver keyloggerhez Windows 9X/ME/2000/XP-hez:
KeyGrab.zip (0.7MB)

A teljes forráskód az AT89C2051 mikrovezérlőhöz:
Forráskód - diy.asm

A előre lefordított AT89C2051 hardver keylogger firmware is elérhető:
BIN fájl - diy.bin, HEX fájl - diy.hex

Nyílt forráskódú DIY hardver keylogger - KeyGrab

Arra ösztönözzük, hogy olvassa el ezt a szakaszt annak érdekében, hogy elkerülje az esetleges problémákat a hardver keylogger használata során.

Jogi felelősség

  1. Az országoknak különböző törvényeik vannak a billentyűzetadatok naplózásáról. A törvény ismerete nem mentesít az engedelmesség alól. Kérjük, olvassa el felhasználói szerződésünket.
  2. Nem vállalunk felelősséget semmilyen kárért vagy kárért, amelyet ennek a hardver keyloggernek a használata okoz.
  3. Ne használja ezt az eszközt olyan adatok lehallgatására, amelyekhez nincs jogosultsága, különösen jelszavak, banki adatok, bizalmas levelezés stb. A legtöbb ország bűncselekményként ismeri fel ezt.

Kulcsadat-nyilvántartás

  1. A hardver keyloggernek 64 kB nem-volatil EEPROM memóriája van. Amikor ez a memória tele lesz, az írás az első memórialokációról kezdődik újra. A legrégebbi adatok elvesznek.
  2. A memória első 128 bájtja konfigurációs adatoknak van fenntartva, például az utolsó memória hozzáférési cím mentésére. Az utolsó memória hozzáférési címet körülbelül minden 10 másodpercben frissítik.
  3. Ne hagyja a hardver keyloggert csatlakoztatva rögzítési módban, amikor nem szükséges. Ez memóriát fog használni és régi, néha fontos adatok felülírását okozza.

Kulcsfontosságú adatátvitel

  1. A billentyűleütési adatok lekéréséhez legalább egy 100 MHz Pentium osztályú számítógépre van szükség Windows 9X/Me/XP/2000 telepítéssel.
  2. A hardver keylogger visszaküldi az adatokat a számítógépre a billentyűzet szimulálásával. Az igazi billentyűzetnek le kell szakítania a kapcsolatot a továbbítás során.
  3. Az aktív alkalmazásnak a KeyGrab-nak kell lennie. Egyéb esetben vagy a Windows, vagy egy másik alkalmazás fogja értelmezni a hardver keylogger által érkező szimulált billentyűleütéseket.
  4. Az ütésadatok visszafelé kronológiai sorrendben kerülnek visszakeresésre. Ez azért történik, hogy először a legfrissebb adatokat szolgáltassuk. Várnia kell egy kicsit, hogy nagyon régi billentyűzetadatokat kapjon. Az egész átviteli folyamat akár 20 percig is eltarthat.
  5. A továbbítást kézzel kell leállítani újra megnyomva a nyomógombot. Ezt tegye meg, amikor a billentyűleütési adatok kezdenek megkettőződni.

PS/2 billentyűzet használata

  1. A(z) PS/2 billentyűzet kicsit bonyolultabb, mint gondolnád. Ezt észreveheted, ha elemzed a hardver keylogger által naplózott nyers adatokat. A PC billentyűzet minden egyes billentyű lenyomásakor egy karaktert generál. Amikor a billentyűt felengeded, a karakter ismét előáll, egy előző 240-es (F0 hexadecimális) karakterrel. Vannak kiterjesztett billentyűk is, amelyek a 224-es (E0 hexadecimális) karaktert használják. Erről bővebben olvashatsz a rövid PS/2 billentyűzet protokollban.
  2. Bár a hardver keyloggernek 64 kB memóriája van, ez nem jelenti azt, hogy 64 ezer billentyűleütés tárolható. Egy billentyű lenyomás-felengedési sorozat 3 bájtot igényel egy standard billentyűhöz és 5 bájtot egy kiterjesztett billentyűhöz. A naplózás optimalizálva lett a kereskedelmi verziókban.

Háttér

Nyílt forráskódú DIY hardver keylogger - PS/2 jelvezetékek

Ha átvágnád a PS/2 billentyűzet kábelt, valószínűleg 6 vezetéket találnál benne. Ezek közül csak 4 értelmes. Két vezeték a tápellátás: a földelés (GND) és a +5 voltos (VCC) a számítógép tápegységéből. A másik két vezeték aszinkron átviteli vonalak: az adatvonal (DATA) és az órajelet (CLK). Láthatod, hogy ezek a vonalak hogyan felelnek meg a DIN (a) és miniDIN (b) csatlakozó tüskéinek a jobb oldalon látható ábrán. Az átvitel kétirányú, azonban a billentyűzet kiváló. A billentyűzet információt küld azokról a billentyűkről, amelyeket lenyomtak és felengedtek. Az adatblokk csak egy bájtból áll, amelyet egy kezdő bit előz meg, és egy párosító és stop bit követ. A billentyűzet egymás után helyezi a biteket a DATA vonalra, és negatív impulzusokkal órázza azokat a CLK vonalon. Az órajel frekvenciája 10...30 kHz. Ez egy nagyon szép soros protokoll lenne, ha nem lenne a számítógép, amely időnként információt akar küldeni a billentyűzetre. Ilyen esetekben a számítógép alacsonyra húzza a CLK vonalat egy ideig, és várja, hogy a billentyűzet elkezdjen impulzusokat generálni. Amikor ezek az impulzusok elindulnak, a számítógép saját karakterét órázza be a DATA vonalon. A billentyűzet és a gép közötti (a) és a gép és a billentyűzet közötti (b) átvitel állapotdiagramjait láthatod az alábbi ábrán. Ez a protokoll természetesen néhány kivételt tartalmaz, például az átvitel megszakítása, karakter ismétlés stb. Azonban ezek nagyon ritka esetek.

Nyílt forráskódú DIY hardver keylogger - hullámformák

Busz adatok

Tehát mi is ténylegesen kerül átvitelre a billentyűzet sorokon keresztül? Indításkor mind a billentyűzet, mind a számítógép inicializálási adatokat küld, jelezve, hogy rendben vannak. Amikor a számítógép normálisan működik, csak a billentyűzet küld adatokat. Ezek az eseményekről szóló adatok, minden olyan eseményről, ami történt. Eseménynek számít, ha egy billentyű lenyomásra vagy felengedésre kerül. Ha egy standard billentyűt lenyomnak, akkor az ún. „scancode”-je kerül elküldésre. Minden billentyűnek pontosan egy scancode-ja van, létrehozva ezzel a scancode-ok térképét. Ha egy billentyű felengedésre kerül, először a speciális 240-es bájt (F0 hexa) kerül elküldésre, majd a billentyű scancode-ja. Tehát egy standard billentyűleütés 3 karakter elküldését eredményezi a vonalon. Ha egy billentyűt egy ideig lenyomva tartanak, annak scancode-ja folyamatosan generálódik a beállított ismétlési késleltetéssel. Amikor végül felengedik, az 240-es (F0 hexa) karakter kerül elküldésre, majd a scancode. Ez még mindig egy szép protokoll lenne, ha nem lennének olyan speciális billentyűk a szabványos PC billentyűzeteken, mint a Home, End, a nyilak, stb. Amikor egy speciális billentyűt lenyomnak, a 224-es (E0 hexa) bájt generálódik, amit a scancode követ. Amikor egy speciális billentyűt felengednek, a 224, 240-es sorozat kerül kibocsátásra (E0, F0), amit a scancode követ. Normál és speciális billentyűk általánosak minden nemzeti billentyűzet elrendezésben a scancodes térképe tekintetében. Hogy még bonyolultabbá tegyük a történetet, két szuper-speciális billentyű is létezik, a Print Screen és a Pause, amelyek egész sorozatot scancode-ot küldenek. Egy billentyűzet interfész számára a legjobb, ha úgy tesz, mintha ezek a billentyűk nem is léteznének.

Adatnaplózás

A mikrovezérlő folyamatosan figyeli a DATA és CLK vonalakat, összegyűjtve az összes adatot. Az adatokat nem volátilis EEPROM memóriába naplózza, ahogy azok végigmennek a vonalon. Ennek köszönhetően a felhasználó később minden billentyűzetes eseményről tájékozódhat. Amikor a felhasználó úgy dönt, hogy a felvétel véget ért, és megnyomja a gombot, a hardver keylogger átkapcsol lejátszási módba. A billentyűzetet le kell csatlakoztatni, különben értelmezi az adatáramot. A keylogger elkezdi szimulálni a billentyűadatokat az belső hardvermemóriából. A KeyGrab alkalmazásnak aktívnak kell lennie, hogy feldolgozza az adatáramot a keylogger hardverről. A normál billentyűket úgy szimulálják, mintha a memóriába lennének írva, a speciális billentyűket pedig kétbájtos hexa kóddal továbbítják.