Keelog a décidé de publier le projet de la version précédente du keylogger matériel tout en mettant à votre disposition la version pleine du micrologiciel, des codes source du logiciel, les schémas électriques ainsi que la documentation. Le Keylogger Matériel Open Source est un keylogger PS/2 fiable à 100%, testé, assemblé et utilisé par des centaines de personnes dans le monde entier. Son fonctionnement ressemble à celui de la version KeyGrabber PS/2. Une application spéciale, KeyGrab, sert à récupérer et analyser les données du keylogger. Nous vous rappelons néanmoins que le Keylogger Matériel Open Source a été publié " en l'état ", avec tous les vices et sans aucune garantie.

Keylogger Matériel Open Source

Avant de commencer, vérifiez à l'aide de cette liste si vous disposez de tous les outils et savoir faire nécessaires à réaliser le projet de Keylogger Matériel Open Source :

  • expérience de base dans le domaine de l'électronique (principalement en ce qui concerne le matériel)
  • fer à souder les circuits intégrés
  • programmateur de microcontrôleurs (adapté à la famille Atmel AT89CXX51)
Keylogger Matériel Open Source - composants

Les composants suivants sont indispensables pour réaliser ce projet :

  • microcontrôleur Atmel AT89C2051 (ou AT89C1051, AT89C4051)
  • mémoire EEPROM de type AT24C512 (ou compatible)
  • quartz 12 MHz
  • 2x condensateur 33p
  • condensateur 10 uF
  • résistor 10 k
  • un petit bouton
Keylogger Matériel Open Source - connecteurs femelle et mâle PS/2 (p.ex. d'un câble)

Il est aussi nécessaire de créer une protection du keylogger. Une astuce : achetez une rallonge PS/2 et quelques centimètres de gaine thermorétractable dont vous pourrez envelopper thermiquement le keylogger assemblé.

Programmez tout d'abord le microcontrôleur du keylogger. Démarrez l'application du programmateur, sélectionnez le microcontrôleur AT89C2051 et chargez le programme en utilisant la version binaire ou la version hexadécimale du code. Si vous avez des doutes, vous pouvez aussi recompiler le code source en utilisant un compilateur approprié à la famille 8051. Le brasage est probablement l'étape la plus complexe qui demande le plus de temps parce que le keylogger matériel doit avoir les moindres dimensions possibles. Le schéma électrique du Keylogger Matériel Open Source ci-dessous montre comment raccorder les circuits intégrés.

Keylogger Matériel Open Source - expérience de base dans le domaine de l'électronique (principalement en ce qui concerne le matériel)

Brasez les composants en commençant par le microcontrôleur et la mémoire EEPROM. Vous pouvez enlever les broches non utilisées. Assurez-vous d'avoir laissé l'accès au bouton. Pendant le montage des condensateurs, assurez-vous qu'ils ont été correctement polarisés.

Keylogger Matériel Open Source - brasage

L'appareil doit être le plus petit possible, sans espaces inutiles entre les éléments. Il faut néanmoins éviter les courts circuits qui seront après difficiles à supprimer. Après avoir brasé les principaux éléments, le keylogger matériel doit ressembler à celui de la photo.

Keylogger Matériel Open Source - connecteurs

Le montage des connections PS/2 femelle et mâle doit se faire à la fin. Nous vous proposons de couper en deux une rallonge PS/2 et de braser les conducteurs de chacun des deux morceaux. N'oubliez pas de mettre une gaine thermorétractable sur l'un des morceaux avant le brasage. Brasez toutes les quatre lignes PS/2 utilisées (CLK, DATA, VCC et GND) aux connecteurs femelle et mâle (qui seront branchés au clavier et à l'ordinateur).

Keylogger Matériel Open Source

Avant d'envelopper thermiquement le keylogger de la gaine thermorétractable, nous vous proposons de placer un peu de colle ou de résine entre les éléments pour rendre plus rigide toute la construction. Pour terminer, faites chauffer la gaine thermorétractable pour qu'elle enveloppe le keylogger et découpez un petit orifice pour avoir l'accès au bouton..

Le Keylogger Matériel Open Source commence à enregistrer les données du clavier dès qu'il est branché entre l'ordinateur et le clavier. Ce keylogger est absolument " transparent " : il n'influence aucunement le fonctionnement de l'ordinateur ou du clavier, il ne peut pas être détecté par le logiciel. Toutes les données du clavier sont enregistrées dans la mémoire non-volatile EEPROM de 64ko. Le mode enregistrement est indépendant du type du système d'exploitation installé sur l'ordinateur.

Keylogger Matériel Open Source - installation 1

Trouvez le connecteur PS/2 du clavier sur l'ordinateur.

Keylogger Matériel Open Source - installation 2

Débranchez le clavier.

Keylogger Matériel Open Source - installation 3

Branchez le keylogger matériel à l'emplacement du clavier.

Keylogger Matériel Open Source - installation 4

Branchez le clavier au keylogger. Le mode enregistrement démarrera dès la mise sous tension de l'ordinateur.

Les frappes de clavier sauvegardées grâce au mode enregistrement peuvent être récupérées sur n'importe quel ordinateur PC avec le système d'exploitation Windows 9X/Me/XP/2000. Le keylogger matériel le fait en simulant l'envoi des frappes par le clavier. Les données transmises sont acquises par l'application KeyGrab. Après avoir récupéré toutes les données par l'ordinateur, celles-ci peuvent être traitées ou analysées. Les instructions ci-dessous expliquent comment initier le mode de récupération des données du keylogger.

Keylogger Matériel Open Source - Mode enregistrement 1

Lancez l'application KeyGrab.

Keylogger Matériel Open Source - Mode enregistrement 2

Branchez le keylogger matériel à l'emplacement du clavier. Ne branchez pas de clavier.

Keylogger Matériel Open Source - Mode enregistrement 3

Cliquez sur la barre de titre KeyGrab de l'application pour l'activer.

Keylogger Matériel Open Source - Mode enregistrement 4

Appuyez sur le bouton du keylogger pour initier la transmission des données. Ne pas changer d'application active pendant la transmission. Réappuyez le bouton pour terminer la récupération. Il faut le faire quand les données souhaitées seront déjà récupérées.

Keylogger Matériel Open Source - Mode enregistrement 5

Débranchez le keylogger matériel et rebranchez le clavier PS/2.

Pendant leur chargement dans le tableau principal de l'application KeyGrab, les données sont automatiquement traitées de la manière à ce qu'on puisse voir les touches frappées en mode enregistrement. Ces données sont transmises dans l'ordre opposé à celui dans lequel elles ont été enregistrées pour faire voir au début les données les plus récentes. Vous pouvez les analyser manuellement ou vous servir des options de recherche.

Keylogger Matériel Open Source - Analyse de données

1 - Position dans la mémoire occupée par la donnée captée (format hexa).
2 - Frappe captée.
3 - Événement : touche pressée ou relâchée.
4 - Scancode de la touche sur le bus PS/2 (format hexa).
5 - Dernière position enregistrée dans la mémoire (format hexa).
6 - Taille de la mémoire non-volatile EEPROM (en kilooctets).

L'utilisateur sera le plus intéressé par les colonnes Frappe (2) et Événement (3). On y trouve les informations sur les caractères frappés. En faisant glisser la barre de défilement, on peut reconstruire l'historique du texte entré en mode enregistrement. Les données du keylogger sont transmises dans l'ordre opposé à celui dans lequel elles ont été enregistrées (les plus récentes tout au début).

Application pour récupérer et analyser les données du Keylogger Matériel Open Source pour Windows 9X/ME/2000/XP:
KeyGrab.zip (0.7MB)

Code source entier pour le microcontrôleur AT89C2051 :
Code source - diy.asm

Micrologiciel compilé pour le microcontrôleur AT89C2051 :
fichier BIN - diy.bin, fichier HEX - diy.hex

Keylogger Matériel Open Source - KeyGrab

Nous vous invitons à prendre connaissance des informations ci-dessous qui peuvent vous éviter de nombreux problèmes liés à l'utilisation du keylogger matériel.

Responsabilité juridique

  1. Chaque pays à sa propre législation en matière de journalisation des données du clavier. L'ignorance de la loi n'autorise personne à ne pas l'observer. Veuillez prendre connaissance de l'Accord d'Utilisateur.
  2. La société Keelog décline toute responsabilité des dommages et préjudices survenus suite à l'utilisation de ce keylogger matériel.
  3. Le Keylogger Matériel Open Source ne doit pas être utilisé afin d'intercepter d'une manière illégale les données d'autrui notamment les mots de passe, les coordonnées bancaires, la correspondance confidentielle etc. Cela constitue une violation de la loi dans la plupart des pays.

Journalisation des données

  1. Ce keylogger matériel a 64 ko de mémoire non volatile de type EEPROM. Une fois pleine, l'écriture se fera à partir du premier emplacement de mémoire. Les données les plus anciennes seront perdues.
  2. Les premiers 128 octets de mémoire sont réservés aux données de configuration, notamment à la sauvegarde de la dernière adresse d'accès mémoire. Cette adresse du dernier accès mémoire est mise à jour toutes les 10 secondes.
  3. Ne laissez pas le keylogger matériel connecté en mode enregistrement si cela n'est pas nécessaire. Cela fait inutilement remplir la mémoire ce qui risque de faire effacer des données antérieures importantes.

Transmission de données

  1. Pour récupérer les données du keylogger matériel, vous avez besoin d'un ordinateur PC d'au moins 100 MHz avec le système d'exploitation Windows 9X/Me/XP/2000.
  2. Le keylogger matériel transmet les données vers l'ordinateur en simulant le clavier. C'est la raison pour laquelle le clavier réel doit être débranché pendant la transmission.
  3. Pendant la transmission des données KeyGrab doit être l'application active. Sinon, le système Windows ou une autre application tenteront d'interpréter les frappes arrivantes.
  4. Les données stockées en mode enregistrement sont récupérées dans l'ordre opposé à celui dans lequel elles ont été enregistrées pour faire voir les données les plus récentes au début de la transmission. Il faut attendre jusqu'à la fin de tout ce processus pour récupérer celles qui sont les plus anciennes. Cela peut durer jusqu'à 20 minutes.
  5. La transmission des données doit être terminée en appuyant une seconde fois sur le bouton. Il faut le faire quand les données commenceront à se doubler.

Fonctionnement du clavier PS/2

  1. Le fonctionnement du clavier de type PS/2 est plus compliqué qu'on pourrait le croire. On peut l'apercevoir en analysant les données brutes stockées par le keylogger matériel. À chaque frappe, le clavier génère un caractère dit " scancode ". Une fois la touche relâchée, ce caractère est généré encore une fois mais précédé cette fois-ci du code 240 (hex F0). Il y a encore les touches spéciales qui utilisent le code 224 (hex E0). Vous en trouverez plus d'informations dans le service Protocole du clavier PS/2.
  2. Le Keylogger Matériel Open Source a 64 ko de mémoire mais cela ne veut pas dire qu'il peut mémoriser 64 mille frappes. Une séquence de pression et de relâchement d'une touche correspond à 3 octets pour une touche standard et 5 octets pour une touche spéciale. La journalisation a été considérablement optimisée dans les versions commerciales.

Introduction

Keylogger Matériel Open Source - signaux du bus PS/2

Si vous coupiez le câble du clavier PS/2, vous y trouveriez probablement 6 conducteurs. Seuls 4 d'entre eux sont signifiants. Deux d'entre eux sont des conducteurs d'alimentation électrique de l'ordinateur : mise à la masse (GND) et +5 Volts (VCC). Les deux autres c'est la transmission asynchrone de données : ligne de données (DATA) et ligne d'horloge (CLK). La figure à droite montre comment ces lignes correspondent aux broches du connecteur DIN (a) et miniDIN (b). La transmission est bidirectionnelle mais c'est le clavier qui joue le rôle prépondérant. Il envoie l'information sur le nombre des pressions et des relâchements des touches. Un morceau de données contient seulement un octet précédé d'un bit de début et terminé par un bit de parité et par un bit de fin. Le clavier introduit les bits suivants sur la ligne de données DATA et les cadence par des impulsions négatives de la ligne d'horloge. La fréquence de cadencement est de 10...30 kHz. Ce protocole aurait été simple et élégant si l'ordinateur n'avait pas eu de temps en temps besoin d'envoyer une donnée vers le clavier. La ligne d'horloge CLK atteint alors zéro pour un certain temps et attend à ce que le clavier commence à générer des impulsions. Quand les impulsions commencent, le contrôleur de l'ordinateur se met à envoyer ses propres données par la ligne DATA. Les diagrammes ci-dessous montrent les voies de transmission : (a) à partir du clavier vers l'ordinateur, (b) à partir de l'ordinateur vers le clavier. Ce protocole possède, bien sûr, quelques exceptions et difficultés comme par exemple l'interruption de transmissions, répétition du caractère etc. Ceci est néanmoins relativement rare.

Keylogger Matériel Open Source - voies de transmission

Données du bus

Quelles données sont donc transmises réellement par le câble du clavier ? Au démarrage, le clavier et l'ordinateur envoient des données d'initialisation en informant de leur statut. Lors d'un fonctionnement normal de l'ordinateur, seul le clavier envoie des données. Elles concernent chaque événement survenu sur le clavier. Un événement c'est une pression et un relâchement de touche. Si une touche est frappée, son "scancode" est envoyé. Chaque touche correspond à exactement un scancode ce qui crée une table des scancodes. Si la touche est relâchée, un octet spécial, 240 (hex F0), est d'abord envoyé suivi du scancode de la touche. Une frappe standard fera donc envoyer 3 octets. Si une touche reste plus longtemps pressée, son scancode sera répété à la fréquence de répétition préréglée. Une fois relâchée, l'octet 240 sera envoyé suivi du scancode. Ce protocole serait quand même resté simple et agréable s'il n'y avait pas eu de touches spéciales comme Début, Fin, touches directionnelles etc. Quand une touche spéciale est pressée, un octet 224 (hex E0) est d'abord envoyé, suivi de son scancode. Si cette touche spéciale est relâchée, une séquence : 224, 240 (hex E0, F0) est d'abord envoyée, suivie ensuite du scancode de la touche. Les touches standard et spéciales sont les mêmes dans toutes les dispositions des claviers nationaux conformément à la table des scancodes. Pour encore compliquer notre histoire, rappelons qu'il y a deux touches " super spéciales " : Print Screen et Pause qui font envoyer toute une suite de codes. Le mieux est d'ignorer l'existence de ces deux touches.

Journalisation des données

Le microcontrôleur surveille sans arrêt les lignes DATA et CLK en captant toutes les données. Elles sont enregistrées directement par la mémoire non-volatile EEPROM sans aucune analyse. Grâce à cela, l'utilisateur pourra ensuite connaître tous les événements survenus sur le clavier. Quand l'utilisateur décide de terminer le captage des données et appuie sur le bouton, le keylogger matériel passe au mode récupération. Le clavier doit être débranché sinon, il commencera à interpréter le flux de données. Le keylogger se met alors à transmettre les données de la mémoire interne en simulant le clavier. L'application KeyGrab doit être l'application active dans le système afin d'interpréter le flux des données du keylogger matériel. Les touches standard sont envoyées directement à l'aide du scancode ; les touches spéciales, à l'aide d'un code de deux octets.