Ich habe versucht, einen Keylogger auf Ubuntu 16.04LTS für eine Weile jetzt zu machen, und das ist, was ich bisher:Kann nicht erfassen Tastenanschläge in C [Ubuntu 16.04LTS]
#include <stdio.h>
#include <fcntl.h>
#include <linux/input.h>
#include <stdbool.h>
int main()
{
char devname[] = "/dev/input/event0";
int device = open(devname, O_RDONLY);
struct input_event ev;
bool logging = true;
while(logging)
{
if (read(device,&ev, sizeof(ev)) >= 0){
printf("Key: %i State: %i Type: %i\n",ev.code,ev.value,ev.type);
}
}
}
Jedoch, wenn ich kompilieren und ausführen (gcc), es gibt nichts aus! Ich habe versucht, jedes Gerät in/dev/input/by-id andthensome aufgelistet, aber nichts scheint zu funktionieren.
Wenn ich den Code mit GCC kompilieren, erhalte ich die Warnung:
keylogger.c: In function ‘main’:
keylogger.c:15:7: warning: implicit declaration of function ‘read’ [-Wimplicit-function-declaration]
if (read(device,&ev, sizeof(ev)) >= 0){
^
Was ich keine Ahnung, ob dies mit der Funktionalität des Programms zu tun hat.
Jede Hilfe wird geschätzt! Vielen Dank!
'lesen' hat seinen Prototyp in' unistd.h' .. Wann immer Sie diese Art implizite Funktionsdeklaration Warnung bekommen 'Mann ** Funktionsname **' .. 'Mann' hat mehrere Seiten..und' lesen' ist in Seite 2 ... so tun Sie 'Mann 2 lesen' –
@ParnabSanyal Danke, aber leider funktioniert es immer noch nicht. Um zu überprüfen, ist die Standardtastatur in Ubuntu/dev/input/event0, richtig? –
Ich weiß ... Ich habe Ihnen die Lösung nicht gegeben. Ich habe es noch nicht. Ich habe Ihnen den Weg erklärt, implizite Funktionswarnungen zu beheben. –