
مسجل مفاتيح Win32 يدعم جميع اللغات (غير المستخدمة لـ IME) بشكل صحيح.
يحتوي هذا المستودع على الكود المرتبط بهذه المقالة التي نتحدث فيها عن بناء keylogger لنظام Win32 يدعم جميع اللغات التي لا تستخدم محررات أسلوب الإدخال (IME).
تم إجراء جميع الاختبارات على 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
في نظام Windows، اكتب أحد هذه الأوامر، بافتراض أن ملفات exe قد وُضعت على سطح المكتب:
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
لتفريغ محتويات ملف DLL إلى json:
c:\Users\user\Desktop> dmp.exe kbdfr > kbdfr.json
لإعادة حقن ضغطات المفاتيح:
c:\Users\user\Desktop> python replayer.py keylog1.jsonl > keylog1_ref.txt
لإعادة بناء النص من ضغطات المفاتيح (والتحقق من النتائج)
$ python3 reconstruct.py -v -l kbdfr.dll -c keylog1_ref.txt keylog1.jsonl