
Keylogger Win32 qui prend en charge correctement toutes les langues (n'utilisant pas l'IME)
Ce dépôt contient le code associé à cet article dans lequel nous parlons de la création d'un keylogger win32 qui prend en charge toutes les langues n'utilisant pas d'éditeurs de méthode de saisie.
Tous les tests ont été effectués sous Windows 10 (22h2).
. # keylog code
├── cap_gks.c # sample keylogger using GetKeyState()
├── cap_llh.c # sample keylogger using SetWindowsHookEx(WH_KEYBOARD_LL)
├── cap_rid.c # sample keylogger using GetRawInputData()
├── process.c # retrieve key-strokes context
├── process.h
├── vk_names.h # virtual key to string (name) macro
│
│ # processing code
├── dumper.cpp # program to dump windows KBD*.DLL contents to json
├── kbdhdr.h # slightly modified windows headers
├── reconstruct.py # reconstructs character stream from keylogs
├── replayer.py # win32 python program to replay scan codes and extract resulting characters
│
│ # various
├── kbdlmap.py # KLID to dll name mapping
├── vk_names.py # virtual key number to/from name
├── Makefile # build keylogger with mingw-w64
│
│ # external dependencies
├── extern
│ └── json.hpp # by Niels Lohmann from https://github.com/nlohmann/json
│
│ # json files
├── inputs # input test cases
└── layouts # output of dumper on all win32 kbd*.dll
$ sudo apt install mingw-w64 python3
Sous Windows, tapez l'une de ces commandes, en supposant que l'exécutable a été déposé sur le bureau :
c:\Users\user\Desktop> cap_gks.exe > keylog1.jsonl
c:\Users\user\Desktop> cap_llh.exe > keylog2.jsonl
c:\Users\user\Desktop> cap_rid.exe > keylog3.jsonl
Pour extraire le contenu d'une DLL au format json :
c:\Users\user\Desktop> dmp.exe kbdfr > kbdfr.json
Pour réinjecter les frappes clavier :
c:\Users\user\Desktop> python replayer.py keylog1.jsonl > keylog1_ref.txt
Pour reconstruire le texte à partir des frappes (et vérifier les résultats) :
$ python3 reconstruct.py -v -l kbdfr.dll -c keylog1_ref.txt keylog1.jsonl