Keelog se rozhodl zveřejnit časnou verzi své rodiny hardware keyloggerů ve veřejné doméně, včetně plného firmware a softwarového zdrojového kódu, elektrických schémat keyloggerového hardwaru a dokumentace. Tento key logger od PS/2 je 100% funkční a otestované zařízení, sestavené a používané stovkami lidí po celém světě. Provoz tohoto hardware key loggeru je podobný jako u KeyGrabber PS/2. Poskytujeme aplikaci KeyGrab pro získání a analýzu zaznamenaných údajů o stisknutých klávesách. Všimněte si však, že tento projekt DIY hardware keyloggeru je poskytován takový, jaký je, se všemi chybami a bez jakékoli záruky.

Otevřený zdrojový DIY hardware keylogger

Před zahájením se podívejte na tuto seznam, abyste zkontrolovali, zda máte všechny potřebné nástroje a dovednosti k dokončení tohoto projektu keyloggeru:

  • nějaké zkušenosti s elektronickým hardwarem
  • pájecí kolík
  • programátor mikrokontroléru (podporující rodinu Atmel AT89CXX51)
Otevřený zdrojový DIY hardware keylogger - komponenty

Pro hardware keylogger projekt jsou vyžadovány následující komponenty:

  • Mikrokontrolér Atmel AT89C2051 (nebo AT89C1051, AT89C4051)
  • Sériový EEPROM čip AT24C512 (nebo kompatibilní)
  • 12 MHz krystal
  • Kondenzátor 2 x 33p
  • Kondenzátor 10 µF
  • 10 kΩ odpor
  • malé tlačítko
Otevřený zdrojový DIY hardware keylogger - Kabel PS/2

Nakonec je nutné pouzdro pro hardware keylogger. Dobrým nápadem je koupit prodlužovací kabel PS/2 a 4palcový kus termo smrštitelné trubky, který lze tepelně obalit kolem hotového keyloggeru.

Nejprve naprogramujte firmware mikrokontroléru keyloggeru. Spusťte svůj programátorový software, vyberte AT89C2051 a vypalte flash paměť s binárním souborem nebo hex verzí. Můžete také znovu zkompilovat zdrojový kód pomocí zdrojového kódu a 8051 kompilátoru. Pájení je pravděpodobně nejtěžší částí projektu, protože hardware keyloggeru by měl být co nejmenší. Níže uvedené schémata hardware keyloggeru ukazují, jak by měly být vytvořeny spoje mezi komponenty.

Otevřený zdrojový DIY hardware keylogger - nějaké zkušenosti s elektronickým hardwarem

Spojte součástky dohromady začínaje mikrokontrolérem a EEPROMem. Nepoužité piny integrovaných obvodů lze odstranit. Ujistěte se, že tlačítko je přístupné. Při montáži kondenzátoru se ujistěte, že je správně polarizován.

Otevřený zdrojový DIY hardware keylogger - pájení

Zařiďte hardware keylogger co nejkompaktnější, ale vyhněte se zkratům. Po dokončení zařízení budou obtížně odstranitelné. Obvod keyloggeru by měl vypadat nějak podobně jako prototyp zobrazený na fotografii, poté, co jsou připojeny hlavní komponenty.

Otevřený zdrojový DIY hardware keylogger - konektory

Nakonec připájejte konektory PS/2 k keyloggeru. Dobrý nápad je rozřezat prodlužovací kabel PS/2 na dvě části a každou část připájet samostatně. Ujistěte se, že na jednu část kabelu nasadíte termocontractilní trubici. Propojte všechny čtyři použité piny PS/2 (CLK, DATA, VCC a GND) na obou konektorech (u klávesnice a u počítače).

Otevřený zdrojový DIY hardware keylogger

Předtím, než zatáhnete tepelnou trubici kolem hardwarového keyloggeru, je dobrý nápad nechat trochu lepidla nebo pryskyřice mezi komponenty, aby bylo zařízení pevnější. Nakonec zatáhněte tepelnou trubici, zahřejte ji, dokud se neobtočí kolem pájených komponentů, a vyřízněte malý otvor, aby bylo tlačítko přístupné.

Hardware keylogger začne zaznamenávat klíčová data ihned poté, co je zapojen mezi klávesnici a počítač. Keylogger je zcela transparentní pro provoz počítače a nemůže být detekován softwarem v režimu záznamu. Všechna klíčová data odeslaná klávesnicí budou zaznamenána do 64 kB hardwarové nevolatilní paměti EEPROM. Režim záznamu je zcela nezávislý na operačním systému nainstalovaném na počítači.

Otevřený zdrojový DIY hardware keylogger - instalace 1

Najděte konektor PS/2 na počítači.

Otevřený zdrojový DIY hardware keylogger - instalace 2

Odpojte klávesnici.

Otevřený zdrojový DIY hardware keylogger - instalace 3

Připojte hardware keylogger místo klávesnice.

Otevřený zdrojový DIY hardware keylogger - instalace 4

Připojte klávesnici k keyloggeru. Po zapnutí počítače začne záznam dat.

Jakmile hardware keylogger zaznamenal klíčová data, lze je získat na libovolném počítači s Windows 9X/Me/XP/2000. Hardware keylogger to dělá tím, že simuluje stisknutí klávesnice. Přenášená data klávesnice jsou získána aplikací KeyGrab. Jakmile jsou tato data přenesena do počítače, lze je zpracovat a analyzovat. Postupujte podle instrukcí pro zahájení stahování dat.

Otevřený zdrojový DIY hardware keylogger - Režim záznamu 1

Spusťte aplikaci KeyGrab.

Otevřený zdrojový DIY hardware keylogger - Režim záznamu 2

Připojte hardware keylogger místo klávesnice. Nepřipojujte klávesnici.

Otevřený zdrojový DIY hardware keylogger - Režim záznamu 3

Klikněte na titulní řádek KeyGrab, abyste jej učinili aktivním aplikací.

Otevřený zdrojový DIY hardware keylogger - Režim záznamu 4

Stiskněte tlačítko na hardware keyloggeru pro spuštění stahování dat. Během přenosu nezměňujte aktivní aplikaci. Stiskněte tlačítko znovu pro dokončení přenosu. Udělejte to, až budou požadovaná data stisknutí kláves stažena do počítače.

Otevřený zdrojový DIY hardware keylogger - Režim záznamu 5

Odpojte hardwarový keylogger a znovu připojte klávesnici PS/2.

Při stahování dat stisknutí kláves do hlavní tabulky KeyGrab jsou automaticky předzpracována tak, aby zobrazovala klíčová data, která byla zaznamenána během nahrávání. Data jsou přenášena sestupně, aby byla zobrazena nedávno stisknutá klávesa jako první. Stisknutí kláves, která se udála před dlouhou dobou, jsou přenášena později. Tabulku můžete analyzovat ručně nebo použít některé z možností vyhledávání.

Otevřený zdrojový DIY hardware keylogger - Analýza dat

1 - Pozice v paměti hardware keyloggeru používaná klávesnicovou událostí (hex formát).
2 - Zachycené a zaznamenané stisknutí kláves.
3 - Událost, která nastala - stisk nebo uvolnění klávesy.
4 - Kód klávesového stisknutí na sběrnici PS/2 (hexadecimální formou).
5 - Poslední paměťová pozice zapsaná během záznamu (hexadecimální formou).
6 - Velikost paměti hardwarového keyloggeru (v kilobitech).

Jediný sloupec, který je pro uživatele zajímavý, je Klíč (2) a Akce (3). Tyto sloupce kódují, které klávesy byly stisknuty a uvolněny. Posuňte pruh pro zobrazení historie stisknutí kláves během záznamu. Data keyloggeru jsou přenášena v opačném chronologickém pořadí (nejnovější data o stisknutí kláves nejprve).

Aplikace pro získání a analýzu dat z DIY hardware keyloggeru pro Windows 9X/ME/2000/XP:
KeyGrab.zip (0.7MB)

Plný zdrojový kód pro mikrokontrolér AT89C2051:
Zdrojový kód - diy.asm

Předkompilovaný firmware keyloggeru pro hardware AT89C2051 je také k dispozici:
Soubor BIN - diy.bin, HEX soubor - diy.hex

Otevřený zdrojový DIY hardware keylogger - KeyGrab

Doporučujeme vám přečíst tuto sekci, abyste se vyvarovali problémů, které by mohly nastat při použití hardwarového keyloggeru.

Právní odpovědnost

  1. Země mají různé zákony týkající se zaznamenávání údajů z klávesnice. Neznalost zákona vás neomlouvá od jeho dodržování. Přečtěte si prosím naše uživatelské smluvní podmínky.
  2. Neneseme žádnou odpovědnost za jakékoliv škody nebo škody způsobené použitím tohoto hardwarového keyloggeru.
  3. Neměli byste používat toto zařízení k odposlouchávání dat, ke kterým nemáte oprávnění, zejména hesla, bankovní údaje, důvěrnou korespondenci atd. Většina zemí to považuje za zločin.

Záznam klíčových dat

  1. Hardware keylogger má 64 kB nevolatilní paměti EEPROM. Když je tato paměť plná, zápis začne znovu od první paměťové lokace. Nejstarší data budou ztracena.
  2. Prvních 128 bytů paměti je vyhrazeno pro konfigurační data, jako je ukládání poslední adresy přístupu k paměti. Poslední adresa přístupu k paměti je aktualizována přibližně každých 10 sekund.
  3. Nenechávejte hardware keylogger připojený v režimu záznamu, když není nutné. To bude využívat paměť a způsobí, že se stará, někdy důležitá data přepíšou.

Přenos klíčových dat

  1. Pro získání dat o stisknutých klávesách budete potřebovat alespoň počítač třídy Pentium s frekvencí 100 MHz s nainstalovaným Windows 9X/Me/XP/2000.
  2. Hardwarový keylogger přenáší data zpět do počítače simulací klávesnice. Skutečná klávesnice musí být odpojena během přenosu.
  3. Aktivní aplikace musí být KeyGrab. V opačném případě buď Windows nebo jiná aplikace začne interpretovat simulované stisky kláves pocházející z hardware keyloggeru.
  4. Data o stisknutí klávesnice jsou získávána v opačném chronologickém pořadí. To je proto, aby byla poskytnuta nedávná data jako první. Musíte počkat chvíli, abyste získali velmi stará data z klávesnice. Celý přenosový proces může trvat až 20 minut.
  5. Přenos musí být ukončen ručně stisknutím tlačítka znovu. Udělejte to, když se začnou duplikovat údaje o stisknutí kláves.

Klávesnice PS/2

  1. Klávesnice PS/2 je trochu složitější než byste si mohli myslet. To můžete zjistit analýzou surových dat zaznamenaných hardwarem keyloggerem. PC klávesnice generuje jedno písmeno pokaždé, když je stisknuta klávesa. Když je klávesa uvolněna, písmeno je generováno znovu s předcházejícím znakem 240 (F0 hex). Existují také rozšířené klávesy používající znak 224 (E0 hex). Více se o tom můžete dočíst v krátkém protokolu klávesnice PS/2.
  2. I když má hardware keylogger 64 kB paměti, neznamená to, že lze zapamatovat 64 tisíc stisknutí kláves. Jedna sekvence stisknutí-uvolnění klávesy vyžaduje 3 byty pro standardní klávesu a 5 bytů pro rozšířenou klávesu. Záznam byl optimalizován v komerčních verzích.

Pozadí

Otevřený zdrojový DIY hardware keylogger - Signální linky PS/2

Pokud byste přestřihli kabel klávesnice PS/2, pravděpodobně byste uvnitř našli 6 drátů. Pouze 4 z nich jsou významné. Dva z nich jsou napájecí linky: zem (GND) a +5 voltů (VCC) z napájecího zdroje počítače. Ostatní dva dráty jsou asynchronní přenosové linky: datová linka (DATA) a hodinová linka (CLK). Můžete vidět, jak tyto linky odpovídají pinům konektoru DIN (a) a miniDIN (b) na obrázku vpravo. Přenos je obousměrný, avšak klávesnice je nadřazená. Klávesnice odesílá informace o stisknutých a uvolněných klávesách. Datový blok se skládá pouze z jednoho bytu, předchází mu startovní bit a následuje paritní a stop bit. Klávesnice umisťuje po sobě jdoucí bity na datovou linku DATA a hodinovými impulsy na linku CLK je hodinuje. Frekvence hodin je 10...30 kHz. Toto by byl velmi pěkný sériový protokol, kdyby nebyl počítač, který občas chce poslat informace klávesnici. V takových případech PC stáhne linku CLK dolů po určitou dobu a čeká, až klávesnice začne generovat impulsy. Jakmile tyto impulsy začnou, klávesnice zaznamenává svůj vlastní znak na datovou linku. Můžete vidět stavové diagramy přenosu klávesnice k hostiteli (a) a hostitele k klávesnici (b) na obrázku níže. Tento protokol má samozřejmě několik výjimek, jako je přerušení přenosu, opakování znaku atd. Tyto případy jsou však velmi vzácné.

Otevřený zdrojový DIY hardware keylogger - vlnové tvary

Autobusová data

Co vlastně putuje přes linky klávesnice? Při startu odesílají klávesnice i počítač inicializační data, informující o tom, že jsou v pořádku. Když počítač běží normálně, odesílá data pouze klávesnice. Jedná se o data o každém události, která nastala. Událostí se považuje stisknutí nebo uvolnění klávesy. Pokud je stisknuta standardní klávesa, je odeslán tzv. "scan kód". Každá klávesa má právě jeden scan kód, vytvářející mapu scan kódů. Pokud je klávesa uvolněna, nejprve je odeslán speciální byte 240 (F0 hex), následně je odeslán scan kód klávesy. Standardní stisk klávesy tedy způsobí odeslání 3 znaků po lince. Pokud je klávesa podržena po určitou dobu, její scan kód bude neustále generován s nastaveným opakovacím zpožděním. Když je nakonec uvolněna, bude odeslán znak 240 (F0 hex), následovaný scan kódem. Toto by byl stále pěkný protokol, kdyby neexistovaly některé speciální klávesy na standardní klávesnici PC, jako je Home, End, šipky atd. Když je stisknuta speciální klávesa, generuje se bajt 224 (hex E0), následovaný kódem skenování. Když je speciální klávesa uvolněna, je spuštěna posloupnost 224, 240 (E0, F0), následovaná kódem skenování. Normální a speciální klávesy jsou společné pro všechny národní rozložení klávesnice s ohledem na mapu skenovacích kódů. Pro zjednodušení ještě trochu složitější, existují dvě super-speciální klávesy, Print Screen a Pause, které způsobují odeslání celé posloupnosti skenovacích kódů. Pro rozhraní klávesnice je nejlepší předstírat, že tyto klávesy neexistují.

Záznam dat

Mikrokontrolér neustále monitoruje DATA a CLK linky, sbírá všechna data. Data jsou ukládána do nevolatilní paměti EEPROM, jakmile projdou linkou. Díky tomu může uživatel později zjistit o každé události na klávesnici. Když uživatel rozhodne, že nahrávání skončilo a stiskne tlačítko, hardware keylogger přepne do režimu přehrávání. Klávesnice by měla být odpojena, jinak bude interpretovat datový tok. Keylogger začne simulovat klíčová data z interní paměti hardware. Aplikace KeyGrab musí být aktivní, aby zpracovala datový tok z hardware keyloggeru. Normální klávesy jsou simulovány, jako by byly napsány do paměti, a speciální klávesy jsou přenášeny pomocí dvoubytové hexadecimální kódu.