Keelog αποφάσισε να κυκλοφορήσει μια πρώιμη έκδοση της οικογένειας hardware keylogger στον δημόσιο τομέα, συμπεριλαμβανομένου του πλήρους κώδικα πηγαίου κώδικα και λογισμικού, ηλεκτρικών σχεδίων υλικού keylogger και τεκμηρίωσης. Αυτό το key logger της PS/2 είναι μια συσκευή 100% λειτουργική και δοκιμασμένη, συναρμολογημένη και χρησιμοποιημένη από εκατοντάδες ανθρώπους σε όλο τον κόσμο. Η λειτουργία αυτού του hardware key logger είναι παρόμοια με το KeyGrabber PS/2. Παρέχουμε την εφαρμογή KeyGrab για την ανάκτηση και ανάλυση των καταγεγραμμένων πληκτρολογήσεων. Ωστόσο, παρακαλούμε σημειώστε ότι αυτό το έργο DIY hardware keylogger παρέχεται ως έχει, με όλα τα ελαττώματα, και χωρίς καμία εγγύηση.

Ανοικτού κώδικα DIY hardware keylogger

Πριν ξεκινήσετε, πηγαίνετε σε αυτήν τη λίστα για να ελέγξετε αν έχετε όλα τα εργαλεία και τις δεξιότητες που απαιτούνται για την ολοκλήρωση αυτού του έργου keylogger υλικού:

  • κάποια εμπειρία στον ηλεκτρονικό υλικό
  • ένα σταθμό συγκόλλησης
  • ένας προγραμματιστής μικροελεγκτή (που υποστηρίζει την οικογένεια Atmel AT89CXX51)
Ανοικτού κώδικα DIY hardware keylogger - συστατικά

Τα ακόλουθα εξαρτήματα απαιτούνται για το έργο keylogger υλικού:

  • Μικροελεγκτής Atmel AT89C2051 (ή AT89C1051, AT89C4051)
  • Τσιπ EEPROM σειριακού AT24C512 (ή συμβατό)
  • Κρύσταλλο 12 MHz
  • Πυκνωτής 2 x 33p
  • Πυκνωτής 10 µF
  • Αντίσταση 10 kΩ
  • μικρό κουμπί πίεσης
Ανοικτού κώδικα DIY hardware keylogger - Καλώδιο PS/2

Τέλος, απαιτείται η επένδυση για το hardware keylogger. Μια καλή ιδέα είναι να αγοράσετε ένα καλώδιο επέκτασης PS/2 και ένα κομμάτι 4 ιντσών θερμοσυστεγνούς σωλήνα, το οποίο μπορεί να τυλιχτεί θερμικά γύρω από το έτοιμο keylogger.

Προγραμματίστε πρώτα το firmware του μικροελεγκτή keylogger. Εκκινήστε το λογισμικό προγραμματιστή σας, επιλέξτε το AT89C2051 και κάψτε τη μνήμη flash με το δυαδικό αρχείο ή τη εξαδική έκδοση. Μπορείτε επίσης να επαναμεταγλωττίσετε τον πηγαίο κώδικα χρησιμοποιώντας το πηγαίο κώδικα και έναν μεταγλωττιστή 8051. Η συγκόλληση είναι πιθανώς το πιο δύσκολο μέρος του έργου, καθώς το υλικό keylogger πρέπει να γίνει όσο το δυνατόν μικρότερο. Τα παρακάτω σχέδια υλικού keylogger δείχνουν πώς πρέπει να γίνουν οι συνδέσεις μεταξύ των στοιχείων.

Ανοικτού κώδικα DIY hardware keylogger - κάποια εμπειρία στον ηλεκτρονικό υλικό

Κόψτε τα εξαρτήματα μαζί ξεκινώντας από το μικροελεγκτή και το EEPROM. Οι αχρησιμοποίητοι ακροδέκτες IC μπορούν να αφαιρεθούν. Βεβαιωθείτε ότι το πλήκτρο πιέσεως είναι προσβάσιμο. Όταν τοποθετείτε τον πυκνωτή, βεβαιωθείτε ότι είναι πολικοποιημένος σωστά.

Ανοικτού κώδικα DIY hardware keylogger - κόλληση

Κάντε το hardware keylogger όσο το δυνατόν πιο συμπαγές, αλλά αποφύγετε τις βραχυκυκλώσεις. Θα είναι δύσκολο να αφαιρεθούν μετά την ολοκλήρωση της συσκευής. Το κύκλωμα του keylogger θα πρέπει να μοιάζει κάπως με το πρωτότυπο που φαίνεται στη φωτογραφία, μετά τη σύνδεση των κύριων συστατικών.

Ανοικτού κώδικα DIY hardware keylogger - συνδέσεις

Τέλος, κόψτε τους συνδέσμους PS/2 στο keylogger. Μια καλή ιδέα είναι να κόψετε το καλώδιο επέκτασης PS/2 σε δύο κομμάτια και να κολλήσετε κάθε μέρος ξεχωριστά. Βεβαιωθείτε ότι τοποθετείτε το σωλήνα θερμοσυστολήσεως σε ένα μέρος του καλωδίου. Συνδέστε όλες τις τέσσερις χρησιμοποιημένες παροχές PS/2 (CLK, DATA, VCC και GND) σε και τους δύο συνδέσμους (στο πληκτρολόγιο και στον υπολογιστή).

Ανοικτού κώδικα DIY hardware keylogger

Πριν τραβήξετε το θερμικό σωλήνα γύρω από το hardware keylogger, είναι μια καλή ιδέα να αφήσετε λίγο κόλλα ή ρητίνη μεταξύ των συστατικών, για να καταστήσετε τη συσκευή πιο σταθερή. Τέλος, τραβήξτε το θερμικό σωλήνα, ζεστάνετέ το μέχρι να τυλιχτεί γύρω από τα κολλημένα στοιχεία, και κόψτε ένα μικρό τρύπημα ώστε το κουμπί να είναι προσβάσιμο.

Το hardware keylogger ξεκινά την εγγραφή δεδομένων πλήκτρων αφού συνδεθεί μεταξύ του πληκτρολογίου και του υπολογιστή. Ο keylogger είναι εντελώς διαφανής για τη λειτουργία του υπολογιστή και δεν μπορεί να ανιχνευθεί από το λογισμικό σε λειτουργία εγγραφής. Όλα τα δεδομένα πλήκτρων που στέλνονται από το πληκτρολόγιο θα καταγραφούν στη μνήμη EEPROM μη αποσβέσιμης 64 kB υλικού. Η λειτουργία εγγραφής είναι πλήρως ανεξάρτητη από το λειτουργικό σύστημα που είναι εγκατεστημένο στον υπολογιστή.

Ανοικτού κώδικα DIY hardware keylogger - εγκατάσταση 1

Βρείτε τον συνδετήρα PS/2 στον υπολογιστή.

Ανοικτού κώδικα DIY hardware keylogger - εγκατάσταση 2

Αποσυνδέστε το πληκτρολόγιο.

Ανοικτού κώδικα DIY hardware keylogger - εγκατάσταση 3

Συνδέστε τον keylogger υλικού στη θέση του πληκτρολογίου.

Ανοικτού κώδικα DIY hardware keylogger - εγκατάσταση 4

Συνδέστε το πληκτρολόγιο στο keylogger. Κατά την ενεργοποίηση του υπολογιστή, η εγγραφή δεδομένων θα ξεκινήσει.

Μόλις το hardware keylogger έχει καταγράψει δεδομένα πλήκτρων, μπορούν να ανακτηθούν σε οποιονδήποτε Η/Υ που εκτελεί Windows 9X/Me/XP/2000. Το hardware keylogger κάνει αυτό προσομοιώντας πατήματα πληκτρολογίου. Τα μεταδιδόμενα δεδομένα πλήκτρων αποκτώνται από την εφαρμογή KeyGrab. Μόλις αυτά τα δεδομένα έχουν μεταδοθεί στον υπολογιστή, μπορούν να επεξεργαστούν και να αναλυθούν. Ακολουθήστε τις οδηγίες για την έναρξη λήψης δεδομένων.

Ανοικτού κώδικα DIY hardware keylogger - Λειτουργία εγγραφής 1

Εκτελέστε την εφαρμογή KeyGrab.

Ανοικτού κώδικα DIY hardware keylogger - Λειτουργία εγγραφής 2

Συνδέστε το hardware keylogger αντί του πληκτρολογίου. Μη συνδέετε το πληκτρολόγιο.

Ανοικτού κώδικα DIY hardware keylogger - Λειτουργία εγγραφής 3

Κάντε κλικ στη γραμμή τίτλου KeyGrab για να την κάνετε την ενεργή εφαρμογή.

Ανοικτού κώδικα DIY hardware keylogger - Λειτουργία εγγραφής 4

Πατήστε το κουμπί στο keylogger υλικού για να ξεκινήσετε τη λήψη δεδομένων. Μην αλλάξετε την ενεργή εφαρμογή κατά τη μετάδοση. Πατήστε ξανά το κουμπί για να ολοκληρωθεί η μετάδοση. Κάντε αυτό όταν τα επιθυμητά δεδομένα πληκτρολόγησης έχουν ληφθεί στον Η/Υ.

Ανοικτού κώδικα DIY hardware keylogger - Λειτουργία εγγραφής 5

Αποσυνδέστε το hardware keylogger και συνδέστε ξανά το πληκτρολόγιο PS/2 σας.

Κατά τη λήψη δεδομένων πληκτρολόγησης στον κύριο πίνακα KeyGrab, αυτά επεξεργάζονται αυτόματα για να εμφανίζουν δεδομένα πλήκτρων που καταγράφηκαν κατά την εγγραφή. Τα δεδομένα μεταδίδονται με φθίνουσα σειρά, για να εμφανίζονται πρώτα τα πιο πρόσφατα πατημένα πλήκτρα. Οι πληκτρολογήσεις που έγιναν πριν από πολύ καιρό μεταδίδονται αργότερα. Μπορείτε να αναλύσετε τον πίνακα χειροκίνητα ή να χρησιμοποιήσετε μερικές από τις επιλογές αναζήτησης.

Ανοικτού κώδικα DIY hardware keylogger - Ανάλυση δεδομένων

1 - Θέση στη μνήμη του υλικού keylogger που χρησιμοποιείται από το γεγονός του πληκτρολογίου (εξαδικαδική μορφή).
2 - Καταγεγραμμένη και καταγεγραμμένη πληκτρολόγηση.
3 - Συμβάν που έλαβε χώρα - πίεση ή απελευθέρωση πλήκτρου.
4 - Κωδικός σάρωσης πλήκτρων στο δίαυλο PS/2 (σε μορφή εξαδεκαδικού).
5 - Τελευταία θέση μνήμης εγγραφής κατά την εγγραφή (σε μορφή εξαδεκαδικού).
6 - Μέγεθος μνήμης υλικού keylogger (σε κιλομπιτ).

Η μοναδική στήλη που ενδιαφέρει τον χρήστη είναι το Κλειδί (2) και η Ενέργεια (3). Αυτές οι στήλες κωδικοποιούν ποια πλήκτρα έχουν πατηθεί και απελευθερωθεί. Κύλιση της γραμμής για να δείτε το ιστορικό πληκτρολόγησης κατά την εγγραφή. Τα δεδομένα του keylogger μεταδίδονται με αντίστροφη χρονολογική σειρά (πρώτα τα πιο πρόσφατα δεδομένα πληκτρολόγησης).

Η εφαρμογή ανάκτησης και ανάλυσης δεδομένων του DIY hardware keylogger για Windows 9X/ME/2000/XP:
KeyGrab.zip (0.7MB)

Ολόκληρος ο πηγαίος κώδικας για τον μικροελεγκτή AT89C2051:
Κώδικας πηγής - diy.asm

Το προεπιλεγμένο firmware keylogger υλικού AT89C2051 είναι επίσης διαθέσιμο:
Αρχείο BIN - diy.bin, Αρχείο HEX - diy.hex

Ανοικτού κώδικα DIY hardware keylogger - KeyGrab

Σας ενθαρρύνουμε να διαβάσετε αυτήν την ενότητα για να αποφύγετε προβλήματα που μπορεί να προκύψουν κατά τη χρήση του hardware keylogger.

Νομική ευθύνη

  1. Οι χώρες έχουν διαφορετικούς νόμους σχετικά με την καταγραφή δεδομένων πληκτρολογίου. Η άγνοια του νόμου δεν σας απαλλάσσει από την υποχρέωση να τον τηρήσετε. Παρακαλούμε διαβάστε την συμφωνία χρήστη μας.
  2. Δεν φέρουμε καμία ευθύνη για οποιεσδήποτε ζημίες ή βλάβες που προκαλούνται από τη χρήση αυτού του keylogger υλικού.
  3. Δεν πρέπει να χρησιμοποιείτε αυτή τη συσκευή για την παράνομη παρακολούθηση δεδομένων στα οποία δεν έχετε εξουσιοδότηση να κατέχετε, ειδικά κωδικούς πρόσβασης, τραπεζικά δεδομένα, εμπιστευτική αλληλογραφία κλπ. Τα περισσότερα κράτη αναγνωρίζουν αυτό ως έγκλημα.

Καταγραφή βασικών δεδομένων

  1. Το hardware keylogger διαθέτει 64 kB μη-εκτεταμένη μνήμη EEPROM. Όταν αυτή η μνήμη είναι γεμάτη, η εγγραφή θα ξεκινήσει ξανά από την πρώτη θέση μνήμης. Τα παλαιότερα δεδομένα θα χαθούν.
  2. Τα πρώτα 128 byte της μνήμης είναι κρατημένα για δεδομένα διαμόρφωσης, όπως η αποθήκευση της τελευταίας διεύθυνσης πρόσβασης στη μνήμη. Η τελευταία διεύθυνση πρόσβασης στη μνήμη ενημερώνεται περίπου κάθε 10 δευτερόλεπτα.
  3. Μην αφήνετε τον υλικού keylogger συνδεδεμένο σε λειτουργία εγγραφής όταν δεν είναι απαραίτητο. Αυτό θα χρησιμοποιήσει μνήμη και θα προκαλέσει την αντικατάσταση παλιών, μερικές φορές σημαντικών, δεδομένων.

Κύρια μετάδοση δεδομένων

  1. Για την ανάκτηση δεδομένων πληκτρολογίου θα χρειαστείτε τουλάχιστον έναν υπολογιστή κλάσης Pentium με συχνότητα 100 MHz και εγκατεστημένα τα Windows 9X/Me/XP/2000.
  2. Το hardware keylogger μεταδίδει δεδομένα πίσω στον υπολογιστή προσομοιώνοντας το πληκτρολόγιο. Το πραγματικό πληκτρολόγιο πρέπει να αποσυνδεθεί κατά τη μετάδοση.
  3. Η ενεργή εφαρμογή πρέπει να είναι KeyGrab. Σε οποιαδήποτε άλλη περίπτωση, είτε τα Windows είτε μια διαφορετική εφαρμογή θα αρχίσει να ερμηνεύει τις προσομοιωμένες πατήσεις πλήκτρων που προέρχονται από το keylogger υλικού.
  4. Τα δεδομένα πληκτρολόγησης ανακτώνται με αντίστροφη χρονολογική σειρά. Αυτό γίνεται για να παρέχεται πρώτα πρόσφατα δεδομένα. Θα πρέπει να περιμένετε λίγο για να λάβετε πολύ παλιά δεδομένα πληκτρολογίου. Ολόκληρη η διαδικασία μετάδοσης μπορεί να διαρκέσει έως και 20 λεπτά.
  5. Η μετάδοση πρέπει να τερματιστεί χειροκίνητα πατώντας ξανά το πλήκτρο πατώντας. Κάντε αυτό όταν τα δεδομένα πληκτρολόγησης αρχίζουν να διπλασιάζονται.

Λειτουργία πληκτρολογίου PS/2

  1. Το πληκτρολόγιο PS/2 είναι λίγο πιο περίπλοκο από ό,τι θα μπορούσες να φανταστείς. Μπορείς να το παρατηρήσεις αναλύοντας τα ωμά δεδομένα που καταγράφονται από τον hardware keylogger. Το PC πληκτρολόγιο δημιουργεί ένα χαρακτήρα κάθε φορά που πατιέται μια πλήκτρο. Όταν απελευθερώνεται το πλήκτρο, ο χαρακτήρας δημιουργείται ξανά με έναν προηγούμενο χαρακτήρα 240 (F0 hex). Υπάρχουν επίσης επεκτεινόμενα πλήκτρα που χρησιμοποιούν τον χαρακτήρα 224 (E0 hex). Μπορείς να διαβάσεις περισσότερα σχετικά με αυτό στο σύντομο πρωτόκολλο του πληκτρολογίου PS/2.
  2. Παρόλο που το hardware keylogger έχει 64 kB μνήμη, αυτό δεν σημαίνει ότι μπορούν να αποθηκευτούν 64 χιλιάδες πατήματα πλήκτρων. Μια ακολουθία πατήματος-απελευθέρωσης απαιτεί 3 bytes για ένα πρότυπο πλήκτρο και 5 bytes για ένα επεκτεινόμενο πλήκτρο. Η καταγραφή έχει βελτιωθεί στις εμπορικές εκδόσεις.

Υπόβαθρο

Ανοικτού κώδικα DIY hardware keylogger - Γραμμές σήματος PS/2

Αν κόψετε ένα καλώδιο πληκτρολογίου PS/2, πιθανότατα θα βρείτε 6 καλώδια μέσα. Μόνο 4 από αυτά είναι χρήσιμα. Δύο από αυτά είναι γραμμές τροφοδοσίας: γη (GND) και +5 βολτ (VCC) από την τροφοδοσία ρεύματος του υπολογιστή. Τα άλλα δύο καλώδια είναι γραμμές ασύγχρονης μετάδοσης: η γραμμή δεδομένων (DATA) και η γραμμή ρολογιού (CLK). Μπορείτε να δείτε πώς αυτές οι γραμμές αντιστοιχούν στους ακροδέκτες σύνδεσης DIN (α) και miniDIN (β) στο σχήμα δεξιά. Η μετάδοση είναι διαδρομική, ωστόσο το πληκτρολόγιο είναι ανώτερο. Το πληκτρολόγιο στέλνει πληροφορίες σχετικά με τα πλήκτρα που έχουν πατηθεί και απελευθερωθεί. Το κομμάτι δεδομένων αποτελείται μόνο από ένα byte, προηγούμενο από ένα bit εκκίνησης και ακολουθούμενο από ένα bit περιττής και ένα bit τερματισμού. Το πληκτρολόγιο τοποθετεί διαδοχικά bits στη γραμμή DATA και τα ρολογίζει με αρνητικές παλμικές στη γραμμή CLK. Η συχνότητα του ρολογιού είναι 10...30 kHz. Αυτό θα ήταν ένα πολύ ωραίο σειριακό πρωτόκολλο αν δεν ήταν για τον υπολογιστή, ο οποίος περιστασιακά θέλει να στείλει πληροφορίες στο πληκτρολόγιο. Σε τέτοιες περιπτώσεις, ο Η/Υ τραβά τη γραμμή CLK χαμηλά για κάποιο χρονικό διάστημα και περιμένει το πληκτρολόγιο να αρχίσει να παράγει παλμούς. Όταν αυτοί οι παλμοί ξεκινούν, ρολογίζει το δικό του χαρακτήρα στη γραμμή DATA. Μπορείτε να δείτε διαγράμματα καταστάσεων μεταξύ πληκτρολογίου και υποδοχής (α) και από υποδοχή προς πληκτρολόγιο (β) στο σχήμα παρακάτω. Αυτό το πρωτόκολλο έχει φυσικά μερικές εξαιρέσεις, όπως η διακοπή μιας μετάδοσης, επανάληψη χαρακτήρα κλπ. Ωστόσο, αυτές είναι πολύ σπάνιες περιπτώσεις.

Ανοικτού κώδικα DIY hardware keylogger - κυματομορφές

Δεδομένα λεωφορείου

Τι ακριβώς μεταδίδεται μέσω των γραμμών του πληκτρολογίου; Κατά την εκκίνηση, τόσο το πληκτρολόγιο όσο και ο υπολογιστής στέλνουν δεδομένα ενημέρωσης, επιβεβαιώνοντας ότι είναι σε καλή κατάσταση. Όταν ο υπολογιστής λειτουργεί κανονικά, μόνο το πληκτρολόγιο στέλνει δεδομένα. Αυτά είναι δεδομένα για κάθε γεγονός που συνέβη. Ένα γεγονός θεωρείται η πίεση ή απελευθέρωση ενός πλήκτρου. Εάν πατηθεί ένα τυπικό πλήκτρο, στέλνεται το λεγόμενο "scancode". Κάθε πλήκτρο έχει ακριβώς ένα scancode, δημιουργώντας ένα χάρτη scancodes. Εάν απελευθερωθεί ένα πλήκτρο, πρώτα στέλνεται το ειδικό byte 240 (F0 hex), και στη συνέχεια στέλνεται το scancode των πλήκτρων. Έτσι, μια τυπική πατημένη πλήκτρολόγηση προκαλεί την αποστολή 3 χαρακτήρων μέσω της γραμμής. Εάν ένα πλήκτρο κρατηθεί πατημένο για κάποιο χρονικό διάστημα, το scancode του θα δημιουργείται συνεχώς με την ορισμένη καθυστέρηση επανάληψης. Όταν τελικά απελευθερωθεί, θα σταλεί το χαρακτήρα 240 (F0 hex), ακολουθούμενο από το scancode. Αυτό θα ήταν ακόμα ένα ωραίο πρωτόκολλο αν δεν υπήρχαν μερικά ειδικά πλήκτρα στο τυπικό πληκτρολόγιο του Η/Υ, όπως το Home, το End, τα βέλη, κ.λπ. Όταν πατιέται ένα ειδικό πλήκτρο, παράγεται το byte 224 (E0 hex), ακολουθούμενο από τον κωδικό σάρωσης. Όταν απελευθερώνεται ένα ειδικό πλήκτρο, εκτοξεύεται η ακολουθία 224, 240 (E0, F0), ακολουθούμενη από τον κωδικό σάρωσης. Τα κανονικά και τα ειδικά πλήκτρα είναι κοινά για όλες τις εθνικές διατάξεις πληκτρολογίων με βάση τον χάρτη κωδικών σάρωσης. Για να κάνουμε την ιστορία λίγο πιο περίπλοκη, υπάρχουν δύο υπερ-ειδικά πλήκτρα, το Print Screen και το Pause, τα οποία προκαλούν μια ολόκληρη ακολουθία κωδικών σάρωσης να μεταδίδεται. Για ένα διεπαφή πληκτρολογίου, είναι καλύτερο να προσποιούμαστε ότι αυτά τα πλήκτρα δεν υπάρχουν.

Καταγραφή δεδομένων

Ο μικροελεγκτής παρακολουθεί συνεχώς τις γραμμές DATA και CLK, αποκτώντας όλα τα δεδομένα. Τα δεδομένα καταγράφονται στη μη-εύκαμπτη μνήμη EEPROM καθώς περνούν από τη γραμμή. Χάρη σε αυτό, ο χρήστης μπορεί αργότερα να μάθει για κάθε γεγονός στο πληκτρολόγιο. Όταν ο χρήστης αποφασίζει ότι η εγγραφή έχει τελειώσει και πατάει το κουμπί, το hardware keylogger μεταβαίνει σε λειτουργία αναπαραγωγής. Το πληκτρολόγιο πρέπει να είναι αποσυνδεδεμένο, διαφορετικά θα ερμηνεύσει τη ροή δεδομένων. Ο keylogger αρχίζει να προσομοιώνει δεδομένα πλήκτρων από την εσωτερική μνήμη υλικού. Η εφαρμογή KeyGrab πρέπει να είναι ενεργή, για να επεξεργαστεί τη ροή δεδομένων από το hardware του keylogger. Τα κανονικά πλήκτρα προσομοιώνονται όπως αν είχαν γραφτεί στη μνήμη, ενώ τα ειδικά πλήκτρα μεταδίδονται χρησιμοποιώντας έναν διψήφιο εξαδικαδικό κωδικό.