Я создал кейлоггер на C, который отображает значения необработанных ключей с устройства ввода. Мне интересно, как я собираюсь расшифровать значения hese в символах ascii? Вот мой код:
#include <stdio.h>
#include <fcntl.h>
#include <linux/input.h>
#include <unistd.h>
#include <signal.h>
#include <stdlib.h>
void INThandler(){
exit(0);
}
int main()
{
char devname[] = "/dev/input/event3";
int device = open(devname, O_RDONLY);
struct input_event ev;
signal(SIGINT, INThandler);
while(1)
{
read(device,&ev, sizeof(ev));
if(ev.type == 1 && ev.value == 1){
printf("Key: %i State: %i\n",ev.code,ev.value);
}
}
}
Результат:
Key: 32 State: 1
Key: 42 State: 1
Key: 29 State: 1
Я знаю, что эти значения являются порядковыми числами для размещения клавиш на клавиатурном устройстве и не являются ascii-кодами, так есть ли какой-то системный файл, содержащий инструкции для преобразования? Я не хочу делать преобразование вручную, потому что он будет другим для всех клавиатурных устройств.
Спасибо, любая помощь приветствуется