Keelog halka açık alana, tam firmware ve yazılım kaynak kodları, keylogger donanım elektrik şemaları ve belgelere dahil olarak hardware keylogger ailesinin erken bir sürümünü yayınlamaya karar verdi. Bu PS/2 tuş kaydedici, dünya çapında yüzlerce kişi tarafından monte edilmiş ve kullanılmış, %100 işlevsel ve test edilmiş bir cihazdır. Bu donanım key logger'ın işleyişi KeyGrabber PS/2 ile benzerdir. Kaydedilen tuş vuruşu verilerinin alınması ve analizi için KeyGrab uygulamasını sağlıyoruz. Ancak, lütfen bu DIY donanım keylogger projesinin tüm hatalarıyla ve herhangi bir garanti olmaksızın sunulduğunu unutmayın.

Açık kaynak kodlu DIY donanım keylogger

Başlamadan önce, bu listeden aşağı inerek, bu hardware keylogger projesini tamamlamak için gereken tüm araçlara ve becerilere sahip olup olmadığınızı kontrol edin:

  • elektronik donanım konusunda bazı deneyim
  • bir lehimleme demiri
  • bir mikrodenetleyici programlayıcı (Atmel AT89CXX51 ailesini destekleyen)
Açık kaynak kodlu DIY donanım keylogger - bileşenler

Donanım keylogger projesi için aşağıdaki bileşenler gereklidir:

  • Atmel AT89C2051 mikrodenetleyici (veya AT89C1051, AT89C4051)
  • AT24C512 seri EEPROM yongası (veya uyumlu)
  • 12 MHz kristal
  • Kapasitör 2 x 33p
  • 10 µF kapasitör
  • 10 kΩ direnç
  • küçük basma düğmesi
Açık kaynak kodlu DIY donanım keylogger - PS/2 kablo

Son olarak, donanım keylogger için bir kasa gereklidir. İyi bir fikir, bir PS/2 uzatma kablosu ve hazır yapılmış keylogger etrafına termal olarak sarılabilen 4 inçlik bir ısıtılabilir tüp satın almaktır.

Önce keylogger mikrodenetleyici yazılımını programlayın. Programcı yazılımınızı başlatın, AT89C2051'i seçin ve flaşı ikili dosya veya hex sürümü ile yazın. Ayrıca kaynağı kaynak kodu ve bir 8051 derleyici kullanarak yeniden derleyebilirsiniz. Lehimleme muhtemelen projenin en zor kısmıdır, çünkü keylogger donanımı mümkün olduğunca küçük olmalıdır. Aşağıdaki keylogger donanım şemaları, bileşenler arasında nasıl bağlantılar yapılması gerektiğini göstermektedir.

Açık kaynak kodlu DIY donanım keylogger - elektronik donanım konusunda bazı deneyim

Bileşenleri birleştirerek mikrodenetleyici ve EEPROM'dan başlayarak lehimleyin. Kullanılmayan IC pinleri çıkarılabilir. Basma düğmesinin erişilebilir olduğundan emin olun. Kondansatörü monte ederken doğru şekilde polarize edildiğinden emin olun.

Açık kaynak kodlu DIY donanım keylogger - lehimleme

Donanım keylogger'ı mümkün olduğunca kompakt hale getirin, ancak kısa devrelerden kaçının. Cihaz tamamlandıktan sonra bunları çıkarmak zor olacaktır. Ana bileşenler bağlandıktan sonra keylogger devresi fotoğrafta gösterilen prototipe biraz benzemelidir.

Açık kaynak kodlu DIY donanım keylogger - bağlayıcılar

Son olarak, PS/2 konektörleri keyloggere lehimleyin. İyi bir fikir, PS/2 uzatma kablosunu iki parçaya kesmek ve her parçayı ayrı ayrı lehimlemektir. Isı daraltma tüpünü kablonun bir parçasına takmayı unutmayın. Hem klavyede hem de bilgisayarda kullanılan dört PS/2 pini (CLK, DATA, VCC ve GND) her iki konektörde de bağlayın.

Açık kaynak kodlu DIY donanım keylogger

Donanım keylogger etrafına termal tüp çekmeden önce, bileşenler arasına biraz yapıştırıcı veya reçine bırakmak iyi bir fikir olabilir, böylece cihaz daha sert hale gelir. Son olarak termal tüpü çekin, lehimlenmiş bileşenlerin etrafına sarılana kadar ısıtın ve düğmeye erişilebilir olması için küçük bir delik açın.

Donanım keylogger, klavye ve bilgisayar arasına takıldığında tuş verilerini kaydetmeye başlar. Keylogger, bilgisayar işlemi için tamamen şeffaftır ve kayıt modundaki yazılım tarafından algılanamaz. Klavye tarafından gönderilen tüm tuş verileri, 64 kB donanım kararlı EEPROM belleğe kaydedilir. Kayıt modu, bilgisayara yüklenmiş işletim sisteminden tamamen bağımsızdır.

Açık kaynak kodlu DIY donanım keylogger - kurulum 1

Bilgisayarda PS/2 bağlayıcısını bulun.

Açık kaynak kodlu DIY donanım keylogger - kurulum 2

Klavyeyi çıkarın.

Açık kaynak kodlu DIY donanım keylogger - kurulum 3

Donanım keylogger'ı klavyenin yerine bağlayın.

Açık kaynak kodlu DIY donanım keylogger - kurulum 4

Klavyeyi keyloggere bağlayın. Bilgisayar açıldığında veri kaydı başlayacaktır.

Donanım keylogger bir kez tuş verilerini kaydettikten sonra, Windows 9X/Me/XP/2000 çalıştıran herhangi bir PC'ye geri alınabilir. Donanım keylogger bunu klavye tuşlarını simüle ederek yapar. Aktarılan tuş verileri KeyGrab uygulaması tarafından edinilir. Bu veriler bilgisayara iletildikten sonra işlenebilir ve analiz edilebilir. Veri indirme işlemini başlatmak için talimatları izleyin.

Açık kaynak kodlu DIY donanım keylogger - Kayıt modu 1

KeyGrab uygulamasını çalıştırın.

Açık kaynak kodlu DIY donanım keylogger - Kayıt modu 2

Klavye yerine donanım keylogger'ı bağlayın. Klavyeyi bağlamayın.

Açık kaynak kodlu DIY donanım keylogger - Kayıt modu 3

Etkin uygulama yapmak için KeyGrab başlık çubuğuna tıklayın.

Açık kaynak kodlu DIY donanım keylogger - Kayıt modu 4

Veri indirmeyi başlatmak için donanım keylogger üzerindeki düğmeye basın. Aktif uygulamayı iletişim sırasında değiştirmeyin. İletimi bitirmek için düğmeye tekrar basın. İstenen tuş vuruşu verileri PC'ye indirildiğinde bunu yapın.

Açık kaynak kodlu DIY donanım keylogger - Kayıt modu 5

Donanım keylogger'ı çıkarın ve PS/2 klavyenizi tekrar takın.

Ana tabloya KeyGrab anahtar tablosuna klavye vuruşu verileri indirildiğinde, kayıt sırasında kaydedilen anahtar verilerini göstermek üzere otomatik olarak ön işlemden geçirilir. Veriler azalan sırayla iletilir, en son basılan tuşları önce göstermek için. Uzun zaman önce gerçekleşen tuş vuruşları daha sonra iletilir. Tabloyu manuel olarak analiz edebilir veya bazı arama seçeneklerini kullanabilirsiniz.

Açık kaynak kodlu DIY donanım keylogger - Veri analizi

1 - Klavye olayı tarafından kullanılan keylogger donanım belleğindeki konum (onaltılı form).
2 - Yakalanan ve kaydedilen tuş vuruşu.
3 - Gerçekleşen olay - bir tuşa basma veya bırakma.
4 - PS/2 veri yolundaki tuş vuruşu tarama kodu (onaltılık formda).
5 - Kayıt sırasında yazılan son bellek konumu (onaltılı formda).
6 - Keylogger donanım bellek boyutu (kilobit cinsinden).

Kullanıcı için ilginç olan tek sütun Anahtar (2) ve Eylem (3)dir. Bu sütunlar hangi tuşların basıldığını ve serbest bırakıldığını kodlar. Kayıt sırasında tuş vuruşu geçmişini görmek için çubuğu kaydırın. Keylogger verileri ters kronolojik sırayla iletilir (en son tuş vuruşu verileri önce).

Windows 9X/ME/2000/XP için DIY donanım keylogger veri alımı ve analiz uygulaması:
KeyGrab.zip (0.7MB)

AT89C2051 mikrodenetleyici için tam kaynak kodu:
Kaynak kodu - diy.asm

Ön derlenmiş AT89C2051 donanım keylogger yazılımı da mevcuttur:
BIN dosyası - diy.bin, HEX dosyası - diy.hex

Açık kaynak kodlu DIY donanım keylogger - KeyGrab

Donanım keylogger kullanırken oluşabilecek sorunlardan kaçınmak için bu bölümü okumanızı öneririz.

Hukuki sorumluluk

  1. Ülkeler klavye verilerinin kaydedilmesi konusunda farklı yasalara sahiptir. Yasayı bilmemek onu ihlal etme hakkını vermez. Lütfen kullanıcı sözleşmemizi okuyun.
  2. Bu donanım keylogger'ın kullanımından kaynaklanan herhangi bir hasar veya zarardan sorumlu değiliz.
  3. Bu cihazı yetkili olmadığınız verileri dinlemek için kullanmamalısınız, özellikle şifreler, bankacılık verileri, gizli yazışmalar vb. Birçok ülke bunu suç olarak kabul eder.

Anahtar veri kaydı

  1. Donanım keylogger'ın 64 kB'ı değişmeyen EEPROM belleği bulunmaktadır. Bu bellek dolu olduğunda yazma işlemi ilk bellek konumundan tekrar başlayacaktır. En eski veriler kaybolacaktır.
  2. Bellek belleğin ilk 128 baytı, son bellek erişim adresini kaydetmek gibi yapılandırma verileri için ayrılmıştır. Son bellek erişim adresi yaklaşık her 10 saniyede bir güncellenir.
  3. Gereksiz olduğunda donanım keylogger'ı kayıt modunda bağlı bırakmayın. Bu, belleği kullanacak ve eski, bazen önemli verilerin üzerine yazılmasına neden olacaktır.

Anahtar veri iletimi

  1. Tuş vuruşu verilerini almak için en az 100 MHz Pentium sınıfı bir bilgisayara ve yüklü Windows 9X/Me/XP/2000 işletim sistemine ihtiyacınız olacak.
  2. Donanım keylogger, klavyeyi simüle ederek verileri bilgisayara geri gönderir. Gerçek klavye iletim sırasında bağlantısı kesilmelidir.
  3. Etkin uygulama KeyGrab olmalıdır. Başka bir durumda, ya Windows ya da farklı bir uygulama, donanım keylogger'dan gelen simüle edilmiş tuş vuruşlarını yorumlamaya başlayacaktır.
  4. Tuş vuruşu verileri ters kronolojik sırayla alınır. Bu, önce en güncel verileri sağlamak içindir. Çok eski klavye verilerini almak için bir süre beklemeniz gerekebilir. Tüm iletim süreci en fazla 20 dakika sürebilir.
  5. Aktarım, tekrar basarak manuel olarak durdurulmalıdır. Tuş vuruşu verileri çoğalmaya başladığında bunu yapın.

PS/2 klavye işlemi

  1. PS/2 klavye düşündüğünden biraz daha karmaşıktır. Donanım keylogger tarafından kaydedilen ham verileri analiz ederek bunu fark edebilirsiniz. PC klavyesi her bir tuşa basıldığında bir karakter oluşturur. Tuş serbest bırakıldığında karakter, önceki 240 (F0 onaltılık) karakterle tekrar oluşturulur. 224 (E0 onaltılık) karakteri kullanan genişletilmiş tuşlar da mevcuttur. Bunun hakkında daha fazla bilgiyi kısa PS/2 klavye protokolünde okuyabilirsiniz.
  2. Donanım keylogger'ın 64 kB belleği olsa da, bu 64 bin tuş vuruşunun hafızaya alınabileceği anlamına gelmez. Bir tuş basma-serbest bırakma dizisi standart bir tuş için 3 bayt ve genişletilmiş bir tuş için 5 bayt gerektirir. Günlükleme ticari sürümlerde optimize edilmiştir.

Arka plan

Açık kaynak kodlu DIY donanım keylogger - PS/2 sinyal hatları

Bir PS/2 klavye kablosunu keserseniz, muhtemelen içinde 6 tel bulursunuz. Bunların sadece 4 tanesi anlamlıdır. Bu iki güç hattıdır: bilgisayar güç kaynağından toprak (GND) ve +5 volt (VCC). Diğer iki tel ise asenkron iletim hatlarıdır: veri hattı (DATA) ve saat hattı (CLK). Bu hatların DIN (a) ve miniDIN (b) konektör pinleriyle nasıl ilişkili olduğunu sağdaki şekilde görebilirsiniz. İletim çift yönlüdür, ancak klavye üstündür. Klavye basılan ve bırakılan tuşlar hakkında bilgi gönderir. Veri paketi sadece bir bayttan oluşur, başlangıç biti ile başlar ve çiftlik ve durdurma biti ile biter. Klavye ardışık bitleri DATA hattına koyar ve onları CLK hattında negatif darbelerle saatler. Saat frekansı 10...30 kHz'dir. Bu, bilgisayarın klavyeye bilgi göndermek istemediği çok güzel bir seri protokol olurdu. Bu durumlarda, bilgisayar CLK hattını bir süre düşük çeker ve klavyenin darbe üretmeye başlamasını bekler. Bu darbeler başladığında, kendi karakterini DATA hattına saatler. Klavyeden ana bilgisayara (a) ve ana bilgisayardan klavyeye (b) iletimin durum diyagramlarını aşağıdaki şekilde görebilirsiniz. Bu protokolün elbette kesinti, karakter tekrarı vb. gibi birkaç istisnası vardır. Ancak, bunlar çok nadir durumlardır.

Açık kaynak kodlu DIY donanım keylogger - dalga formları

Otobüs verileri

Klavye hatları aracılığıyla aslında ne aktarılır? Başlatıldığında, hem klavye hem de bilgisayar başlatma verileri gönderir, kendilerinin iyi olduğunu bildirir. Bilgisayar normal şekilde çalışırken, sadece klavye veri gönderir. Bu, gerçekleşen her olay hakkında veridir. Bir olay, bir tuşun basılıp bırakılması olarak kabul edilir. Bir standart tuşa basıldığında, sözde 'tarama kodu' gönderilir. Her tuşun tam olarak bir tarama kodu vardır, tarama kodlarının bir haritasını oluşturur. Bir tuş bırakıldığında, önce özel 240 (F0 onaltılık) baytı gönderilir, ardından tuşun tarama kodu gönderilir. Bu nedenle, bir standart tuş vuruşuyla hat boyunca 3 karakter gönderilir. Bir tuş bir süre basılı tutulursa, tarama kodu sürekli olarak belirlenen tekrarlama gecikmesiyle oluşturulur. Sonunda bırakıldığında, 240 (F0 onaltılık) karakteri gönderilir, ardından tarama kodu gönderilir. Bu, standart PC klavyesinde bulunan Home, End, oklar gibi bazı özel tuşlar olmasaydı hala güzel bir protokol olurdu. Bir özel tuşa basıldığında, 224 (E0 onaltılık) baytı oluşturulur, ardından tarama kodu gelir. Bir özel tuş bırakıldığında, 224, 240 (E0, F0) sırası tetiklenir, ardından tarama kodu gelir. Normal ve özel tuşlar, tarama kodu haritası ile ilgili tüm ulusal klavye düzenleri için ortaktır. Hikayeyi biraz daha karmaşık hale getirmek için, Print Screen ve Pause gibi iki süper-özel tuş bulunmaktadır, bu tuşlar bir dizi tarama kodunun iletilmesine neden olur. Bir klavye arayüzü için, bu tuşların var olmadığını varsaymak en iyisidir.

Veri kaydı

Mikrodenetleyici, sürekli olarak DATA ve CLK hatlarını izleyerek tüm verileri toplar. Veriler, hattın boyunca ilerlerken kalıcı olmayan EEPROM belleğe kaydedilir. Bu sayede kullanıcı daha sonra klavyedeki her olay hakkında bilgi edinebilir. Kullanıcı kaydın bittiğine karar verir ve düğmeye basar basmaz, donanım keylogger oynatma moduna geçer. Klavyenin bağlantısı kesilmelidir, aksi takdirde veri akışını yorumlar. Keylogger, dahili donanım belleğinden tuş verilerini simüle etmeye başlar. KeyGrab uygulamasının, keylogger donanımından gelen veri akışını işlemek için etkin olması gerekir. Normal tuşlar belleğe yazılmış gibi simüle edilirken, özel tuşlar iki baytlık onaltılık kod kullanılarak iletilir.