Keelog αποφάσισε να κυκλοφορήσει μια πρώιμη έκδοση της οικογένειας hardware keylogger στον δημόσιο τομέα, συμπεριλαμβανομένου του πλήρους κώδικα πηγαίου κώδικα και λογισμικού, ηλεκτρικών σχεδίων υλικού keylogger και τεκμηρίωσης. Αυτό το key logger της PS/2 είναι μια συσκευή 100% λειτουργική και δοκιμασμένη, συναρμολογημένη και χρησιμοποιημένη από εκατοντάδες ανθρώπους σε όλο τον κόσμο. Η λειτουργία αυτού του hardware key logger είναι παρόμοια με το KeyGrabber PS/2. Παρέχουμε την εφαρμογή KeyGrab για την ανάκτηση και ανάλυση των καταγεγραμμένων πληκτρολογήσεων. Ωστόσο, παρακαλούμε σημειώστε ότι αυτό το έργο DIY hardware keylogger παρέχεται ως έχει, με όλα τα ελαττώματα, και χωρίς καμία εγγύηση.
Πριν ξεκινήσετε, πηγαίνετε σε αυτήν τη λίστα για να ελέγξετε αν έχετε όλα τα εργαλεία και τις δεξιότητες που απαιτούνται για την ολοκλήρωση αυτού του έργου keylogger υλικού:
Τα ακόλουθα εξαρτήματα απαιτούνται για το έργο keylogger υλικού:
Τέλος, απαιτείται η επένδυση για το hardware keylogger. Μια καλή ιδέα είναι να αγοράσετε ένα καλώδιο επέκτασης PS/2 και ένα κομμάτι 4 ιντσών θερμοσυστεγνούς σωλήνα, το οποίο μπορεί να τυλιχτεί θερμικά γύρω από το έτοιμο keylogger.
Προγραμματίστε πρώτα το firmware του μικροελεγκτή keylogger. Εκκινήστε το λογισμικό προγραμματιστή σας, επιλέξτε το AT89C2051 και κάψτε τη μνήμη flash με το δυαδικό αρχείο ή τη εξαδική έκδοση. Μπορείτε επίσης να επαναμεταγλωττίσετε τον πηγαίο κώδικα χρησιμοποιώντας το πηγαίο κώδικα και έναν μεταγλωττιστή 8051. Η συγκόλληση είναι πιθανώς το πιο δύσκολο μέρος του έργου, καθώς το υλικό keylogger πρέπει να γίνει όσο το δυνατόν μικρότερο. Τα παρακάτω σχέδια υλικού keylogger δείχνουν πώς πρέπει να γίνουν οι συνδέσεις μεταξύ των στοιχείων.
Κόψτε τα εξαρτήματα μαζί ξεκινώντας από το μικροελεγκτή και το EEPROM. Οι αχρησιμοποίητοι ακροδέκτες IC μπορούν να αφαιρεθούν. Βεβαιωθείτε ότι το πλήκτρο πιέσεως είναι προσβάσιμο. Όταν τοποθετείτε τον πυκνωτή, βεβαιωθείτε ότι είναι πολικοποιημένος σωστά.
Κάντε το hardware keylogger όσο το δυνατόν πιο συμπαγές, αλλά αποφύγετε τις βραχυκυκλώσεις. Θα είναι δύσκολο να αφαιρεθούν μετά την ολοκλήρωση της συσκευής. Το κύκλωμα του keylogger θα πρέπει να μοιάζει κάπως με το πρωτότυπο που φαίνεται στη φωτογραφία, μετά τη σύνδεση των κύριων συστατικών.
Τέλος, κόψτε τους συνδέσμους PS/2 στο keylogger. Μια καλή ιδέα είναι να κόψετε το καλώδιο επέκτασης PS/2 σε δύο κομμάτια και να κολλήσετε κάθε μέρος ξεχωριστά. Βεβαιωθείτε ότι τοποθετείτε το σωλήνα θερμοσυστολήσεως σε ένα μέρος του καλωδίου. Συνδέστε όλες τις τέσσερις χρησιμοποιημένες παροχές PS/2 (CLK, DATA, VCC και GND) σε και τους δύο συνδέσμους (στο πληκτρολόγιο και στον υπολογιστή).
Πριν τραβήξετε το θερμικό σωλήνα γύρω από το hardware keylogger, είναι μια καλή ιδέα να αφήσετε λίγο κόλλα ή ρητίνη μεταξύ των συστατικών, για να καταστήσετε τη συσκευή πιο σταθερή. Τέλος, τραβήξτε το θερμικό σωλήνα, ζεστάνετέ το μέχρι να τυλιχτεί γύρω από τα κολλημένα στοιχεία, και κόψτε ένα μικρό τρύπημα ώστε το κουμπί να είναι προσβάσιμο.
Το hardware keylogger ξεκινά την εγγραφή δεδομένων πλήκτρων αφού συνδεθεί μεταξύ του πληκτρολογίου και του υπολογιστή. Ο keylogger είναι εντελώς διαφανής για τη λειτουργία του υπολογιστή και δεν μπορεί να ανιχνευθεί από το λογισμικό σε λειτουργία εγγραφής. Όλα τα δεδομένα πλήκτρων που στέλνονται από το πληκτρολόγιο θα καταγραφούν στη μνήμη EEPROM μη αποσβέσιμης 64 kB υλικού. Η λειτουργία εγγραφής είναι πλήρως ανεξάρτητη από το λειτουργικό σύστημα που είναι εγκατεστημένο στον υπολογιστή.
Βρείτε τον συνδετήρα PS/2 στον υπολογιστή.
Αποσυνδέστε το πληκτρολόγιο.
Συνδέστε τον keylogger υλικού στη θέση του πληκτρολογίου.
Συνδέστε το πληκτρολόγιο στο keylogger. Κατά την ενεργοποίηση του υπολογιστή, η εγγραφή δεδομένων θα ξεκινήσει.
Μόλις το hardware keylogger έχει καταγράψει δεδομένα πλήκτρων, μπορούν να ανακτηθούν σε οποιονδήποτε Η/Υ που εκτελεί Windows 9X/Me/XP/2000. Το hardware keylogger κάνει αυτό προσομοιώντας πατήματα πληκτρολογίου. Τα μεταδιδόμενα δεδομένα πλήκτρων αποκτώνται από την εφαρμογή KeyGrab. Μόλις αυτά τα δεδομένα έχουν μεταδοθεί στον υπολογιστή, μπορούν να επεξεργαστούν και να αναλυθούν. Ακολουθήστε τις οδηγίες για την έναρξη λήψης δεδομένων.
Εκτελέστε την εφαρμογή KeyGrab.
Συνδέστε το hardware keylogger αντί του πληκτρολογίου. Μη συνδέετε το πληκτρολόγιο.
Κάντε κλικ στη γραμμή τίτλου KeyGrab για να την κάνετε την ενεργή εφαρμογή.
Πατήστε το κουμπί στο keylogger υλικού για να ξεκινήσετε τη λήψη δεδομένων. Μην αλλάξετε την ενεργή εφαρμογή κατά τη μετάδοση. Πατήστε ξανά το κουμπί για να ολοκληρωθεί η μετάδοση. Κάντε αυτό όταν τα επιθυμητά δεδομένα πληκτρολόγησης έχουν ληφθεί στον Η/Υ.
Αποσυνδέστε το hardware keylogger και συνδέστε ξανά το πληκτρολόγιο PS/2 σας.
Κατά τη λήψη δεδομένων πληκτρολόγησης στον κύριο πίνακα KeyGrab, αυτά επεξεργάζονται αυτόματα για να εμφανίζουν δεδομένα πλήκτρων που καταγράφηκαν κατά την εγγραφή. Τα δεδομένα μεταδίδονται με φθίνουσα σειρά, για να εμφανίζονται πρώτα τα πιο πρόσφατα πατημένα πλήκτρα. Οι πληκτρολογήσεις που έγιναν πριν από πολύ καιρό μεταδίδονται αργότερα. Μπορείτε να αναλύσετε τον πίνακα χειροκίνητα ή να χρησιμοποιήσετε μερικές από τις επιλογές αναζήτησης.
Η μοναδική στήλη που ενδιαφέρει τον χρήστη είναι το Κλειδί (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
Σας ενθαρρύνουμε να διαβάσετε αυτήν την ενότητα για να αποφύγετε προβλήματα που μπορεί να προκύψουν κατά τη χρήση του hardware keylogger.
Αν κόψετε ένα καλώδιο πληκτρολογίου PS/2, πιθανότατα θα βρείτε 6 καλώδια μέσα. Μόνο 4 από αυτά είναι χρήσιμα. Δύο από αυτά είναι γραμμές τροφοδοσίας: γη (GND) και +5 βολτ (VCC) από την τροφοδοσία ρεύματος του υπολογιστή. Τα άλλα δύο καλώδια είναι γραμμές ασύγχρονης μετάδοσης: η γραμμή δεδομένων (DATA) και η γραμμή ρολογιού (CLK). Μπορείτε να δείτε πώς αυτές οι γραμμές αντιστοιχούν στους ακροδέκτες σύνδεσης DIN (α) και miniDIN (β) στο σχήμα δεξιά. Η μετάδοση είναι διαδρομική, ωστόσο το πληκτρολόγιο είναι ανώτερο. Το πληκτρολόγιο στέλνει πληροφορίες σχετικά με τα πλήκτρα που έχουν πατηθεί και απελευθερωθεί. Το κομμάτι δεδομένων αποτελείται μόνο από ένα byte, προηγούμενο από ένα bit εκκίνησης και ακολουθούμενο από ένα bit περιττής και ένα bit τερματισμού. Το πληκτρολόγιο τοποθετεί διαδοχικά bits στη γραμμή DATA και τα ρολογίζει με αρνητικές παλμικές στη γραμμή CLK. Η συχνότητα του ρολογιού είναι 10...30 kHz. Αυτό θα ήταν ένα πολύ ωραίο σειριακό πρωτόκολλο αν δεν ήταν για τον υπολογιστή, ο οποίος περιστασιακά θέλει να στείλει πληροφορίες στο πληκτρολόγιο. Σε τέτοιες περιπτώσεις, ο Η/Υ τραβά τη γραμμή CLK χαμηλά για κάποιο χρονικό διάστημα και περιμένει το πληκτρολόγιο να αρχίσει να παράγει παλμούς. Όταν αυτοί οι παλμοί ξεκινούν, ρολογίζει το δικό του χαρακτήρα στη γραμμή DATA. Μπορείτε να δείτε διαγράμματα καταστάσεων μεταξύ πληκτρολογίου και υποδοχής (α) και από υποδοχή προς πληκτρολόγιο (β) στο σχήμα παρακάτω. Αυτό το πρωτόκολλο έχει φυσικά μερικές εξαιρέσεις, όπως η διακοπή μιας μετάδοσης, επανάληψη χαρακτήρα κλπ. Ωστόσο, αυτές είναι πολύ σπάνιες περιπτώσεις.
Τι ακριβώς μεταδίδεται μέσω των γραμμών του πληκτρολογίου; Κατά την εκκίνηση, τόσο το πληκτρολόγιο όσο και ο υπολογιστής στέλνουν δεδομένα ενημέρωσης, επιβεβαιώνοντας ότι είναι σε καλή κατάσταση. Όταν ο υπολογιστής λειτουργεί κανονικά, μόνο το πληκτρολόγιο στέλνει δεδομένα. Αυτά είναι δεδομένα για κάθε γεγονός που συνέβη. Ένα γεγονός θεωρείται η πίεση ή απελευθέρωση ενός πλήκτρου. Εάν πατηθεί ένα τυπικό πλήκτρο, στέλνεται το λεγόμενο "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. Τα κανονικά πλήκτρα προσομοιώνονται όπως αν είχαν γραφτεί στη μνήμη, ενώ τα ειδικά πλήκτρα μεταδίδονται χρησιμοποιώντας έναν διψήφιο εξαδικαδικό κωδικό.